我想使用类似这样的工具将一大堆 FLAC 文件转换为 ALACffmpeg或者袜子。这本身就很容易,只需一个命令行。但是,我想通过仅对采样率大于某个值的 FLAC 文件进行下采样来节省磁盘空间。因此,如下所示:
对于给定目录中的所有 *.flac 文件...
...如果输入文件的采样率大于 96kHz,则转换为 ALAC 并下采样至 96kHz(添加“-ar 96000”标志)。
ffmpeg -i track.flac -acodec alac -ar 96000 track.m4a
...否则,只需将其不加改变地转换为 ALAC 即可。
ffmpeg -i track.flac -acodec alac track.m4a
这种采样率检测可以实现吗?如果可以,执行上述操作的脚本是什么样的?
答案1
...然后就搞明白了。在这里,使用袜子确定采样率,以及ffmpeg进行转码。将其插入狂欢脚本:
for f in *.flac; do
RATE="$(soxi -r $f)"
if [ $RATE -gt 96000 ]
then
echo Resampling and converting...
ffmpeg -i "$f" -acodec alac -ar 96000 -c:v copy "${f%}.m4a";
else
echo Converting...
ffmpeg -i "$f" -acodec alac -c:v copy "${f%}.m4a";
fi
done
这-c:v 复制标记将不经改变地转移专辑封面。