Firefox MediaSourceExtension对mp3的支持

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

我正在研究在浏览器中实现自适应和渐进式音频流,而没有插件。MSE是我一直在等待的HTML5 API,可在FF 42中使用,但似乎还没有Firefox中的音频格式支持?使用MSE API时,mp3音频不起作用。

下面是代码段:

var mediaSource = new window.MediaSource();
var audioSourceBuffer;

mediaSource.addEventListener('sourceopen', function (e) {
    try {
        var mimeType = "audio/mpeg";
        audioSourceBuffer = mediaSource.addSourceBuffer(mimeType);
    } catch (e) {
        log('Exception calling addSourceBuffer', e);
        return;
    }
}

我在调用addSourceBuffer时收到NotSupportedError异常。

Firefox不支持mp3吗?从MDN支持的格式(https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats)列表中表示,如果操作系统支持mp3,则应该存在mp3支持-我在(OSX)上测试的OS确实支持mp3。

任何帮助表示赞赏!

javascript html audio mp3 media-source
2个回答
6
投票

好,所以我能够在从事Media Source Extension的Mozilla工程师的帮助下弄清楚。

关于MSE(媒体源扩展)的第一件事要注意的是,它不一定支持浏览器的音频元素支持的所有媒体格式。为了说明这一点,尽管Firefox在直接输入到浏览器或直接输入到音频元素时将播放mp3文件,但如果将其输入到媒体源缓冲区中,它将not播放相同的mp3文件。

现在,Firefox的MSE实施实际上支持哪种媒体格式?答案是从Firefox 42开始,默认情况下仅支持fMP4(分段MP4)。还支持webm,但默认情况下不支持,您的用户将必须通过Firefox的about:config页面手动将其打开。创建新缓冲区时用于馈送媒体源对象的fMP4 mimeType是:audio / mp4; codecs =“ mp4a.40.2”

[如果您想知道fMP4是什么,它是MPEG-4标准的一部分,更具体地说是第12部分的标准:“使用非多路复用音频/视频的ISO基本媒体文件格式(ISOBMFF)” 。如果您对更多详细信息感兴趣,请查找它。

根据我的经验,所有主要的浏览器和操作系统都支持fMP4,这使fMP4成为自适应和渐进式流的理想格式选择。

HTH!


0
投票

我在Linux上使用FF42,与我认为阅读documentation on MDN的说法相反,默认情况下未启用MediaSource API。

您是否尝试过about:config并调整与MediaSource API支持的编解码器有关的参数?我有用于MP4和webm的开关。不确定是否对MP3有帮助,但值得尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.