2016-07-22 6 views
1

Windows에서 gst 1.8.2 (1.6 이상)를 사용하여 다음 gst-launch 파이프 라인을 사용하여 단일 mp4 파일로 스트리밍하는 여러 IP 카메라에서 mp4 파일을 만듭니다 (gst를 다시 포맷했습니다. -launch 여기에 더 잘 명령을,하지만 그들은 하나의 라인입니다) :GStreamer 멀티 비디오 mp4 파일 재생

mp4mux name=m ! filesink location=file.mp4 
rtspsrc location="rtsp://x" latency=0 name=Camera1 ! rtph264depay ! h264parse ! tee name=t1 
    t1. ! queue ! m.video_1 
    t1. ! queue ! decodebin ! autovideosink name=video1 
rtspsrc location="rtsp://y" latency=0 name=Camera2 ! rtph264depay ! h264parse ! tee name=t2 
    t2. ! queue ! m.video_2 
    t2. ! queue ! decodebin ! autovideosink name=video2 

내가 VLC 미디어 플레이어로 결과 파일을 재생할 수 있습니다,하지만 난있는 GStreamer를 사용하여 파일을 재생할 수 없습니다. 파이프 라인을 만들 때

gst-launch-1.0 uridecodebin name=u uri=file:/file.mp4 
    u.src_0 ! queue ! autovideosink 
    u.src_1 ! queue ! autovideosink 

결코 재생되지 않습니다. 비디오를 기다리는 동안, 나는

Setting pipeline to PAUSED ... 
Pipeline is PREROLLING ... 
Redistribute latency... 
Redistribute latency... 

을보고 나중에 CTRL-C를 쳤을 때, 응답은

handling interrupt. 
Interrupt: Stopping pipeline ... 
ERROR: pipeline doesn't want to preroll. 
Setting pipeline to NULL ... 
Freeing pipeline ... 

공동 작업자가 자신의 Mac에서 동일한 명령을 시도하고 동일한 결과를 얻을 수 있습니다.

환경 변수를 설정하여 "DOT"파이프 라인 그래프 파일을 생성합니다. 올바른 비디오 형식, 너비 또는 높이를 표시하지 않습니다. 나는 그것이 결코 그렇게 멀리 가지 않을 것 같아요. 나는 otopolsky의 제조법을 따랐고 하나의 카메라가 명령 행 예제와 프로그램 모두에서 작동합니다.

누구든지 아이디어가 있습니까?

감사합니다.

-reilly.

+0

기쁨없는 1.8.2 버전으로 업데이트되었습니다. – Reilly

답변

0

처음에는 gst-launch에 -e을 추가하는 것을 잊어 버린 것 같습니다. 파이프의 단순화 된 버전으로 테스트했습니다 :

gst-launch-1.0 -e mp4mux name=m ! filesink location=file.mp4 videotestsrc ! x264enc ! m.video_1 videotestsrc ! x264enc ! m.video_2 

그리고 이렇게 재생하십시오. 당신의 URI가 잘못되었습니다. 당신은 전체 경로를 제공하거나 filesrc (위치는 상대적 일 수 있습니다)와 decodebin을 대신 사용해야합니다.

이것은 적절한 파이프입니다 - Windows에서 pwd를 수행하는 방법을 모르므로 전체 경로를 사용하십시오 ..

gst-launch-1.0 uridecodebin name=u uri=file://`pwd`/file.mp4 ! video/x-raw ! queue ! videoconvert ! autovideosink u. ! video/x-raw ! queue ! videoconvert ! autovideosink 
+0

나는 명령 행에서 -e를 시도했다. 내 rtsp 소스와 아무 기쁨도. 실제로 C++ 프로그램을 작성했지만 유연성을 위해 gst_parse_launch를 사용합니다. 나는 uri가 틀렸다는 것을 알고 있었다. 관련 게시물을 표시하기 위해 글의 크기를 제한하려고했습니다. 제안 해 주셔서 감사합니다. 그들을 계속 지켜라! – Reilly

+0

@Reilly 그리고 내 테스트 파이프를 재생하는 방법은 무엇입니까? – nayana

+0

완전히 간격을두고 예제를 실행하지 않았습니다. 방금 사용하기 위해 수정하려고했습니다. 오늘 나는 너의 모범을 보았고 그것도 일한다. 나는 당신이 EoS에 뭔가있는 것으로 의심합니다. RTSP 카메라와 명령 줄을 사용하여 다시 시도해 보겠습니다. – Reilly

관련 문제