首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用媒体源扩展符合DOMException:无法加载,因为找不到受支持的源

使用媒体源扩展符合DOMException:无法加载,因为找不到受支持的源
EN

Stack Overflow用户
提问于 2018-02-24 17:39:01
回答 1查看 489关注 0票数 0

我使用ffmpeg将mp4转换为m3u8;,并且它保持相同的编解码值。当我使用fetch来获取ts缓冲区并将其附加到MSE实例时。太糟糕了。它不起作用。

以下是一些代码:

代码语言:javascript
复制
function sourceOpen(e) {
    URL.revokeObjectURL(video.src);
    // var mime = 'video/mp4; codecs="avc1.42c015, mp4a.40.5"';avc1.42001e"
    var mime = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
    var mediaSource = e.target;
    sourceBuffer = mediaSource.addSourceBuffer(mime);
    var videoUrl = './video/' + playManifest.segments[index]['uri'];
    log('.js-log-m3u8', 'Fetch Segment ~' + videoUrl);
    fetch(videoUrl, {
        // headers: { range: 'bytes=0-5671398' }
    })
        .then(function (response) {
            return response.arrayBuffer();
        })
        .then(function (arrayBuffer) {
            sourceBuffer.appendBuffer(arrayBuffer);
            sourceBuffer.addEventListener('updateend', updateEnd);
        });
}

Entire Code

在线测试页面:http://events.jackpu.com/media-source/

EN

回答 1

Stack Overflow用户

发布于 2018-02-28 22:27:44

您正在将mime类型设置为video/mp4,但试图将传输流段附加到源缓冲区。因此,追加将失败,并且没有数据被缓冲。

一旦所有的片段都被获取,你就会调用play,而不检查是否有任何数据被缓冲,Promise拒绝。

假设您的用户代理能够创建具有正确mime类型的SourceBuffer,则需要这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48961405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档