2014-10-03 33 views
4

저는 한 네트워크 카메라에서 다른 네트워크 카메라로 오디오 및 비디오를 모으기 위해 rtspsrc를 사용하는 응용 프로그램에서 작업했습니다. 그러나 카메라에서 스트림을 볼 수 없기 때문에 스트림이 의도 한대로 작동하는지 확인할 수 없습니다. 스트림이 올바른지 확인하려면 SD 카드에 녹화 한 다음 컴퓨터에서 파일을 재생하고 싶습니다. 문제는 응용 프로그램의 목적이기 때문에 가능한 한 파싱, 디코딩 및 depayloading을 카메라가 원한다는 것입니다.rtspsrc에서 오디오와 비디오를 디 먹스 한 다음 matroska mux를 사용하여 파일에 저장하는 방법은 무엇입니까?

따라서 나는 디멀티어로 오디오 및 비디오 스트림을 분리하고 파싱, 디코딩 등을 수행 한 다음 다시 matroska 파일로 mux해야합니다.

비디오 디코더는이 카메라에서 아직 수행되지 않았기 때문에 생략되었습니다.

디 먹스 재생 싱크 (작품) MATROSKA에

gst-launch-0.10 -v rtspsrc location="rtsp://host:[email protected]/XXX/XXXX?resolution=1280x720&audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 name=d d. ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! autoaudiosink d. ! rtph264depay ! ffdec_h264 ! queue ! ffmpegcolorspace ! autovideosink 

여러 rtspsrc (작품)

gst-launch-1.0 -v rtspsrc location="rtsp://host:[email protected]/XXX/XXXX?audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! queue ! matroskamux name=mux ! filesink location=/var/spool/storage/SD_DISK/testmovie.mkv rtspsrc location="rtsp://root:[email protected]/axis-media/media.amp?resolution=1280x720" latency=0 ! rtph264depay ! h264parse ! mux. 

단일 rtspsrc MATROSKA에 (실패)

gst-launch-1.0 -v rtspsrc location="rtsp://host:[email protected]/XXX/XXXX?resolution=1280x720&audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 name=d d. ! queue ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! queue ! matroskamux name=mux d. ! queue ! rtph264depay ! h264parse ! queue ! mux. ! filesink location=/var/spool/storage/SD_DISK/testmoviesinglertsp.mkv 

마지막 예를 사는

오류 메시지와 함께 실패합니다.

WARNING: erroneous pipeline: link without source element 

matroska mux의 사용법을 잘 이해하지 못한 채로 위의 2 가지 예는 효과가 있지만 마지막 효과가없는 이유는 무엇입니까?

답변

1

문제는 여기에 있습니다 :

queue ! mux. ! filesink 

당신은

queue ! mux. mux. ! filesink 

먹스 할 필요가있다. 는 gst-launch가 mux에서 패드를 자동으로 선택해야 함을 의미합니다. 그것을 연결하십시오. mux.src와 같은 이름을 수동으로 지정할 수도 있습니다. 그래서 구문 론적으로 당신은 다른 요소에 링크하기 위해 다른 요소/패드가 빠져 있습니다.