在特定点添加音频叠加

在特定点添加音频叠加

我尝试在时间戳 00:00:10 秒处将 temp.mp3 叠加到 a.mp3 之上。下面是我尝试使用的命令,但我收到以下错误。

temp.mp3 是一个短文件,我不想让它循环播放。只需在较长的 a.mp3 文件上的特定点叠加一次即可

有人能告诉我我做错了什么吗?谢谢

ffmpeg -y -i a.mp3 -i temp.mp3 -filter_complex "[0:0]volume=1[a];[1:0]volume=0.30[b];[a][b]adelay=delay=10s:amix=inputs=2:duration=first" -acodec libmp3lame z1.mp3


Error applying option 'delay' to filter 'adelay': Option not found
Failed to set value '[0:0]volume=1[a];[1:0]volume=0.30[b];[a][b]adelay=delay=10s
:amix=inputs=2:duration=first' for option 'filter_complex': Option not found
Error parsing global options: Option not found

答案1

您收到的错误在第一行:option 'delay' to filter 'adelay': Option not found。选项的实际名称是delays而不是delay,因此过滤器的该部分需要是:adelay=delays=10s

但除此之外,还有更多问题:

输入adelay需要是单个流(并延迟流的各个通道),在您的情况下,您只想应用于adelay您的[b]流,因此该部分需要是[b]adelay=delay=10s[c]

然后,您需要amix用分号;而不是冒号来分隔下一个过滤器() :,并且需要提供流[a][c](延迟的)作为输入。

你的命令将是:

ffmpeg -y -i a.mp3 -i temp.mp3 -filter_complex "[0:0]volume=1[a];[1:0]volume=0.30[b];[b]adelay=delays=10s[c];[a][c]amix=inputs=2:duration=first" -acodec libmp3lame z1.mp3

另请参阅有关过滤器的文档这里

相关内容