GStreamer 按秒将音频拆分为多个部分

GStreamer split audio to multiple parts by seconds

平台是 windows 10 64 位,从他们的网站下载预构建 gstreamer1.0。

我想通过 gstremaer 将音频拆分为多个部分,示例

audio.wav/audio.mp3/audio.ma4,他们的长度是60秒,我想把audio.*分割成10秒一个音频,结果应该是

audio0.wav~audio9.wav 或 audio0.mp3~audio9.mp3 或 audio0.ma4~audio9.ma4

ffmpeg 的等效命令是

ffmpeg -y -i audio.wav -f segment -segment_time 10 -c copy audio%d.wav

我尝试使用 gstreamer 的 multifilesink,示例

gst-launch-1.0 filesrc location=audio.mp3! multifilesink location=audio/test/test02%d.mp3 next-file=5 max-file-duration=10000000000

但是这个功能不能将音频分割成10秒的长度,我犯了什么错误?谢谢

您想看splitmuxsink。检查它的属性,尤其是 muxermax-size-time.

例如:

gst-launch-1.0 audiotestsrc ! \
splitmuxsink location=out_%d.wav muxer=wavenc max-size-time=10000000000

将生成 10 秒长的 wav 文件。

编辑:原来的命令不起作用,应该是

gst-launch-1.0 filesrc location=audio/audio.mp3 !解码箱!音频转换! splitmuxsink location=audio/test/out_%d.wav muxer=wavenc max-size-time=10000000000