「オーディオ コンバーター サービス」を利用しようとしています - 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つの質問:
の値を決定するにはどうすればよいですか
ioOutputDataPacketSize
。変換関数に直接渡すことができる実際の AAC データの上の AAC ヘッダーはありますか? または、ヘッダーを削除する必要がありますか (実際にデコードしてサイズを計算できるようになったら)
ある NSData 入力から別の NSData 出力へのこの変換を行う例は実際には見つかりませんでした。ディスクベースの変換を使用した例もありますが、インメモリ変換にはあまり役に立ちません。