一、引言
通过FFmpeg命令可以获取到TS文件/TS流的音频压缩编码格式、音频压缩编码格式的profile、音频采样率、通道数、音频码率信息:
./ffmpeg -i XXX.ts
本文以音频为AAC为例讲述FFmpeg到底是从哪个地方获取到这些音频信息的。
二、音频压缩编码格式
FFmpeg获取TS文件/TS流的音频压缩编码格式,是从PMT表的stream_type属性中获取的。原理跟获取TS文件/TS流中的视频压缩编码格式一致,具体可以参考:《音视频入门基础:MPEG2-TS专题(21)——FFmpeg源码中,获取TS流的视频信息的实现》。
三、音频压缩编码格式的profile、音频采样率、通道数、音频码率
如果TS文件/TS流的音频压缩编码格式为AAC,FFmpeg获取其音频压缩编码格式的profile、音频采样率、通道数、音频码率,都是从ADTS Header获取或者根据里面的属性计算出来的。原理跟获取ADTS格式的AAC裸流音频信息一致,具体可以参考:《音视频入门基础:AAC专题(13)——FFmpeg源码中,获取ADTS格式的AAC裸流音频信息的实现》。