16字节对齐AAC编码数据

时间:2017-09-28 10:31:22

标签: c++ audio encoding audio-streaming aac

我需要使用FDK lib动态编码ACM流到AAC ELD。

我的问题是,在我的情况下,AAC编码数据需要16字节对齐。 I.E它的长度除以16。

我不确定如何做到这一点。 我试图将0添加到编码数据的末尾,直到它被除以16,然后将其发送到CBC,但有些解码器不喜欢它。

我必须将填充添加到ACC编码数据中,以便另一方的ACC解码器知道如何处理。

我不认为我使用的AAC lib(FDK Lib)有添加填充的选项,所以我想我需要自己填充编码的AAC数据?

你能告诉我最好和最简单的方法吗

2 个答案:

答案 0 :(得分:0)

您尝试添加0xE0(0b11100000)而不是零吗?

如果一个字节开始一个帧,则它的三个最高位指示块的类型。类型0b111指示帧的结尾。类型0表示单个通道元素,并且需要遵循编码的音频,这就是为什么在简单填充零时会出现错误的原因。

答案 1 :(得分:0)

AAC规范中有一个所谓的“填充元素”。但是,您的编码器支持吗?添加它非常困难,您基本上需要学习大量的AAC双流语法。

另一方面,是否需要传输整个编码帧?我不明白为什么这是真的。只需在喜欢的边界上分割流,然后在解码之前将其连接到另一端。