连接两首或更多歌曲

时间:2016-02-24 13:55:05

标签: linux concatenation

我尝试了三种不同的方法来连接歌曲

  • Audacity:可行,但它会在第一首和第二首歌之间添加“点击”声音
  • cat命令:我尝试了cat *.wma > result.wmacat second.wma >> first.wma。两者都有同样的问题,结果文件只是第一个。
  • ffmpeg:ffmpeg -i "concat:uno.wma|dos.wma" -acodec copy result.wma,与cat命令相同,文件result.wma是uno.wma的副本

任何帮助?

3 个答案:

答案 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 文件):

https://superuser.com/q/587511/192525

答案 2 :(得分:-2)

试试这个:

cat song1.wma song2.wma > bothsongs.wma