【问题标题】:Playing AAC (ADTS) file with Netstream Appendbytes使用 Netstream Appendbytes 播放 AAC (ADTS) 文件
【发布时间】:2014-04-07 21:25:13
【问题描述】:

我想知道是否真的可以使用 Netstream.appendbytes 播放 AAC(ADTS 标头)文件。我说的是以.aac 结尾的文件,而不是 M4A 或 MP4 容器中的 AAC 音频。

我知道 Netstream 无法解析 ADTS 标头等,所以我已经有一个类用于解析数据并返回正确的信息,例如通道、比特率、帧长度等。

将这些放在一起会产生静音: 制作 FLV 标头(+ 附加)->> 制作音频标签标头(+ 附加)->> 现在附加原始/无头 AAC 有效负载(第 1 帧)+ 更新以前的标签大小 ->> 为下一个 AAC 帧制作新的音频标签并附加 ->> 原始/无头有效载荷附加(第 2 帧),依此类推,直到轨道结束。

有人可以澄清一下吗:

  • 在 FLV 标签中,我们放置了额外的字节来指定是 Raw 还是 Sequenced AAC 类型。如果我删除了 7 字节标头并只留下下一帧/SyncWord 上的数据。我假设它是原始的,但无论我选择哪种设置,我都会保持沉默。我是否应该考虑其他任何事情(即取决于类型的附加功能?)

  • 在发送到 Appendbytes 命令的某个时间点,某些数据中是否应该存在 AAC 标头字节?即使我已经将 FLV 标签设置为原始 AAC 音频?

  • 是否所有 AAC 文件每帧都包含 1024 个样本,无论通道如何,还是应该将 1024 乘以通道数?我问是因为我需要这个来进行正确的持续时间计算,并且在测试 MP3 时注意到,如果持续时间或帧长度错误,我会得到静音。

我有很多问题和大量研究(AAC 规范、FLV 规范等),但没有任何帮助,而且网络上有一些令人困惑的信息(他们并不总是从 AS3 的角度说话..)。我想我只需要知道这绝对是可能的,而不是盲目地对抗技术限制

PS:我已经使用 AppendBytes 成功播放了 .MP3 音频文件,现在更改了流程以适应 AAC(即:解析 7 字节标头而不是 4 字节标头等。比 ofcos 更多)。感谢阅读,希望有人能提供帮助。

【问题讨论】:

    标签: actionscript-3 flash aac netstream


    【解决方案1】:

    我本来打算不久前回答这个问题的......

    Working Demo..[ A very basic demo of AAC file playback ](如果您需要一些测试 AAC 文件,请参见下文)

    我可以很高兴地确认使用 NetStream 播放 .aac 音频文件是 100% 可能的。 所以要澄清我自己的问题:

    • 您需要首先提到的 两种 AAC 类型来启动 AAC 解码器,然后您可以使用 AAC 类型执行通常的 FLV 标签:原始 + 原始 AAC 数据(无 ADTS header) 并继续这样直到曲目结束。

    • 不。不应将任何 ADTS 字节发送到 Netstream 解码器。

    • 是的,每个 AAC 帧包含 1024 个样本,每个帧等于 23.21 毫秒(1 秒音频大约 44 帧)。频道设置无关紧要。

    下图说明了过程。正如您在 FLV 标头和元数据之后看到的那样,首先有两种类型的标签,但随后是 AAC 类型的原始标签。没有 ADTS 意味着从每个 AAC 帧中删除 7 字节标头,并将剩下的内容塞入 FLV 标签。我为每个 AAC 帧制作了一个 FLV 音频标签(更容易处理搜索和时间戳等)...

    在 Hex 编辑器中分析了使用 FFMPEG 制作的测试 FLV 后,我了解到使用这两种设置。我不知道他们怎么知道你需要 both 而不是 一个或另一个 就像 FLV 规范( 10.1 版)建议。我向那些男孩女孩的天才低头。

    我因此被卡住了:

    顶部的“过程”图像足以让知道netstream.appendbytes的人继续使用它:

    如果您需要一些测试音频文件...

    AAC 循环测试 1:(学分:Mark "45" King)-http://goo.gl/U7IuWe
    AAC 循环测试 2:(来源:U.T.F.O)-http://goo.gl/W8ieJd
    AAC 扩展测试:(学分:Enya)-http://goo.gl/EVCy4X

    【讨论】:

    • 代码分享将尽快发布,但如果您需要在移动设备上播放,您可以尝试:Fresh Planet AAC Player ANE
    • 该链接已损坏并重定向到 18++ 网站大声笑
    猜你喜欢
    • 2013-05-11
    • 2017-05-14
    • 2014-12-29
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多