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

时间:2017-04-15 13:48:05

标签: linux audio ffmpeg sox

我到处寻找尝试将一堆具有不同采样率的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:

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上没有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

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