gpt4 book ai didi

linux - 如何使用 ffmpeg 重叠和合并多个音频文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:52 26 4
gpt4 key购买 nike

我正在尝试将多个音频文件合并到一个文件中,但我可以使用以下命令而不是串联:

ffmpeg -v debug -i file1.wav -i file2.wav -i file3.wav -filter_complex [0:0]concat=n=3:v=0:a=1[out] -map [out] output.wav

虽然此命令可以很好地连接,但我想重叠,比如第一个文件结尾的最后 100 毫秒和下一个文件开头的 100 毫秒。

我现在正在尝试使用 ffmpeg 提供的“crossfade”过滤器,但我没有成功。

ffmpeg -v debug -i file1.wav -i file2.wav -i file3.wav -filter_complex [0:a]acrossfade=d=0.100:c1=exp:c2=exp,[1:a]acrossfade=d=0.100:c1=exp:c2=exp,[2:a]acrossfade=d=0.100:c1=exp:c2=exp

这是我到现在才想到的,但不起作用,因为它会抛出“Buffer is too short (n=0) for frame_length=1”错误。

文档不是很有帮助,有人知道可以做什么吗?

提前致谢!

最佳答案

crossfade 旨在创建两个 输入之间的过渡。因此,每对输入都必须应用淡入淡出,结果用作下一个淡入淡出的输入。

ffmpeg -v debug -i file1.wav -i file2.wav -i file3.wav -filter_complex "[0:a][1:a]acrossfade=d=0.100:c1=exp:c2= exp[a01];[a01][2:a]acrossfade=d=0.100:c1=exp:c2=exp"out.wav

编辑:您的输入是 16000 赫兹,交叉淡化持续时间是 0.1 秒(!),在输入采样率下小于 2 个音频帧。默认帧大小为 1024 个样本。因此,需要降低帧大小。

ffmpeg -v debug -i file1.wav -i file2.wav -i file3.wav -filter_complex "[0:a]asetnsamples=256[0a];[1:a]asetnsamples=256[1a ];[2:a]asetnsamples=256[2a];[0a][1a]acrossfade=d=0.100:c1=exp:c2=exp[a01];[a01][2a]acrossfade=d=0.100:c1 =exp:c2=exp"输出.wav

关于linux - 如何使用 ffmpeg 重叠和合并多个音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55097002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com