如何在 Chrome 的 MediaSource API 中播放 HE-AAC v2?

问题描述 投票:0回答:2

我正在尝试使用 MediaSource API 在 Chrome 中播放分块 HE-AAC v2。

Chrome 明确允许此编解码器 (

mp4a.40.29
),并且据我所知,能够对其进行解码。 (例如,Web Audio API 中的
decodeAudioData
方法确实解码相同的数据)。

不幸的是,尝试在 Chrome 中使用 MediaSource API 播放 HE-AAC v2 块会导致以下错误,即使完全相同的页面在 Safari 中完美运行。

我整理了一个测试页面,演示了问题(在 Chrome 中)和成功(在 Safari 中)。

如何让 Chrome 播放这些块?

错误:

管道:解码错误

kInitDemuxer

Append:流解析失败。数据大小=15634append_window_start=0 附加窗口结束=inf

html google-chrome audio aac media-source
2个回答
0
投票

您的音频编解码器是 HE-AAC,我相信它在 Chrome 编解码器、容器和文件扩展支持页面上被列为不受支持的音频编解码器 http://www.chromium.org/audio-video

AAC(仅限主要,不包括 AAC-LC、AAC-SSR、HE-AAC)[仅限 Google Chrome]


0
投票

您使用了错误的解码器。

audio/mp4; codecs="mp4a.40.29"
期望以 MP4 格式封装的 AAC 流,但您仅提供了 AAC 流。因此,解码器应该选择
"audio/aac"

// var codec = 'audio/mp4; codecs="mp4a.40.29"'; // HE-AAC v2
var codec = 'audio/aac'; // HE-AAC v2
mediaSource.addSourceBuffer(codec);
© www.soinside.com 2019 - 2024. All rights reserved.