2012-10-24 7 views
0

gstreamer를 사용하여 DVD를 mkv 파일로 변환하려고합니다. 내가 사용하는 파이프 라인은 다음과 같습니다.gstreamer muxing with x264enc

 
gst-launch -evv multifilesrc location="VTS_01_%d.VOB" index=1 ! dvddemux name=demuxer \ 
matroskamux name=mux ! filesink location=test.mkv \ 
demuxer.current_video ! queue ! mpeg2dec ! x264enc ! mux. \ 
demuxer.current_audio ! queue ! ffdec_ac3 ! lamemp3enc ! mux. 

불행히도 파이프 라인은 프리 롤링을 넘어서지 않습니다. 내가 인스턴스 ffenc_mpeg4에 함께 x264enc 교체 할 때, 모든

답변

5

이 작동 할 수 있습니다 .. 잘 작동 :

gst-launch filesrc location=file.vob \ 
    ! queue \ 
    ! dvddemux name=demuxer matroskamux name=mux \ 
    ! queue \ 
    ! filesink location=test.mkv demuxer.current_video\ 
    ! queue \ 
    ! ffdec_mpeg2video \ 
    ! ffdeinterlace \ 
    ! x264enc \ 
    ! 'video/x-h264, width=720, height=576, framerate=25/1' \ 
    ! mux. demuxer.current_audio \ 
    ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=10000000000 \ 
    ! ffdec_ac3 \ 
    ! audioconvert \ 
    ! lamemp3enc \ 
    ! mux. 

바이트 스트림이 0이어야한다 - 죄송합니다 당신은 캡을 줄 필요가 이전

에 대한 x264enc 이후에 비디오의 길이를 늘리고 x264enc의 지연을 처리하기 위해 오디오 대기열의 제한을 늘려야합니다.

이 두 가지 변경 사항은 파이프 라인이 끝 부분에서 실행 중입니다.

디인터레이서는 선택 사항이지만 인터레이스 된 내용에 바람직합니다.

+0

도움이되지 않습니다 ... –

+0

동의 ... 제가 해결했습니다. 위의 편집을 참조하십시오. – av501

+0

av501, 이것이 작동하는 것 같습니다. 고마워, 친구! 자, 내 질문은 어떻게 알았지? 이런 종류의 것을 어떻게 디버깅합니까? 파이프 라인이 시작되지 않는 이유를 어떻게 분석 할 수 있습니까? BTW : 당신도 audioconvert 추가를 참조하십시오. 그게 필요한가요? –