我正在尝试编写一个简单的管道,将本地存储上的mp4文件拆分为多个块,并且具有固定的持续时间我一直在尝试使用几个不同的选项,但似乎没有任何工作
顺便说一下,由于某些许可证问题我们有一个很难要求不使用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
答案 0 :(得分:0)
太糟糕了,你没说出你的尝试,但使用splitmuxsink
- > https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/gst-plugins-good-plugins-splitmuxsink.html
答案 1 :(得分:0)
下面显示了分割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