2012-06-15 2 views
1

HTTP MJPEG 라이브 스트림에 연결하고 로컬로 비디오 파일로 덤프하려고합니다. 그래서 했어 :gstreamer pipline이 느린 동작 (낮은 FPS) 비디오를 생성합니다.

$ gst-launch -vvv souphttpsrc location = http : //bikersschool.dyndns.org/video.cgi? resolution = vga is-live = true do-timestamp = true! multipartdemux! jpegdec! 비디오를 보자! video/x-raw-yuv, 프레임 속도 = 60/1! theoraenc! oggmux! 파일 위치 = "hi.ogg"

그러나 hi.ogg를 재생하면 비디오가 느려집니다.

여기가 생산 된 a sample video의 : 갱신

:

내가 videorate와 캡 필터를 삭제했습니다. 그러나 다음 메시지와 함께 실패했습니다 :

$ gst-launch -vvv souphttpsrc location = http : //bikersschool.dyndns.org/video.cgi? resolution = vga is-live = true do-timestamp = true! multipartdemux! jpegdec! theoraenc! oggmux! filesink 위치 = "hi.ogg"

Setting pipeline to PAUSED ... 
Pipeline is live and does not need PREROLL ... 
Setting pipeline to PLAYING ... 
New clock: GstSystemClock 
/GstPipeline:pipeline0/GstJpegDec:jpegdec0.GstPad:sink: caps = image/jpeg 
/GstPipeline:pipeline0/GstJpegDec:jpegdec0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480, framerate=(fraction)0/1 
ERROR: from element /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: Internal data flow error. 
Additional debug info: 
..\..\..\Source\gstreamer\libs\gst\base\gstbasesrc.c(2507): gst_base_src_loop(): /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: 
streaming task paused, reason not-negotiated (-4) 
Execution ended after 1547045000 ns. 
Setting pipeline to PAUSED ... 
Setting pipeline to READY ... 
/GstPipeline:pipeline0/GstJpegDec:jpegdec0.GstPad:src: caps = NULL 
/GstPipeline:pipeline0/GstJpegDec:jpegdec0.GstPad:sink: caps = NULL 
/GstPipeline:pipeline0/GstMultipartDemux:multipartdemux0.GstPad:src_0: caps = NULL 
Setting pipeline to NULL ... 
Freeing pipeline ... 

답변

0

뭐죠 videorate의 목적! 비디오/x-raw-yuv, 프레임 속도 = 60/1?

기술적으로 비디오가 출력 프레임을 복제하여 출력 속도를 60fps로 만듭니다. 만약 당신이 비디오를 드롭! capsfilter? gst-launch는 jpegdec의 대문자로 무엇을 인쇄합니까?

+0

비디오 및 모자 필터를 떨어 뜨리면 오류가 발생합니다. 나는 코멘트를 형식화 할 수 없으므로 메시지를 본래의 질문에 넣었습니다. – KFL

+0

다른 질문에 대답 해주십시오. jpegdec의 fps는 무엇입니까? 또한 capsfilter에 실제 fps를 넣으십시오 (예 : 30fps - 또는 실제로 스트림이 60fps입니까?). – ensonic