我尝试在时间戳 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
另请参阅有关过滤器的文档这里。