记一次音频编码了解过程

Understand audio codec.

Posted by Tee on June 11,2021

起因

起因是某天看见群友表示,caf格式的音频文件,用ffmpeg之类的工具转换成wav后,长度会多出来一点点。

众所周知有损音频除了ogg格式,其他长度都会跟原始音频长度不一样。

因为caf使用苹果的软件如logic来打开,长度跟原始一致,便让我陷入了一个误区:caf格式里装的音频是无损格式alac。

思考与验证

为什么ffmpeg检测的音频长度会不一样?

我的第一反应是ffmpeg对这个音频格式的解码碰上了bug。

了解到苹果对alac的解码编码是开源的

于是便使用其对那个caf文件做解码。提示:

data format is of an unsupported type

alac error

为什么官方alac解码不能解码这个caf文件(我以为里面是alac)

再找到这个命令去看编码类型

ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 xxx.caf

终点

发现原来这个caf里面装的是aac,caf可以装有损或者无损格式。

参考资料

https://github.com/macosforge/alac


本作品采用知识共享署名 4.0 国际许可协议进行许可。