我正在尝试编写一个简单的管道,将本地存储上的 mp4 文件分割为具有固定持续时间的多个 block 我一直在尝试使用几种不同的选项,但似乎都不起作用
顺便说一句,由于一些许可证问题,我们硬性要求不使用 FFmpeg 库,因此我目前拥有的插件是
gst-plugins-base-1.8.3
gst-plugins-good-1.8.3
and some bad plugins libs (h264parse, mpegtsmux, hlssink)
您能帮我使用 GStreamer 解决该问题吗?
我尝试过的几个示例
gst-launch-1.0 filesrc location=/tmp/sample/BigBuckBunny_175k.mp4 ! h264parse ! splitmuxsink location=/tmp/sample/segments/segment%05d.mp4 max-size-time=10000000000
gst-launch-1.0 filesrc location=/tmp/sample/BigBuckBunny_175k.mp4 ! splitmuxsink location=/tmp/sample/segments/segment%05d.mp4 max-size-time=10000000000
gst-launch-1.0 filesrc location=/tmp/sample/BigBuckBunny_175k.mp4 ! decodebin ! videoconvert ! x264enc ! splitmuxsink location=/tmp/sample/segments/segment%05d.mp4 max-size-time=10000000000
最佳答案
分割MP4文件的结果管道如下所示(包括视频/音频流)
gst-launch-1.0 -e filesrc location={from} ! queue ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! queue ! mux.video \
demux.audio_0 ! queue ! aacparse ! queue ! mux.audio_0 splitmuxsink location={to} max-size-time={duration} muxer=mp4mux name=mux
关于java - GStreamer分割MP4文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50581407/