0

我正在尝试使用“音频转换器服务”-AudioConverterFillComplexBuffer

我遇到了很多问题。首先,我不知道如何填充ioOutputDataPacketSize. 我已经解析了我的 SDP 描述符,我得到了 8000Hz、1 通道 AAC-LC。

a=fmtp:98 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1588

我收到一些准备通过 RTP 转换的数据(各种大小),删除如下所示的标头,然后我期望的是一个 16 位 AU-headers-length 字段,之后我将拥有应该允许的 AU 标头我来确定帧/数据包大小等。我看到的只是标题长度的零......

我正在通过 RTP 接收 AAC-LC / AAC-hbr,收到的数据包如下所示:

0x24 0x00  - unknown framing

0x05 0x84 - rfc4571 - 2bytes packet length

0x80 0x61 0x00 0x00 - 12bytes rtp header - rfc3016
0x00 0x00 0x05 0xA0 
0x05 0x5F 0xEB 0x2E 

0x00 0x00 0x01 0xB0 - rtp payload ie. start of AAC header??
0x03 0x00 0x00 0x01 
0xB5 0x09 0x00 0x00 
0x01 0x00 0x00 0x00 
0x01 0x20 0x00 0x84 
0x40 0x06 0x68 0xA0 
0x21 0xE0 0xA3 0x1F 
0x00 0x00 0x01 0xB6 ...

我每隔几秒钟就会得到上面的“标题”,并且在几个数据包之间,以:

0x00 0x00 0x01 0xB6

所以它看起来像一个一致的标题,但也许我误解了 rfc3640。

所以真的有两个问题:

  1. 如何确定ioOutputDataPacketSize.

  2. AAC 标头是否高于我可以直接传递给转换函数的实际 AAC 数据?还是我需要剥离标题(一旦我可以实际解码并计算它的大小)

我还没有真正找到从一个 NSData 输入到另一个 NSData 输出进行这种转换的任何示例。一些使用基于磁盘的转换的示例,但它们对内存转换没有太大帮助。

4

1 回答 1

0

我的错误,这不是我正在查看的音频数据,而是视频数据!现在我实际上可以提取正确大小的数据包了。

于 2012-05-25T20:52:09.550 回答