![如何使用 FFmpeg 将 RAW 编码为 32 位 ALAC](https://linux22.com/image/1581787/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20FFmpeg%20%E5%B0%86%20RAW%20%E7%BC%96%E7%A0%81%E4%B8%BA%2032%20%E4%BD%8D%20ALAC.png)
尝试压缩 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.raw
vs 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 位音频文件