我正在尝试将3gpp中打包的AAC-LC数据编码为RTP。我已经通过了rfc 3640,但我仍然不知道从哪里开始。我会在AAC数据中找到什么?如果我没错,前40个字节将是MP4标题,但后来会发生什么,我在哪里可以找到它的定义?为了构建RTP有效载荷,我必须包括AU头部分,但我不知道它们是否已经包含在AAC数据中,我无法在任何地方找到它。
我取出mp4标题后,我有以下数据:
<00> 00 00 14 03 E9 1C 00 00 14 03 E9 1C这是AU头吗?我该如何解释这些数据?
另一个问题,AAC-LC和AAC-lbr之间的关系是什么......我的意思是,我知道第一个代表低复杂度,第二个代表低比特率,但它是否相同?一个包括另一个?
在此先感谢,我对AAC真的很陌生,我很失落!
答案 0 :(得分:1)
我正在尝试相反的做法,即解码一个RTP AAC流,所以到目前为止我发现的一些参考文献可能对你有用:
http://www.rfc-editor.org/rfc/rfc3016.txt
这描述了rtp结构。我在读取流时发现的是,RTP数据包周围还有一个帧头,长度为2字节:
http://tools.ietf.org/html/rfc4571
最重要的是,我发现了2字节0x24 0x00的额外框架 - 仍然不知道这是什么,但我想你会告诉你,你可能也需要重新创建它。
可悲的是,很多有趣的规格似乎都是“付钱观看”。虽然我确实从这个博客中找到了一些有用的信息:
http://thompsonng.blogspot.com/2010/03/rfc-3640-for-aac.html
关于你的另一个问题,我有AAC-hbr,显然也是AAC-LC,虽然我也没有找到公开的规格。
你的AU标题看起来有点类似于我所拥有的:
0x00 0x00 0x01 0xB6 0x55 0x60 0x63 0xFF 0xFF 0x7A 0x7D 0xD5 0xF7 0xB7 0xA7 0xDF
虽然我期待前16位是标题的长度,但就像你自己一样,我不太清楚我在看什么......
无论如何,我希望其中一些有用。