rtp封包pcm_RTP音频AAC封包

该博客详细介绍了如何将AAC音频数据进行RTP封装,包括去除ADTS头,添加RTP Header、AU_HEADER_LENGTH及AU_HEADER,并解析了AU-headers-length、AU-header的结构和计算方法,适用于音频处理和流媒体传输领域的专业人士。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

过程比较简单:

需要将aac的前7个字节的ADTS去掉;

添加12字节的RTP Header;

添加2字节的AU_HEADER_LENGTH;

添加2字节的AU_HEADER;

从第17字节开始就是payload(去掉ADTS的aac数据)数据了

音频aac封包格式

RTP承载aac的格式由两部分组成:

2个字节的AU-headers-length

n个AU-header,每个2字节

n个AU,是aac去掉adts的载荷

AU-headers-length

AU-header

AU

AU-header

AU

注意:一个RTP包中可以有一个AU-headers-length 和 n个AU-header和 n个AU(AU每包实际音频数据流)

1. AU-headers-length

头两个字节表示au-header的长度,单位是bit。 一个AU-header长度是两个字节(16bit)因为可以有多个au-header所以AU-headers-length的值是 16的倍数,一般音频都是单个音频数据流的发送,所以AU-headers-length的值是16

//AU_HEADER_LENGTH

bytes[12] = 0x00; //高位

bytes[13] = 0x10; //低位

因为单位是bit, 除以8就是auHeader的字节长度;又因为单个auheader字节长度2字节,所以再除以2就是auheader的个数。

2. AU-header

au-header的高13个bits就是一个au 的字节长度:

//AU_HEADER

bytes[14] = (byte)((len & 0x1fe0) >> 5); //高位

bytes[15] = (byte)((len & 0x1f) <

这样就能得到多个au的长度

3. AU 实际的音频数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值