gstreamer 与 x264enc 的复用
Posted
技术标签:
【中文标题】gstreamer 与 x264enc 的复用【英文标题】:gstreamer muxing with x264enc 【发布时间】:2012-10-24 20:25:00 【问题描述】:我正在尝试使用 gstreamer 将 DVD 转换为 mkv 文件。我使用的管道是:
gst-launch -evv multifilesrc location="VTS_01_%d.VOB" index=1 ! dvddemux 名称=解复用器\ matroskamux 名称=多路复用器!文件接收器位置=test.mkv \ demuxer.current_video !队列 ! mpeg2dec ! x264enc !多路复用器。 \ demuxer.current_audio !队列 ! ffdec_ac3 ! lamemp3enc !多路复用器。不幸的是,管道并没有超出预滚动。当我用例如 ffenc_mpeg4 替换 x264enc 时,一切正常..
【问题讨论】:
【参考方案1】:这可能有效:
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 中的延迟
这两个更改使管道在我的末端运行。
去隔行器是可选的,但对于隔行扫描的内容是可取的。
【讨论】:
av501,这似乎有效。非常感谢,伙计!现在,我的问题是,你是怎么想出来的?你如何调试这些东西?您如何分析管道不启动的原因...?顺便说一句:我看到你还添加了 audioconvert。有必要吗? 在 gst-launch 之前的管道命令之前添加 "GST_DEBUG=以上是关于gstreamer 与 x264enc 的复用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 OpenCV Python 和 GStreamer 后端创建 x264 RTSP 服务器