기본 콘텐츠로 건너뛰기

Raspberry Pi RTSP 솔루션별 지연 시간 비교


설치법은 인터넷에 많아서 넘어가겠습니다.
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() 메소드를 사용하여 서버가 생성될, 소켓을 하나만 생성해서 여러개의 세션을 연결할 수 없게 됩니다.


테스트...

댓글

이 블로그의 인기 게시물

싱가포르 여행 1일차

난분명 아침에 11시쯤에 바로 밥먹고 공항으로 이동한다는 소리를 들었는데...그전에 과학관으로 끌려가서 급하게 회로 만들어서 전시를 하게 됬다... 다른 학교에서 준비한 회로 급하게 준비한 회로 아쉬운게 이거 기간만 제대로 알앗더라면 좀더 멋들여 지게 만들수 있엇을것 같다... 아무튼다시 과학관에서 학교로 이동한뒤 바로 공항으로 끌려 나가게 되었다.  공항 도착!!!  오오오, 처음와보는 인천 공항...예상이상으로 크고 넓엇다. 예전에 가족여행을 가면서 청주공항은 갓지만 여긴 그 청주공항보다 더 크고 넓다는 느낌이 들었다. 그리고 너무 일찍와서 애들 사진찍고 시간만 때웟다.  비행기 타기전 시간을 계속 때우다가 비행기를 보게 됫는데 멀리서 보니까 은근 작다는 느낌...? 그리고 가까이서 보니 크더라...  비행기 안   운이 좋게도 창문쪽으로 자리가 됬다 어예  비행중  비행 시간이 총 6시간 걸린다고하길레 심심할줄 알았는데 예상외로 노래도 있을건 있고 (없을건 없다) 영화도 않본것들이 들어있어서 그래도 심심하지 않게 온것 같다. 그리고 3번째 사진이 기내식인데 이거 다른거 다 괜찮은데 두부가 왜 들어 있는건지 정말 맛이 없다... (개인적으로...)  도착 일단 도착해서 짐을 찾은 뒤, 유심을 사기위해서 이동을 했다.  유심 구입 10 일동안 100GB에 국제 전화 90분 무료라는데...싱가포르 달러기준으로 30$를 내고 구입했다. 사실상 이거 로밍보다 가성비가 좋은것 같다. 그리고 이거 제일 신기했던게...일반 유심이랑 나노랑 마이크로랑 3단 분리가 된다고 표현해야되나....아무튼 3종류 유심사이즈들을 다 커버해준다...그리고 그다음 버스를타고 숙소로 이동하기 위해서 공항 밖으로 나왔는데 ...

마소 후기

원래 한 5명? 정도가 가기로 했는데 이 석ㅇ... 암튼 애들이 다 숙제나 다른 애는 광주로 간다고 해서 결국 혼자 다녀왔다.... (도착) (사실상 경치 감상하기 좋은 곳) 앞에 광화문에서 어떤 행사인지는 모르지만 행사를 해서 위에서 지켜다 보면서 기다리다가 입장을 하게 되었다. (입장) 이번에는 저번 구글 IO 때처럼 대충 듣고 가기 싫어서 앞자리를 차지했다. 기억에 남는 내용 몇 가지를 뽑자면  일단 첫 번째로 왼쪽은 Visual Studio 내장 에뮬로 구동을 한 설정 이고, 오른쪽은 그냥 윈도우 10에 내장된 설정 창이다. 대충 보면 많이 다른 것처럼 느껴지지만 ... 이 두 가지 방법을 이용하여 두 설정을 동시에 만들어 낼 수가 있다. 사이즈에 따라 속의 UI 가 바뀌어 진다는 것이 마치 반응형 웹 페이지를 보는 기분... 두 번째로 기억에 남는 내용은 컴파일 바인딩에 관련된 것이다. (왼쪽 : 동적 데이터 바인딩, 오른쪽 : 컴파일 바인딩) 두 가지 바인딩 식이 있는데 하나는 컴파일 바인딩 하나는 동적 데이터 바인딩 동적 데이터 바인딩은 DataContext 설정이 필요하다. 컴파일 바인딩은 바인딩 성능 향상 과 기존의 편리함을 유지하고 런타임 시 부하가 적고 리플렉션 코드가 최소화 된다. 그리고 변환된 코드는 무려 디버깅이 가능하다! 하지만 대상 타입의 명시적인 선언이 필요하고 해당 페이지의 멤버만 바인딩이 가능하다는 단점(?)이 있다. 그리고, 세 번째로 기억에 남는 부분은 Windows 10 IoT 에디션 인데.... 데스크탑 API의 54%공유 (나머지는 모바일 전용 셀롤러 데이터 등) 모바일의 84% (센서 부분을 위한 API) 최소사양이 램 256MB... 하나의 UI...

(최근 근황)

  드론 설계하고... 내가 미쳣지 14일까지 설계한다하고.... 전에 개인 프로젝트로 만든 블루투스 통신 앱 관련 UML 을 만들어 보았는데... 이거 출력하면 보이긴 할려나...????