Linux: 如何将多个 FLAC 音频文件合并为一个文件,具有不同的采样率,但不改变音高

Linux: How to combine multiple FLAC audio files into 1 file, with differing sample rates, but not changing pitch

我到处寻找尝试将一堆具有不同采样率的 FLAC 文件组合成一个文件。到目前为止我尝试过的是:

ffmpeg 使用通配符连接:

ffmpeg -f concat -i <( for f in *.flac; do echo "file '$(pwd)/$f'"; done ) -safe 0 output.flac

我得到每个文件名,(即使我将 pwd 更改为 './' 作为相对):

ffmpeg unsafe filename

不考虑文件的文件名。

我试过袜子:

sox *.flac output.flac

这导致:

sox FAIL sox: Input files must have the same sample-rate

我什至试过将两者结合起来:

#!/usr/bin/env bash

set -eu

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

done

sox *.wav combined.wav

同上错误。

有人有什么建议吗?我敢肯定,在某些 Windows 程序中,您可以拖入 5 个不同的声音文件并轻松组合它们。在 linux cmdline 上没有简单的方法吗?

safe 0 是 concat 分离器的私有选项,因此它必须出现在输入之前,即 -f concat -safe 0 -i ...