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

ash*_*ral 10 audio linux mp3 ogg flac

我有 33 个音频文件,每个文件长约 11 秒,我想将它们合并为一个无损文件。我怎样才能有效地做到这一点(即没有在 Audacity 中剪切粘贴 33 次)?

evi*_*oup 9

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

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

文件中的循环把所有的文件名inputs.txt叫,一个每行,而第二个用途的ffmpegCONCAT解复用器合并文件。可以使用 printf 代替循环,如下所示:

printf "file '%s'\n" ./*.{ogg,flac,mp3} > inputs.txt
Run Code Online (Sandbox Code Playgroud)

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

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


Mat*_*hen 6

你可以用ffmpegand做到这一点sox

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

sox *.wav combined.wav
Run Code Online (Sandbox Code Playgroud)