获取HTML5视频的持续时间(直播)

时间:2015-09-12 10:36:51

标签: html5 video live hls

我正在寻找从闪存(频闪)切换到HTML5解决方案的选项(使用带有DASH或HLS的媒体源扩展)。 根据视频的HTML5规范,我们无法获得直播视频的持续时间。

  

duration属性必须返回媒体资源结束的时间,   在几秒钟内,在媒体时间轴上。如果没有可用的媒体数据,那么   属性必须返回Not-a-Number(NaN)值。如果媒体资源是   已知无限制(例如流式广播),则该属性必须返回   积极的无限值。

我的直播流不是"滑动窗口"意思是我们有一个固定的开始日期。我目前正在使用Strobe播放器,它实际上会增加播放的持续时间,而HTML5总是返回Infinity

我想知道是否有一些选项可用于维持自己的持续时间(例如,通过解析片段,这种library在某种程度上可以做到这一点)。

1 个答案:

答案 0 :(得分:0)

我没有足够的声誉来评论,所以我会在这里输入。

我认为最好调查.seekable的{​​{1}}和.buffered属性。您可以使用返回HTMLMediaElement对象的.buffered来跟踪媒体中流的持续时间,但媒体元素本身无法知道流可能有多长。

问题是TimeRanges可能并不总是告诉你"有多少流"例如,如果你有很长时间的停顿,那就在那里。

当我在Android虚拟设备和Chrome中的HLS流上测试他们的行为时,经过几秒钟的播放后,缓冲返回了一个.buffered对象,长度为1,TimeRanges为0,{{{ 1}}使用video.buffered.end(0)返回相同的内容。

如果你想要精确的数据,我会同意解析一个HLS播放列表的持续时间的解析库是最好的选择,虽然不是很优雅。

相关问题