我从某个地方获得了一些ADTS AAC原始数据(实际上,它是从一个被解压缩的文件中提取的),理论上应该对其进行修正编码。看起来是这样的:
Frame1:
21 19 94 ED A1 09 45 09 40 02 CA 85 D4 E5 C5 58 A9 73 00 C 75 1D A7 4E 52 90 38 71 9C D5 C4 22 7B 28 7D EF F8 42 33 15 03 BA 6C B1 74 B4 A1 4E 0A 21 05 15 34 6B FD D9 E7 8F BF 79 5C D3 7D 79 A1 65 57 08 3A 14 85 5E #EF 20#EF 21#72A 85 7A 8AAAC 1B # 65 69 71 # 92 #en25 8A CB 5A 6F en27# 2B #3B# 0E #0E#EF 28#2A 40 2 F 8E 90 9B 1F A2 3A 9C 39 A8 35 CE 69 14 CD 64 54 70 00 50 07 CE 37 83 6 F0 01 18 AA A8 49 B2 8B 8F A1 37 17 1C 06 00 0006 0000000072
Frames2:
21 19 95 14 C2 0A A9 61 19 8B CB 9B 56 AE A7 0A A0 34 D5D D9 34 28 F8 DC 0C 30 97 12 A7 DD 3F F5 FE 7B 52 61 6D 7F DA e D3 EB 30 CA 30 CA A6 94 54 8E D4 0A 32 E1 EB 02 82 B5 1E 40 4C 04 3A为56 21 5D 7D 5D B3 31 2A 5D AF 4F A6 48 A6 87 DE 5C 59 4B EN20# 2C 50 6B 35 2C 50 6B 35 24 6C 06 86 en22# 26 en24# DD 9A 53 68 8D 8D67 8E7D0A 28 EB 7D F1 BB FC 56 5E 13 25 F9 77 E6 27 BF D4e 09 38 86 20 00 F9 C6 F0 1D DE 0021 05 4F 28 C0 A0 5F 18 00 03 00 E
.
对于下面的每一个帧,都有一个非常奇怪的相似的标题,如:
21 19 xx
例如:
21 19 94 E1 .
21 19 95 03
……
你知道这个标题是什么意思吗?
发布于 2012-12-04 09:39:28
例如,对于立体声来说,ADTS AAC是这样的:
adts_header()
channel_pair_element()
adts_header()
channel_pair_element()
adts_header()
channel_pair_element()
adts_header()
channel_pair_element()
等等。
这似乎根本不是ADTS头。ADTS头通常不用于其他容器(如mp4 ),而仅用于独立的AAC文件。ADTS头以12位同步词1111 1111 1111开始。所以所有的例子都不是这样的。
如果muxer删除了任何报头,您可能有原始的AAC,在立体声的情况下,应该从single_channel_element()开始使用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原始容器中获取此信息。
发布于 2014-11-21 16:47:02
它很可能是一种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报头,而是使用一些编解码配置缓冲区来初始化解码器。
https://stackoverflow.com/questions/13682412
复制相似问题