# 설치법은 인터넷에 많아서 넘어가겠습니다.
Raspberrypi 에서스트리밍을하기위한방법으로는크게아래3가지방법이있습니다.
1. Raspivid -> VLC
2. Gst-rtsp-server
3. V4l2rtspserver
위 명령어들을 하나씩 실행해보며 RTSP 지연을 측정해보면 다음과 같습니다.
테스트 기기는 Google Project Tango
rpi 와 태블릿 모두 5Ghz 무선인터넷환경
command
|
Delay
(sec)
|
Connection 수
(MAX : 6)
|
raspivid -n -w 1920 -h 1080 -b 4500000 -fps 30 -vf -hf -t 0 -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/test}' :demux=h264
|
~6
|
6
|
./test-launch "( rpicamsrc preview=false bitrate=2000000 keyframe-interval=15 ! video/x-h264, framerate=15/1 ! h264parse ! rtph264pay name=pay0 pt=96 )"
|
~3
|
1
|
v4l2rtspserver -F30 -H 1080 -W 1920 -P 8554 /dev/video0
|
~3
|
6
|
1번 방법은 가장 간단하게 서버를 구축할수 있지만, 가장 느리다는 단점이있습니다.
(pipeline으로 Video를 넘겨줄때 변환과정에 시간이 오래 걸리는 것으로 추측)
2, 3번 방법은 단일앱으로 구동되기 때문에 중간에 프로그램 간 변환 과정을 거칠 필요가 없어서 딜레이가 상당히 줄어듭니다.
하지만, gst-rtsp-server 는 제공되는 코드를 수정하지 않고 그대로 사용할 경우.
단, 하나의 외부 프로그램만 connect 가능하다는 단점이 있습니다.
V4l2rtspserver는 소켓을 여러개 생성 하는것 인지 6개 모두 연결에 성공했으나,
gst-rtsp-server 에서 제공하는 예제코드로 서버를 열어주게되면 gst_rtsp_server_new() 메소드를 사용하여 서버가 생성될때, 소켓을 하나만 생성해서 여러개의 세션을 연결할 수 없게 됩니다.
(pipeline으로 Video를 넘겨줄때 변환과정에 시간이 오래 걸리는 것으로 추측)
2, 3번 방법은 단일앱으로 구동되기 때문에 중간에 프로그램 간 변환 과정을 거칠 필요가 없어서 딜레이가 상당히 줄어듭니다.
단, 하나의 외부 프로그램만 connect 가능하다는 단점이 있습니다.
gst-rtsp-server 에서 제공하는 예제코드로 서버를 열어주게되면 gst_rtsp_server_new() 메소드를 사용하여 서버가 생성될때, 소켓을 하나만 생성해서 여러개의 세션을 연결할 수 없게 됩니다.
| 테스트... |
댓글
댓글 쓰기