使用MediaSource api

时间:2015-05-22 04:06:08

标签: javascript safari html5-video hls media-source

我想使用媒体源扩展来传输HLS片段。我尝试使用mpeg-dash片段(使用MP4Box生成)和媒体源扩展。

var mediaSource = new window.MediaSource();
mediaSource.addEventListener('sourceopen', _onSourceOpen);
$('video').attr('src', URL.createObjectURL(self.mediaSource));

function _onSourceOpen() {
    sourceBuffer = mediaSource.addSourceBuffer('video/mp4; codecs="avc1.64000d,mp4a.40.2"');
}

function _onFragmentDataLoad(data) {
    sourceBuffer.appendBuffer(data);
}

它在chrome,Windows 8 IE,android chrome上流畅播放。它也适用于野生动物园,但它不会得到媒体的总持续时间。所以我在safari上尝试使用HLS片段。生成的HLS数据包含.m3u8个文件和其他.ts个片段。当我将.m3u8文件指定为视频元素的源时:

$('video').attr('src', 'filename.m3u8');
事情就像魅力一样。但后来我放松了对运输的控制。为了完全控制传输和响应式解决方案更改,我尝试将.ts个片段逐个放入初始化sourcebuffer。它在野生动物园中失败了。但是相同的HLS片段与exo player一致。我的问题是: 1.如何使用Media Source Extension在safari上实现HLS流。 2.由于HLS生成不会产生任何init片段,不像短划线生成,媒体播放器如何理解持续时间和其他元数据? 3.如何获得此HLS的编解码器?或者safari默认支持任何编解码器,可以在这里使用吗?

感谢。

0 个答案:

没有答案