8

我从某个地方获得了一些 ADTS AAC 原始数据(实际上它是从解复用文件中提取的),理论上应该对其进行更正编码。它看起来像这样:

框架1:

21 19 94 ED A1 09 45 58 09 40 02 CA AA 85 D4 E5 C5 58 A9 73 00 0C 75 1C 5D A7 4E 52 40 90 38 71 9C 65 D5 C4 22 0B 28 7D EF F8 426 33 15 03 B1 74 B4 A1 4E 0A 21 05 15 34 6B FD D9 E7 8F BF FF 79 5C D3 7D 90 79 F6 65 57 08 3A F7 C5 14 85 5E D7 C3 7D 2A 85 E1 7A 86 BA 3A AC 13 0D AE D1 1B6 B6 71 92 E5 8A BC CB 5C 7A 6F D7 F2 2B 38 C9 0E 2A 40 2F 8E 90 9B 1F A2 3A 9C 39 A8 35 CE 69 14 CD 64 54 70 00 50 07 CE 37 83 6E F0 49 B2 01 18 AA A8 8B 8F A1 37 17 1C 06 00 00 00 06 00 72

框架2:

21 19 95 14 C2 0A A9 61 19 8B CB 9B 56 AE A7 0A A0 34 DA EA D9 34 28 0C F8 DC 0C 30 97 12 A7 DD 3F F5 FE 7B 65 52 61 6D 7F DA BE D3 EB 30 CA A6 94 5 8E D4 0A 32 E1 EA FD AD 02 82 B5 1E 40 4C 04 3A BE 56 21 5D 7D 5D B3 31 2A 5D AF 4E FF A6 48 B9 42 E3 87 DE 5C 59 4B B9 BB C3 2C AD 50 6B 35 C8 24 6 06 82 86 B2 26 17 E2 C6 DD 9A 43 53 91 D3 68 8D 67 8E 7D 0A 28 EB 7D F1 BB FC 56 5E 13 25 F9 77 E6 27 BF DA 4E 09 38 86 20 0A 00 F9 C6 F0 1D DE 05 4F 28 C0 A0 5F 0E 18 00 03 00 0E

......

对于随后的每一帧,都有一个非常奇怪的类似标题:

21 19 XX

举些例子:

21 19 94 E1 ..

21 19 95 03 ..

……

那么你知道这个标题是什么意思吗?

4

2 回答 2

7

这是 ADTS AAC 的样子,例如立体声:

adts_header()
channel_pair_element()
adts_header()
channel_pair_element()
adts_header()
channel_pair_element()
adts_header()
channel_pair_element()
ETC...

这似乎根本不是 ADTS 标头。ADTS 标头通常不在某些其他容器中使用,例如 mp4,但仅用于独立 AAC 文件。ADTS 标头以 12 位同步字开头1111 1111 1111。所以所有的,在你的例子中不是这样。

如果 muxer 去掉了任何头文件,你可能有原始的 AAC,它应该从single_channel_element()单声道或channel_pair_element()立体声的情况开始。

single_channel_element()以 3 位开头000

cannel_pair_element()以 3 位开头001

您的示例以 开头,0010 0001 0001 1001因此可能是channel_pair_element().

您可能有立体声但没有任何标题,如下所示:

channel_pair_element()
channel_pair_element()
channel_pair_element()
channel_pair_element()
等等

您应该让复用器告诉您通道数、采样率等,然后您就可以继续解码了。Muxer 应该从 mp4 或您的 AAC 最初所在的任何容器中获取此信息。

于 2012-12-04T09:39:28.253 回答
2

它很可能是 mpeg4 latm 格式。如果您运行 mediainfo 工具检查,它将输出如下:

$mediainfo a.aac 
General
Complete name                            : a.aac
Format                                   : LATM
File size                                : 821 KiB
Overall bit rate mode                    : Variable

Audio
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : HE-AACv2 / HE-AAC / LC
Bit rate mode                            : Variable
Channel(s)                               : 2 channels / 1 channel / 1 channel
Channel positions                        : Front: L R / Front: C / Front: C
Sampling rate                            : 48.0 KHz / 48.0 KHz / 24.0 KHz
Compression mode                         : Lossy

这种格式通常在 ADTS 标头删除后或从 DTV 频道中生成。DTV 数据传输使用 LATM 格式以节省带宽,因此那里没有 ADTS 标头,但使用一些编解码器配置缓冲区来初始化解码器。

于 2014-11-21T16:47:02.627 回答