2012-12-14 6 views
0

RTP를 통해 한 장치에서 다른 장치로 gstreamer를 사용하여 비디오 파일을 스트리밍하려고합니다. 보낸 사람 측에서는 다음 명령을 사용하고 있습니다.gstreamer를 사용하는 RTP를 통한 비디오 스트리밍

gst-launch filesrc location =/home/kuber/Desktop/MELT.MPG! mpegparse! rtpsend ip = localhost

그러나 이것은 "rtpsend"요소가 없으며 모든 rtp 도구를 다운로드했지만 여전히 같은 오류가 발생합니다. rtpsend를 잘못된 방법으로 사용하고 있습니까? 또한 다른 사람에게 비디오 파일을 스트리밍하기위한 명령 줄 코드 (내 랩톱에 있고 testvideosrc 파일이 아닌)를 다른 사람에게 제공 할 수 있습니까? 강력한 텍스트

답변

1

이 (당신이 mpegparse을 사용하고 있기 때문에) 당신은 당신은 당신의 mpegparse 후 rtpmpvpay 사용하고 udpsink 할 수있는 출력을 줄 필요가 밖으로 보내려고하는 MPEG1/2 기본 스트림입니다 가정.

mpegparse ! rtpmpvpay ! udpsink host="hostipaddr" port="someport" 

나는 rtpsend plugin을 알지 못합니다. 위의 내용은 rtp에 대한 모든 스트리밍에 적용됩니다.

gst-inspect | grep rtp를 사용하여 모든 페이 로더, 디 페이더를 확인하십시오.

mpegps 스트림 인 경우 먼저 파이프 라인의 나머지 부분 전에 mpegpsdemux를 수행해야합니다.

편집 :

왜 mpegparse를 제거하지 않습니까? 왜 당신이 그것을 필요로하는지 보지 마라. 구성 요소의 gst-inspect에서 소스와 싱크 요구 사항을 살펴보고 노드간에 필요한 호환성을 알려야합니다. 수신은 역방향 udpsrc port = "portno"입니다! capsfilter 대문자 = "application/x-rtp, pt = 32, .. 여기에 대문자"! rtpmpvdepay!

+0

잘 mpeg1/2 스트림 및 rtpmpvpay 사용하여 시도했다! "gst-launch filesrc location =/home/kuber/Desktop/MELT.MPG! mpegpsdem! mpegparse! rtpmpvpay! udpsink host = localhost port = 1234" 이렇게하면 다음과 같은 오류가 발생합니다. 잘못된 파이프 라인 : mpegparse0을 rtpmpvpay0에 연결할 수 없습니다. @ av501 -이 오류를 제거하는 방법을 모르겠 음. 또한 수신 측 명령 줄 코드도 줄 수 있습니까? – user1795516

+0

왜 mpegparse를 제거하지 않습니까? 왜 당신이 그것을 필요로하는지 보지 마라. 구성 요소의 gst-inspect에서 소스와 싱크 요구 사항을 살펴보고 노드간에 필요한 호환성을 알려야합니다. 수신은 역방향 udpsrc port = "portno"입니다! capsfilter 대문자 = "application/x-rtp, pt = 32, .. 여기에 대문자"! rtpmpvdepay! <이제 스트림으로 원하는 모든 작업을 수행하십시오.> – av501

+0

문제는 mpegparse를 제거한 후 바로 사용하는 것입니다. gst-launch-0.10 filesrc location =/home/kuber/Desktop/test.mp4! rtpmpvpay! udpsink 호스트 = 로컬 호스트 포트 = 1234 나는 다음과 같은 오류 얻을 : PAUSED에 설정 파이프 라인 ... 파이프 라인 PREROLLING됩니다 ... 파이프 라인이 ... 재생에 파이프 라인을 설정 프리 롤됩니다 ... 새로운 시계 : GstSystemClock "pipeeline0"요소의 EOS가 있습니다. 실행이 20591150 ns 후에 종료되었습니다. PAUSED에 설정 파이프 라인 ... NULL을 준비 ... 설정 파이프 라인 설정 파이프 라인 ... 확보 파이프 라인 ... 기본적으로 EOS 스트림 오류입니다. – user1795516

관련 문제