使用GStreamer将H264流封装成MP4

3

如何使用Gstreamer将纯H.264流封装成MP4,以便可以在视频中寻找特定位置?由于其许可证要求,因此使用Gstreamer,不要提供ffmpeg!

1个回答

8
gst-launch-1.0 filesrc location=stream.h264 ! video/x-h264 ! h264parse ! mp4mux ! filesink location=video.mp4

1
好的,这个错误来自于 h264parse0: GStreamer 遇到了一个通用的流错误流媒体停止,原因未协商 - Kristians Kuhta
2
gst-launch-1.0 filesrc location=stream.h264 ! video/x-h264 ! h264parse ! mp4mux ! filesink location=video.mp4 - ensonic
1
在gstreamer 1.16中,这会出现“错误:来自元素/GstPipeline:pipeline0/GstMP4Mux:mp4mux0的无法复用流。” - user1145922
@user1145922 请查看上一条评论(以及现在已更新的示例)。从 gst-inspect-1.0 中查看 h264parse 和 mp4mux,您会发现它们的 pad 模板是兼容的。如果对您无效,请发布一个包含完整日志输出的 gist。 - ensonic
@ensonic 我认为我遇到的问题是由于我使用的文件实际上不是 .h264 文件,尽管它被标记为这样。它实际上是一个带有 h264 流的 MPEG-2 TS 文件。 - user1145922
谢谢更新。当您不确定内容时,请尝试使用gst-discoverer-1.0。 - ensonic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接