我需要将一批 48000 个 24 位 flac 样本转换为 41000 个 16 位样本。我想从命令行使用 ffmpeg。
答案1
改编自ffmpeg FLAC 24 位 96khz 至 16 位 48khz:
ffmpeg -i Brindisi.flac -af aresample=out_sample_fmt=s16:out_sample_rate=41000 Brindisi_41000_16.flac
并检查:
file Brindisi*
Brindisi.flac: FLAC audio bitstream data, 24 bit, stereo, 44.1 kHz, 8918016 samples
Brindisi_41000_16.flac: FLAC audio bitstream data, 16 bit, stereo, 8291126 samples
如果要转换目录中的多个文件,最简单的方法是将其放入循环中:
for f in *.flac
do
[ -s "${f%.*}_41000_16.flac" ] && continue
printf 'Processing: %s\n' "$f"
ffmpeg -i "$f" -af aresample=out_sample_fmt=s16:out_sample_rate=41000 "${f%.*}_41000_16.flac"
# mv -f -- "${f%.*}_41000_16.flac" "$f" # Replace original
done
与往常一样,在实际执行任何操作之前,先加上前缀ffmpeg
withecho
来查看发生了什么。
如果在同一组文件上多次运行此循环,它将忽略已处理文件的输出文件。当然,您可以使用 删除这些文件rm *._41000_16.flac
。