jor
jor

Reputation: 21

AAC-LC format and RTP

I'm trying to encode AAC-LC data packed in 3gpp to RTP. I've gone through rfc 3640 but I still don't know exactly where to start from. What will I find in the AAC data exactly ? If I'm not wrong , the first 40 bytes will be the MP4 header, but what comes afterwards and where can I find It's definition ? In order to build the RTP payload, I have to include the AU headers sections, but I don't know If they are already included in the AAC data and I can't find it anywhere.

Once I have taken out the mp4 header I have the following data:

00 00 14 03 E9 1C 00 00 14 03 E9 1C

Is this the AU header ? How do I interpret this data?

An another question, what is the relation between AAC-LC and AAC-lbr...I mean, I know the first one stands for low complexity and the second one for low bit rate, but is it the same ? one includes the other ?

Thanks in advance, I'm really new to AAC and I'm quite lost !

Upvotes: 1

Views: 4629

Answers (1)

Peter
Peter

Reputation: 428

I'm trying to do the opposite, ie decode a RTP AAC stream, so some of the references I've found so far might be useful to you:

http://www.rfc-editor.org/rfc/rfc3016.txt

this describes the rtp structure. What I've found in reading my stream, is that there there is also a framing header around the RTP packets, 2bytes for the length:

https://www.rfc-editor.org/rfc/rfc4571

On top of that I have found an extra framing of 2bytes 0x24 0x00 - still no idea what that is all about, but thought I'd let you know you may need to recreate that as well.

Sadly it seems like a lot of the interesting specs are 'pay to view'. Although I did find some useful info from this blog:

http://thompsonng.blogspot.com/2010/03/rfc-3640-for-aac.html

Regarding your other question, I have AAC-hbr which is also AAC-LC apparently, although once again I also haven't found publicly available specs for this.

Your AU header looks a bit similar to what I've got:

0x00 0x00 0x01 0xB6 0x55 0x60 0x63 0xFF 0xFF 0x7A 0x7D 0xD5 0xF7 0xB7 0xA7 0xDF

Although I was expecting the first 16bits to be a length for the headers, so like yourself, I'm not quite sure what I'm looking at...

Anyway I hope some of that was helpful.

Upvotes: 2

Related Questions