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 を誤解しているのかもしれません。

だから本当に2つの質問:

  1. の値を決定するにはどうすればよいですかioOutputDataPacketSize

  2. 変換関数に直接渡すことができる実際の AAC データの上の AAC ヘッダーはありますか? または、ヘッダーを削除する必要がありますか (実際にデコードしてサイズを計算できるようになったら)

ある NSData 入力から別の NSData 出力へのこの変換を行う例は実際には見つかりませんでした。ディスクベースの変換を使用した例もありますが、インメモリ変換にはあまり役に立ちません。

4

1 に答える 1

0

私の間違いです、これは私が見ているオーディオ データではなく、ビデオ データです! これで、実際に正しいサイズのパケットを抽出できます。

于 2012-05-25T20:52:09.550 に答える