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