c++ - 16 字节对齐 AAC 编码数据

标签 c++ audio encoding audio-streaming aac

我需要使用 FDK 库将 ACM 流动态编码为 AAC ELD。

我的问题是,在我的例子中,AAC 编码数据需要 16 字节对齐。即它的长度将除以 16。

我不确定该怎么做。 我尝试在编码数据的末尾添加 0,直到它除以 16,然后将其发送到 CBC,但有些解码器不喜欢那样。

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

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

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

最佳答案

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

如果一个字节开始一个帧,它的三个最高位表示 block 的类型。类型 0b111 表示帧结束。类型 0 表示单个 channel 元素并且需要编码音频跟随,这就是为什么在简单地用零填充时会出现错误。

关于c++ - 16 字节对齐 AAC 编码数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46466921/

相关文章:

c - 使用 for 循环的微 Controller p18f4520 的音频

xcode - 在Xcode中记录设置:Swift 2.0

android - 如何在 Android O 中动态更改通知声音

java - 将 Java 3d 对象写入自定义文件类型

php - 如何获取操作系统默认编码?

c++ - 有没有办法检测 C++ 中十六进制文字中输入了多少位数字?

c++ - 计算多边形 union 时在 CGAL 中触发的断言

c++ - 在 OpenCV 中查询最大网络摄像头分辨率

c++ - 未调用 QGraphicsItem 绘画

python - python 正则表达式编码有问题吗?