织梦CMS - 轻松建站从此开始!

罗索

流媒体基本要点简述:如何在AAC数据中获取PTS?

jackyhwei 发布于 2011-10-08 09:12 点击:次 
ADTS和LOAS都是一个数据头+FRAME数据。首先在数据流中检查标识头,分割出数据头+FRAME数据。然后根据数据头格式,解析数据头,取出frame_length和sample_rate信息。
TAG:

AAC的原始数据有好几种格式,常见的有ADTS(Low Overhead Audio Transport Multiplex)和LOAS(Low Overhead Audio Stream)。

注意:LATM(Low Overhead Audio Transport Multiplex)是用于传输的封装,并不会见到可以存储的文件形式。表搞混淆。

AAC编码后的数据,有个貌似视频FRAME的概念,编码后的数据是按照FRAME进行存放输出的。解码也是一个FRAME一个FRAME的解码。

ADTS和LOAS都是一个数据头+FRAME数据。首先在数据流中检查标识头,分割出数据头+FRAME数据。然后根据数据头格式,解析数据头,取出frame_length和sample_rate信息。

其中ADTS的解析相对简单,LOAS的解析要复杂一点。在VLC和FFMPEG中均有相关的解析代码,可以直接参考挪用。

根据frame_count(当前FRAME的数量),以及frame_length、sample_rate,即可计算出这帧AAC FRAME的PTS。

计算公式:
pts =  1000000 * frame_count * frame_length / sample_rate;

这里的base_clock(基本时钟频率),我取的1000000(纳秒)。

(zorru)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201110/15087.html]
本文出处:hi.baidu.com/zorru 作者:zorru
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容