将多个 MP3、OGG 和 FLAC 文件合并为一个 WAV 或 FLAC

将多个 MP3、OGG 和 FLAC 文件合并为一个 WAV 或 FLAC

我有 33 个音频文件,每个文件大约 11 秒长,我想将它们合并为一个无损文件。我该如何高效地完成此操作(即无需在 Audacity 中进行 33 次剪切粘贴)?

答案1

您可以使用 和 来做到这ffmpeg一点sox

for i in *.mp3 *.ogg *.flac
do
  ffmpeg -i "$i" "$i.wav"
done

sox *.wav combined.wav

答案2

假设您想按文件名的字母顺序合并它们:

for f in ./*.{ogg,flac,mp3}; do echo "file '$f'" >> inputs.txt; done
ffmpeg -f concat -i inputs.txt output.wav

为了循环将所有文件名放入名为inputs.txt的文件中,每行一个,第二个循环使用ffmpeg连接解复用器合并文件。可以使用 printf 代替循环,如下所示:

printf "file '%s'\n" ./*.{ogg,flac,mp3} > inputs.txt

假设有一个现代 shell,您还可以使用命令替换在一行中完成整个操作。

ffmpeg -f concat -i <(printf "file '%s'\n" ./*.{ogg,flac,mp3}) output.wav

答案3

如果你只从无损文件开始,你可以使用什恩工具

shntool join *.flac

答案4

Ubuntu 自带的 Sound Juicer 似乎写入了损坏的 FLAC 文件,导致文件中没有 MD5 签名。复制包含要连接的文件的目录,然后运行以下脚本。
echo fixing broken FLAC files
find . -type f|grep .flac$ |while read file
do
flac -f --decode "$file" -o temp.wav
flac -f -8 temp.wav -o "$file"
done
rm temp.wav

然后按上述方法运行
shntool join *.flac

相关内容