我尝试了三种不同的方法来连接歌曲
cat *.wma > result.wma
和cat second.wma >> first.wma
。两者都有同样的问题,结果文件只是第一个。 ffmpeg -i "concat:uno.wma|dos.wma" -acodec copy result.wma
,与cat命令相同,文件result.wma是uno.wma的副本任何帮助?
答案 0 :(得分:0)
你应该使用“>>”运算符而不是“>”,因为“>”覆盖第一次操作的结果。但是,我不确定此操作对音频文件的正确性。
示例:
$ echo "1" > output
$ echo "2" > output
$ cat output
2
$ echo "1" >> output2
$ echo "2" >> output2
$ cat output2
1
2
如果你写:cat *.wma > result.wma
,你实际上是这样做的:
cat 1.wma > result.wma
cat 2.wma > result.wma
所以,你将在result.wma中获得2.wma,而不包含1.wma。
答案 1 :(得分:0)
您使用的 ffmpeg concat 协议(“concat:”模式)不适用于连接某些媒体文件,如 WMA 和 WAV。
https://trac.ffmpeg.org/wiki/Concatenate
可能是因为他们的文件开头有一些标题。至少,如果使用 ffmpeg 制作,WAV 文件有一个 46 字节的文件头。这些标头也可能会导致播放用 cat
命令连接的文件时出错。
所以试试这个用于通用连接:
ffmpeg -i "first.wma" -i "second.wma" -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' result.wma
查看相关问答(WAV 文件):
答案 2 :(得分:-2)
试试这个:
cat song1.wma song2.wma > bothsongs.wma