前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >HLS直播变点播,未按顺序从头播放问题(vidoe.js/videojs-contrib-hls.js)。

HLS直播变点播,未按顺序从头播放问题(vidoe.js/videojs-contrib-hls.js)。

作者头像
躺平程序员老修
发布2023-09-05 15:39:43
发布2023-09-05 15:39:43
4490
举报

问题描述

可以参考这篇文章,博主遇到的问题跟他类似:HLS实现点播和直播时,M3U8文件的不同; 主要问题就是当m3u8文件没有切片结束时(也就是最后没有#EXT-X-ENDLIST这行代码),直播内容为倒数第三个开始,而不是从头。

技术背景

考虑到H5标签对m3u8的兼容性,于是用了video.jsvideojs-contrib-hls,具体使用可以在我贴出的github连接上找到。

资料查找

翻箱倒柜,终于在谷歌找到了如下描述:gst-plugins-bad: hls: Exclusion of last three fragment in case of live playback;有一段话是这样讲的:

HLS spec 6.3.3 is saying that "the client SHOULD NOT choose a segment which starts less than

three target durations from the end of the Playlist file."

原来 HLS spec 6.3.3就是这么实现的,于是继续查找,发现新大陆,貌似有个参数#EXT-X-START可以控制,于是在m3u8文件头加上这行,无奈不起作用;

继续翻箱倒柜,我看到了问题原因:HTTP Live Streaming draft-pantos-http-live-streaming-12;MD原来hls协议已经支持,但是我用的videojs-contrib-hls.js插件貌似不支持!

解决办法

最后放弃寻找插件,自己动手丰衣足食,通过在浏览器断点测试的帮助下,在videojs-contrib-hls.js中将 this.tech_.setCurrentTime(seekable.end(0));改为this.tech_.setCurrentTime(seekable.start(0)); 成功解决此问题,当我的广告文件播放结束后,m3u8可以从头播放了,而且不影响切片,当切片完成时,自动转为点播模式!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 技术背景
  • 资料查找
  • 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档