我正在尝试使用gstreamer将DVD转换为mkv文件。我使用的管道是:
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时,一切正常......
答案 0 :(得分: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中的延迟
这两个变化让管道在我的最后运行。
去隔行扫描器是可选的,但隔行扫描内容是理想的。