An example of AAC capability in H.245 5


Got mails continuously from everywhere throwing question to me about AAC audio in H.323.

So I arranged this post to example my previous posts: http://rg4.net/archives/1480.htmlhttp://rg4.net/archives/1126.htmlhttp://rg4.net/archives/1112.html

The pcap file for this example can be downloaded here: HUAWEI_TE600-vs-ZTE_T800.pcapnp

Here it is.

1. Basic knowledge: AAC LD descriptions in 14496-3

It operates at up to 48 kHz sampling rate and uses a frame length of 512 or 480 samples, compared to the 1024 or 960 samples used in standard MPEG-2/4 AAC to enable coding of general audio signals with an algorithmic delay not exceeding 20 ms. Also the size of the window used in the analysis and synthesis filterbank is reduced by a factor of 2.

And Table 1.3 — Audio Profiles definition of 14496-3 explained AAC format definition, AAC LC or AAC LD.

2. Basic knowledge: AAC capability in description of H.245 TCS

maxBitRate: 640
noncollapsing:
ProfileAndLevel: nonCollapsing item –> parameterIdentifier: standard = 0
AAC format: nonCollapsing item –> parameterIdentifier: standard = 1
AudioObjectType: nonCollapsing item –> parameterIdentifier: standard = 3
Config(Including sample rate and channel parameters): nonCollapsing item –> parameterIdentifier: standard = 4
MuxConfig: nonCollapsing item –> parameterIdentifier: standard = 8

3. H.245 TCS of HUAWEI TE60 and ZTE T800

HUAWEI TE60: 172.16.219.105
————————————————–
There are two AAC capabilities:
Capability 1:
collapsing:
collapsing item –> parameterIdentifier=2, parameterValue=2
collapsing item –> parameterIdentifier=5, parameterValue=1
noncollapsing:
ProfileAndLevel: 24
AAC format: logical (0)
AudioObjectType: 23

Capability 2:
collapsing:
collapsing item –> parameterIdentifier=2, parameterValue=2
collapsing item –> parameterIdentifier=5, parameterValue=1
noncollapsing:
ProfileAndLevel: 24
AudioObjectType: 23

ZTE T800: 172.16.219.103
————————————————–
There are four AAC capabilities:
Capability 1:
Capability 2:
Capability 3:
Capability 4:

4. Detail parameters in OLC command

TE60 OLC to T800:
————————————————–
maxBitRate: 1280
collapsing:
item 0 –> parameterIdentifier=2, parameterValue=2
item 1 –> parameterIdentifier=5, parameterValue=1
noncollapsing:
item 0 –> parameterIdentifier=0, value=25
item 1 –> parameterIdentifier=1, value=logical (0)
item 2 –> parameterIdentifier=3, value=23
item 3 –> parameterIdentifier=6, value=logical (0)
item 4 –> parameterIdentifier=8, octetString = 41 01 73 2a 00 11 00
item 5 –> parameterIdentifier=9, octetString = 00 00 00

Explanation:
AOT=23 –> AAC LD
MuxConfig = 41 01 73 2a 00 11 00 –> LATM format
Sample rate = (MuxConfig[2]&0x0f) = 0x73 & 0x0f = 3 = 48K Hz
Channel = (MuxConfig[3]&0xf0)>>4 = (0x2a & 0xf0) >> 4 = 0x20 >> 4 = 2 = Stereo

HUAWEI sent open logical channel with AAC LD stereo to ZTE.

T800 OLC to TE60:
————————————————–
maxBitRate: 1280
collapsing:
item 0 –> parameterIdentifier=2, parameterValue=2
item 1 –> parameterIdentifier=5, parameterValue=1
noncollapsing:
item 0 –> parameterIdentifier=0, value=25
item 1 –> parameterIdentifier=1, value=logical (0)
item 2 –> parameterIdentifier=3, value=23
item 3 –> parameterIdentifier=6, value=logical (0)
item 4 –> parameterIdentifier=8, octetString = 41 01 73 1a 00 11 00
item 5 –> parameterIdentifier=9, octetString = 00 00 00

Explanation:
AOT=23 –> AAC LD
MuxConfig = 41 01 73 1a 00 11 00 –> LATM format
Sample rate = (MuxConfig[2]&0x0f) = 0x73 & 0x0f = 3 = 48K Hz
Channel = (MuxConfig[3]&0xf0)>>4 = (0x1a & 0xf0) >> 4 = 0x10 >> 4 = 1 = Mono

ZTE sent open logical channel with AAC LD mono to HUAWEI.
Any furture questions?


Leave a comment

Your email address will not be published. Required fields are marked *

5 thoughts on “An example of AAC capability in H.245

  • Zdell

    HVXC is not a normal format of AAC, it’s under some particular patents protection, so there’s no way to decode if you are using open source codecs like ffmpeg, faad, etc.

    Try some commercial codecs.

  • Snow Wang

    Thanks a lot.Learned from your analysis!
    Some questiones:
    1.HUAWEI IP:172.16.219.103;ZTE IP:172.16.219.105;KDV GK:172.16.220.104
    2.Both of HUAWEI and ZTE have 4 AAC capabilitities
    3.AOT=23->AAC LD,not AAC ELD
    4.StreamMuxConfig=41 01 73 1a 00 11 00->LATM Header Info,if the stream is not LATM, there is no need to contain standard 8 and it should contain standard 6 to set the ADTS header info(AudioSpecifigConfig)

    • Jacky Wei Post author

      Hi Snow,

      Q1
      172.16.219.103 –> ZTE T800
      172.16.219.105 –> HUAWEI TE60
      172.16.220.104 –> KDV GK

      Q2
      Yes, both of HUAWEI and ZTE have 4 AAC capabilitities, but both them have some private format of AAC.

      Q3
      Typo, and has been corrected in the post.

      Q4
      Yes, StreamMuxConfig is in LATM format. Let me explain your “standard 6 -> muxConfigPresent” description to other readers:
      If the muxConfigPresent value is 0, streamMuxConfig is not multiplexed into the audio RTP payload. (OUT-OF-BAND)
      if the muxConfigPresent value is 1, streamMuxConfig is multiplexed into the audio RTP payload. (IN-BAND)

      Thanks for your correction.