我到处寻找尝试将一堆具有不同采样率的 FLAC 文件组合成一个文件。到目前为止我尝试过的是:
ffmpeg concat 使用通配符:
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 上没有一种简单的方法可以做到这一点吗?
safe 0
是 concat demuxer 的私有(private)选项,因此它必须出现在输入之前,即 -f concat -safe 0 -i ...
我是一名优秀的程序员,十分优秀!