我正在寻找从闪存(频闪)切换到HTML5解决方案的选项(使用带有DASH或HLS的媒体源扩展)。 根据视频的HTML5规范,我们无法获得直播视频的持续时间。
duration属性必须返回媒体资源结束的时间, 在几秒钟内,在媒体时间轴上。如果没有可用的媒体数据,那么 属性必须返回Not-a-Number(NaN)值。如果媒体资源是 已知无限制(例如流式广播),则该属性必须返回 积极的无限值。
我的直播流不是"滑动窗口"意思是我们有一个固定的开始日期。我目前正在使用Strobe播放器,它实际上会增加播放的持续时间,而HTML5总是返回Infinity
。
我想知道是否有一些选项可用于维持自己的持续时间(例如,通过解析片段,这种library在某种程度上可以做到这一点)。
答案 0 :(得分:0)
我没有足够的声誉来评论,所以我会在这里输入。
我认为最好调查.seekable
的{{1}}和.buffered
属性。您可以使用返回HTMLMediaElement
对象的.buffered
来跟踪媒体中流的持续时间,但媒体元素本身无法知道流可能有多长。
问题是TimeRanges
可能并不总是告诉你"有多少流"例如,如果你有很长时间的停顿,那就在那里。
当我在Android虚拟设备和Chrome中的HLS流上测试他们的行为时,经过几秒钟的播放后,缓冲返回了一个.buffered
对象,长度为1,TimeRanges
为0,{{{ 1}}使用video.buffered.end(0)
返回相同的内容。
如果你想要精确的数据,我会同意解析一个HLS播放列表的持续时间的解析库是最好的选择,虽然不是很优雅。