我正在尝试使用 ffmpeg 和 concat 过滤器连接多个(概念证明:2)mp3 文件,命令如下:
ffmpeg -i "file1.mp3" -i "file2.mp3" -filter_complex [0:a:0][1:a:0]concat=n=2:a=1[outa] -map [outa] out.mp3
我猜 ffmpeg 成功读取了两个输入:
Input #0, mp3 [...]
Metadata: [...]
Duration: 00:00:13.40, start: 0.000000, bitrate: 423 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 650x677 [SAR 72:72 DAR 650:677], 90k tbr, 90k tbn, 90k tbc
Metadata:
comment : Other
[mp3 @ 0x7fadbc81a000] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, [...]
Metadata: [...]
Duration: 00:06:58.64, start: 0.000000, bitrate: 199 kb/s
Stream #1:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
Stream #1:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 650x677 [SAR 72:72 DAR 650:677], 90k tbr, 90k tbn, 90k tbc
Metadata:
comment : Other
但随后失败了:
Stream specifier ':a:0' in filtergraph description [0:a:0][1:a:0]concat=n=2:a=1[outa] matches no streams.
有什么想法吗?Ffmpeg 似乎读取了两个流,所以我不知道哪里出了问题。我也尝试了[0:0][1:0]
而不是[0:a:0][1:a:0]
,给出了相同的错误消息。
答案1
concat 过滤器需要设置三个变量,n、v 和 a。v 的默认值为 1,但您需要将其设置为 0。因此,concat=n=2:v=0:a=1