繁体   English   中英

使用媒体源扩展符合DOMException:由于找不到支持的源而无法加载

[英]Use Media Source Extensions meet DOMException: Failed to load because no supported source was found

我使用ffmpeg将mp4转换为m3u8; 并且它保持相同的编解码器值。 当我使用fetch获取ts缓冲区并将其附加到MSE实例时。 如此糟糕。 没用

一些代码在这里:

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);
        });
}

整个代码

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

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

一旦获取了所有段,就调用播放,而不检查是否已缓冲任何数据,并且Promise拒绝。

假设您的用户代理能够执行此操作,则需要使用正确的mime类型创建SourceBuffer。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM