簡體   English   中英

通過AudioConverterFillComplexBuffer將AAC轉換為LPCM

[英]Converting AAC into LPCM via AudioConverterFillComplexBuffer

我正在嘗試使用“音頻轉換器服務”-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輸出的示例。 一些示例使用基於磁盤的轉換,但是它們對於內存中轉換沒有太大幫助。

我的錯誤,這不是我正在查看的音頻數據,而是視頻數據! 現在,我實際上可以提取正確大小的數據包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM