Config

hls.js

var config = {
  autoStartLoad: true,
  startPosition: -1,
  ......
  licenseXhrSetup: undefined,
  drmSystemOptions: {}
};

var hls = new Hls(config);
  • autoStartLoad(默认值:true)

    • true,则在触发Hls.Events.MANIFEST_PARSED事件后将自动加载开始级别的播放列表和第一个片段
    • false,则需要显式 API 调用 ( hls.startLoad(startPosition=-1)) 来启动质量级别/片段加载。
  • startPosition(默认值:-1)

    • 播放点位,Event 监听 FRAG_CHANGED,指定到某一具体播放点位进行播放(如跳过片头,跳过片尾,回放视频拖拽快进/后退)
HlsPlayer.on(window.Hls.Events.FRAG_CHANGED, function (event, data) {
    let startP = data.frag.start;
    HlsPlayer.startLoad(startP);
}
  • maxBufferLength(默认值:30s)以秒为单位的最大缓冲区长度

    • 如果缓冲区长度小于/变得小于这个值,一个新的片段将被加载
    • 设置此配置后则忽略 maxBufferSize
  • backBufferLength(默认值:Infinity)缓冲媒体播放后保留的最长持续时间,以秒为单位,任何缓冲超过此持续时间的视频都将被逐出

  • maxBufferSize(默认值:60M)最大缓冲区大小(以字节为单位)如果缓冲区大小预先大于此值,则不会加载任何片段。

  • maxBufferHole(默认值:0.5s)hls.js 在搜索下一个要加载的片段时可以处理的“最大”片段间缓冲区孔容差。在质量级别之间切换时,片段可能不会完全对齐。这可能会导致媒体缓冲区中出现小的重叠或孔洞。这个容差因素有助于解决这个问题。
    • 分辨率切换的情况下,ts文件大小被改变,可能导致视频帧丢失,导致媒体缓冲区中出现小的重叠或孔洞,播放过程中直接卡住(没有可供播放的ts文件资源)
    • 上一分辨率ts缓冲start-end:6.0213-9.2311,下一分辨率ts缓冲start-end:9.8923-12.4311,中间出现0.7s左右的空档

+

Lua习题练习
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。