将 sox 与 ffmpeg 一起使用时如何设置示例格式?

How to set sample format when using sox with ffmpeg?

我正在尝试将 44.1k 16 位 flac 文件转换为 48k 32 位(浮点)wav 文件。

这是我使用的命令:

'ffmpeg -i in.flac -af aresample=resampler=soxr:precision=28:out_sample_fmt=fltp:out_sample_rate=48000 out.wav'

无论我为 out_sample_fmt 使用哪个值,比如 s32, flt, fltp,输出 out.wav 都只有 16 位。

我在这里做错了什么?如何使用 soxr 使用 ffmpeg 获得最高质量(如重采样)32 位浮点 wav 文件?

问题不在于 soxr 或 aresample。通常,媒体数据经过过滤后,会在写入输出之前进行编码。对于每种输出格式,每种类型的流(音频、视频……)都有一个指定的默认编码器。如果是 WAV,音频是 pcm_s16le

为 32 位浮点 PCM 添加 -c:a pcm_f32le,以小端顺序排列。对于大端,将 le 更改为 be