分享

如何在AAC数据中获取PTS?

 思考的轨迹 2011-10-18

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

jackyhwei 发布于 2011-10-08 09:12 点击:80次收藏到: MSN - Live Favorites 添加到QQ书签 百度收藏 CSDN技术网摘 添加到google 365Key网摘 新浪ViVi yahoo 收藏到收客网 Digbuzz我挖网 
ADTS和LOAS都是一个数据头+FRAME数据。首先在数据流中检查标识头,分割出数据头+FRAME数据。然后根据数据头格式,解析数据头,取出frame_length和sample_rate信息。
TAG: AAC  

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(纳秒)。


如果您对此文章有任何疑问,欢迎到流媒体开发论坛提问。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多