如何使用 FFmpeg 将 RAW 编码为 32 位 ALAC

如何使用 FFmpeg 将 RAW 编码为 32 位 ALAC

尝试压缩 32 位浮点波形(原始二进制)。FLAC 不行,因为它每个样本最多只能处理 24 位。ALAC 可以处理每个样本 32 位。

我可以使用以下命令直接从 RAW 编码为 ALAC:

ffmpeg -f f32le -ar 4000 -ac 1 -i ts1.raw -acodec alac ts1.m4a

请注意,这适用于任何数据文件。

我尝试设置 32 位样本大小-sample_fmt s32p但它总是打印消息:

[alac @ 0x55dbbcc98a00] encoding as 24 bits-per-sample 

解码过程如下:

ffmpeg -i ts1.m4a -f f32le -ar 4000 -ac 1 tsa.raw

我通过使用 Numpy (Python) 加载开始和结束原始文件 ( ts1.rawvs tsa.raw) 进行验证,并注意到精度有所损失。结果更接近 16 位浮点数,但更精确(24 位浮点数更合理)。所以基本上我最终得到一个包含转换为 32 位(有损压缩)的 24 位浮点数的文件!

如何对每样本 32 位无损压缩(用于波形数据)文件进行编码?

答案1

根据https://support.apple.com/en-ca/HT212183 据说the entire Apple Music catalog is now also encoded using ALAC in resolutions ranging from 16-bit/44.1 kHz (CD Quality) up to 24-bit/192 kHz 我担心你不能得到 32 位音频文件

相关内容