【发布时间】:2016-03-20 01:45:39
【问题描述】:
我想从 matroska 源创建一个非分段的 .mp4 视频。我见过this post 并创建了一个类似的管道。我的源只包含 h264 视频,没有声音,所以我的管道看起来像这样:
gst-launch-1.0 filesrc location=x.mkv ! matroskademux ! h264parse ! mp4mux ! filesink location=x.mp4
但是,在结果上运行 gst-discoverer-1.0 会给出 0:00:00.000000000 的持续时间。此外,vlc 无法播放生成的 .mp4 文件,并且不能在 HTML5 <video> 元素中使用(这是此转换的最终目的)。
如果我通过将fragment-duration=1000 添加到mp4mux 元素来创建分段的.mp4,那么vlc 可以播放.mp4,但这不是我想要的。 我需要一个总长度已知的 .mp4。我做错了什么?
附加信息:gst-discoverer-1.0 显示的 matroska 源中存在长度,vlc 可以显示该源。我还可以使用 gstreamer 重播非分段 .mp4(使用 gst-launch-1.0 filesrc location=x.mp4 ! qtdemux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink)。检查生成的.dot 文件显示来自qtdemux 的帧速率为10000/1,这看起来很奇怪。
【问题讨论】: