我正在合并多个音频合并,并且正在使用此命令
(在下面的命令tempTxtFile中是所有音频路径的文件)
cmd = "-f concat -safe 0 -i " + tempTxtFile + " -c copy -preset ultrafast " + filepath;
好吧,因为我正在使用-c复制,所以它仅在所选音频为mp3编解码器时才有效,但是如果我将同时使用mp3和m4a(aac)或两个m4a音频,则会阻止我合并。
所以,我现在正在使用另一个命令,如下所示(用于2个音频):
cmd = "-f concat -safe 0 -i " + tempTxtFile + " -filter_complex [0:a][1:a]" + "concat=n=2:v=0:a=1[outa] -map [outa] -c:a mp3 -preset ultrafast " + filepath;
此命令显示运行时出现错误
过滤器说明[0:a] [1:a] concat = n = 2:v = 0:a = 1 [outa]中无效的文件索引1。
这是整个日志
Input #0, concat, from '/storage/emulated/0/Download/tempFile.txt':
Duration: N/A, start: 0.000000, bitrate: 117 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 117 kb/s
Metadata:
handler_name : SoundHandler
Invalid file index 1 in filtergraph description [0:a][1:a]concat=n=2:v=0:a=1[outa].
现在我无能为力,也不知道任何有效的解决方案。
答案 0 :(得分:1)
当不同文件的编解码器不同时,您应该分别输入所有输入,然后使用concat过滤器,例如
ffmpeg -i file1 -i file2 -i file3 -filter_complex concat=n=3:v=0:a=1 -c:a mp3 -vn out.mp3