学习HLS.js
前言
HTTP 实时流(也称为HLS(.m3u8))是一种基于HTTP的自适应比特率流通信协议。HLS.js依靠HTML5视频和MediaSource Extensions进行播放,其特点:视频点播和直播播放列表、碎片化的 MP4 容器、加密媒体扩展 (EME) 支持 DRM(数字版权管理)、自适应流媒体、无需重新下载段即可在缓冲区和后台缓冲区中搜索。
HLS的配置对象
var config = {autoStartLoad: true,startPosition: -1,debug: false,capLevelOnFPSDrop: false,capLevelToPlayerSize: false,defaultAudioCodec: undefined,initialLiveManifestSize: 1,maxBufferLength: 30,maxMaxBufferLength: 600,backBufferLength: Infinity,frontBufferFlushThreshold: Infinity,maxBufferSize: 60 * 1000 * 1000,maxBufferHole: 0.1,highBufferWatchdogPeriod: 2,nudgeOffset: 0.1,nudgeMaxRetry: 3,maxFragLookUpTolerance: 0.25,liveSyncDurationCount: 3,liveSyncOnStallIncrease: 1,liveMaxLatencyDurationCount: Infinity,liveDurationInfinity: false,preferManagedMediaSource: false,enableWorker: true,enableSoftwareAES: true,fragLoadPolicy: {default: {maxTimeToFirstByteMs: 9000,maxLoadTimeMs: 100000,timeoutRetry: {maxNumRetry: 2,retryDelayMs: 0,maxRetryDelayMs: 0,},errorRetry: {maxNumRetry: 5,retryDelayMs: 3000,maxRetryDelayMs: 15000,backoff: 'linear',},},},startLevel: undefined,audioPreference: {characteristics: 'public.accessibility.describes-video',},subtitlePreference: {lang: 'en-US',},startFragPrefetch: false,testBandwidth: true,progressive: false,lowLatencyMode: true,fpsDroppedMonitoringPeriod: 5000,fpsDroppedMonitoringThreshold: 0.2,appendErrorMaxRetry: 3,loader: customLoader,fLoader: customFragmentLoader,pLoader: customPlaylistLoader,xhrSetup: XMLHttpRequestSetupCallback,fetchSetup: FetchSetupCallback,abrController: AbrController,bufferController: BufferController,capLevelController: CapLevelController,fpsController: FPSController,timelineController: TimelineController,enableDateRangeMetadataCues: true,enableMetadataCues: true,enableID3MetadataCues: true,enableWebVTT: true,enableIMSC1: true,enableCEA708Captions: true,stretchShortVideoTrack: false,maxAudioFramesDrift: 1,forceKeyFrameOnDiscontinuity: true,abrEwmaFastLive: 3.0,abrEwmaSlowLive: 9.0,abrEwmaFastVoD: 3.0,abrEwmaSlowVoD: 9.0,abrEwmaDefaultEstimate: 500000,abrEwmaDefaultEstimateMax: 5000000,abrBandWidthFactor: 0.95,abrBandWidthUpFactor: 0.7,abrMaxWithRealBitrate: false,maxStarvationDelay: 4,maxLoadingDelay: 4,minAutoBitrate: 0,emeEnabled: false,licenseXhrSetup: undefined,drmSystems: {},drmSystemOptions: {},requestMediaKeySystemAccessFunc: requestMediaKeySystemAccess,cmcd: {sessionId: uuid(),contentId: hash(contentURL),useHeaders: false,},
};var hls = new Hls(config);
autoStartLoad | 是否在实例化后自动开始加载流 |
startPosition | 播放的起始位置(以秒为单位) |
debug | 是否启用调试模式 |
capLevelOnFPSDrop | 是否在帧率下降时降低视频质量 |
capLevelToPlayerSize | 是否根据播放器大小调整视频质量 |
maxBufferLength | 缓冲区的最大长度(以秒为单位) |
maxMaxBufferLength | 缓冲区的最大长度上限(以秒为单位) |
backBufferLength | 缓冲区的后缓冲长度(以秒为单位) |
frontBufferFlushThreshold | 前缓冲区的刷新阈值(以秒为单位) |
maxBufferSize | 缓冲区的最大大小(以字节为单位) |
maxBufferHole | 缓冲区中允许的最大空洞(以秒为单位) |
fragLoadPolicy | 定义片段加载策略,包括最大等待时间和重试策略 |
startLevel | 初始加载的视频质量级别 |
lowLatencyMode | 是否启用低延迟模式 |
enableWorker | 是否使用 Web Worker 来处理流数据 |
enableSoftwareAES | 是否启用软件 AES 解密 |
loader | 自定义加载器函数 |
fLoader | 自定义片段加载器函数 |
pLoader | 自定义播放列表加载器函数 |
xhrSetup | 自定义 XMLHttpRequest 设置回调函数 |
fetchSetup | 自定义 Fetch 设置回调函数 |
abrController | 自定义码率控制器 |
abrEwmaFastLive | 直播时的快速 Ewma(指数加权移动平均)系数 |
abrEwmaSlowLive | 直播时的慢速 Ewma 系数 |
abrEwmaFastVoD | 点播时的快速 Ewma 系数 |
abrEwmaSlowVoD | 点播时的慢速 Ewma 系数 |
abrEwmaDefaultEstimate | 默认的 Ewma 估计值 |
abrBandWidthFactor | 码率选择时的带宽因子 |
abrBandWidthUpFactor | 码率选择时的上行带宽因子 |
enableDateRangeMetadataCues | 是否启用日期范围元数据提示 |
enableMetadataCues | 是否启用元数据提示 |
enableID3MetadataCues | 是否启用 ID3 元数据提示 |
enableWebVTT | 是否启用 WebVTT 字幕 |
enableIMSC1 | 是否启用 IMSC1 字幕 |
enableCEA708Captions | 是否启用 CEA-708 字幕 |
stretchShortVideoTrack | 是否拉伸短视频轨道 |
maxAudioFramesDrift | 允许的最大音频帧漂移 |
forceKeyFrameOnDiscontinuity | 是否在不连续时强制关键帧 |
fpsDroppedMonitoringPeriod | 帧率下降监控周期(以毫秒为单位) |
fpsDroppedMonitoringThreshold | 帧率下降监控阈值 |
appendErrorMaxRetry | 追加错误的最大重试次数 |
emeEnabled | 是否启用 EME(加密媒体扩展) |
licenseXhrSetup | 自定义许可证请求设置回调函数 |
drmSystems | DRM 系统配置 |
drmSystemOptions | DRM 系统选项 |
requestMediaKeySystemAccessFunc | 请求媒体密钥系统访问的函数 |
cmcd | CMCD(Common Media Client Data)配置 |
demo效果
相关代码在资源
相关文章:
![](https://i-blog.csdnimg.cn/direct/e91171a892aa4eb1aa22eca859b6171c.gif)
学习HLS.js
前言 HTTP 实时流(也称为HLS(.m3u8))是一种基于HTTP的自适应比特率流通信协议。HLS.js依靠HTML5视频和MediaSource Extensions进行播放,其特点:视频点播和直播播放列表、碎片化的 MP4 容器、加密媒体扩展 …...
![](https://i-blog.csdnimg.cn/direct/ae5635a473bc4a5bbc47301cb0c788cc.png)
2025年华为OD上机考试真题(Java)——判断输入考勤信息能否获得出勤奖
题目: 公司用一个字符串来表示员工的出勤信息: absent:缺勤late:迟到leaveearly:早退present:正常上班 现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下&am…...
![](https://i-blog.csdnimg.cn/img_convert/826cd897910c79fbd57700444cd1d6ba.jpeg)
空对象模式
在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我…...
![](https://i-blog.csdnimg.cn/direct/89225aab6317414fbe5b4a8aabd12c6e.gif)
开启Excel导航仪,跨表跳转不迷路-Excel易用宝
都2025年了,汽车都有导航了,你的表格还没有导航仪吗?那也太OUT了。 面对着一个工作簿中有N多个工作表,工作表中又有超级表,数据透视表,图表等元素,如何快速的切换跳转到需要查看的数据呢&#…...
![](https://i-blog.csdnimg.cn/img_convert/2c6162477a1f81c424f0361fc569f885.jpeg)
年度技术突破奖|中兴微电子引领汽车芯片新变革
随着以中央计算区域控制为代表的新一代整车电子架构逐步成为行业主流,车企在电动化与智能化之后,正迎来以架构创新为核心的新一轮技术竞争。中央计算SoC,作为支撑智驾和智舱高算力需求的核心组件,已成为汽车电子市场的重要新增量。…...
![](https://www.ngui.cc/images/no-images.jpg)
Ubuntu 如何查看盘是机械盘还是固态盘
在 Ubuntu 系统中,您可以通过以下方法来确定硬盘是机械硬盘(HDD)还是固态硬盘(SSD): 使用 lsblk 命令: 打开终端,输入以下命令: lsblk -d -o name,rota该命令将列出所…...
![](https://i-blog.csdnimg.cn/direct/f78893fa15074b4eb8872f213cebd3a9.png)
计算机网络(三)——局域网和广域网
一、局域网 特点:覆盖较小的地理范围;具有较低的时延和误码率;使用双绞线、同轴电缆、光纤传输,传输效率高;局域网内各节点之间采用以帧为单位的数据传输;支持单播、广播和多播(单播指点对点通信…...
![](https://i-blog.csdnimg.cn/direct/bd67d84b30134496bfef724f32c496f1.png)
STM32F4分别驱动SN65HVD230和TJA1050进行CAN通信
目录 一、CAN、SN65HVD230DR二、TJA10501、TJA1050 特性2、TJA1050 引脚说明 三、硬件设计1、接线说明2、TJA1050 模块3、SN65HVD230 模块 四、程序设计1、CAN_Init:CAN 外设初始化函数2、CAN_Send_Msg、CAN_Receive_Msg 五、功能展示1、接线图2、CAN 数据收发测试 …...
![](https://www.ngui.cc/images/no-images.jpg)
将光源视角的深度贴图应用于摄像机视角的渲染
将光源视角的深度贴图应用于摄像机视角的渲染是阴影映射(Shadow Mapping)技术的核心步骤之一。这个过程涉及到将摄像机视角下的片段坐标转换到光源视角下,并使用深度贴图来判断这些片段是否处于阴影中。 1. 生成光源视角的深度贴图 首先&…...
![](https://www.ngui.cc/images/no-images.jpg)
docker一键安装脚本(docker安装)
第一种方法一键安装命令 curl -O --url http://luyuanbo79.south.takin.cc/wenjian/docker_install.sh && chmod x docker_install.sh && ./docker_install.sh 备用方法 curl -O --url https://file.gitcode.com/4555247/releases/untagger_0896d4789937405…...
![](https://i-blog.csdnimg.cn/direct/607f2f5cb00e4db7a50a1211d1dc93fb.png)
【SY2】Apollo10.0 Cyber基于Writer/Reader的通信方式
实验前提 Apollo10.0已经安装完毕Vscode及相关插件安装完成启动容器并进入在Vscode连接进入到Apollo工作空间下学习资料 部分配置如实验一https://blog.csdn.net/weixin_60062799/article/details/145029669?spm1001.2014.3001.5501 学习资料 Apollo7.0或其他版本可以参…...
![](https://i-blog.csdnimg.cn/direct/fa6e5a27a8f54c76af218c4b1892de41.png)
【YOLOv8杂草作物目标检测】
YOLOv8杂草目标检测 算法介绍模型和数据集下载 算法介绍 YOLOv8在禾本科杂草目标检测方面有显著的应用和效果。以下是一些关键信息的总结: 农作物幼苗与杂草检测系统:基于YOLOv8深度学习框架,通过2822张图片训练了一个目标检测模型ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
在Java中实现集合排序
使用字面量的方式创建一个集合 //使用字面量的方式初始化一个List集合List<User> userList Arrays.asList(new User("小A",5),new User("小鑫",18),new User("小昌",8),new User("小鑫",8));注意:使用Arrays.asLis…...
![](https://i-blog.csdnimg.cn/direct/752c6f70386e4c1a9776216e330d58b4.png)
el-descriptions-item使用span占行不生效
需要实现的效果是客户状态单独占满一行 错误代码: <el-descriptions title"基本信息" :column"3"> <el-descriptions-item label"公司电话:">Suzhou</el-descriptions-item><el-descriptions-item label"…...
![](https://i-blog.csdnimg.cn/direct/fb60fd137a8a4259b42e2a426f96959c.png)
Android 绘制学习总结
1、刷新率介绍 我们先来理一下基本的概念: 1、60 fps 的意思是说,画面每秒更新 60 次 2、这 60 次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅 3、每秒 60 次,也就是 1…...
![](https://i-blog.csdnimg.cn/img_convert/d8e6c6b083d9cd7c0b6f595aa7a270af.png)
Linux下部署SSM项目
作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 Linux部署SSM项目 打包项目 1、修改pom.xml文件,打包方式改为war <packaging>war</packaging>2、idea 通过maven的clean,…...
![](https://i-blog.csdnimg.cn/direct/d1c2dfa200f34568a058f2d99d9c0d5a.png)
计算机网络 笔记 数据链路层 2
1,信道划分: (1)时分复用TDM 将时间等分为“TDM帧”,每个TDM帧内部等分为m个时隙,m个用户对应m个时隙 缺点:每个节点只分到了总带宽的1/m,如果有部分的1节点不发出数据,那么就会在这个时间信道被闲置,利用…...
![](https://www.ngui.cc/images/no-images.jpg)
xml简介
目录 基本语法特点及应用场景一个简单示例 xml(全称eXtensible Markup Language)是一种用于存储和传输数据的标记语言,跨平台并且跨语言,xml内容较多,这篇文章会介绍一些基础的内容。 基本语法 xml文档通常以xml声明开…...
![](https://www.ngui.cc/images/no-images.jpg)
透明部署、旁路逻辑串联的区别
背景 需讨论防火墙到底是串联,还是旁挂。 通常串联指的就是“透明部署”,旁挂指的就是“逻辑串联”。 透明部署(串联) 也称为透明模式或桥接模式,是一种安全设备的部署方式。在这种模式下,安全设备被串联…...
![](https://i-blog.csdnimg.cn/img_convert/b62dd643c7d54ea243ee8c8232701936.gif)
【网络安全渗透测试零基础入门】之XSS攻击获取用户cookie和用户密码(实战演示)
前言 大家好,我是demon 这是demon给粉丝盆友们整理的网络安全渗透测试入门阶段XSS攻击教程。 本阶段主要讲解XSS攻击获取用户cookie和用户密码。 喜欢的朋友们,记得给晓晓点赞支持和收藏一下,关注我,学习黑客技术。 简介 该…...
![](https://www.ngui.cc/images/no-images.jpg)
c#版本、.net版本、visual studio版本之间的对应关系
最近这几年一直没用过c#开发,都是从事Qt c开发工作,回想一下之前c#还要追溯到2019年,算算时间大概都已过去4,5年了,时间飞快。 2019真是个神奇的数字,vs2019是我用的时间最长的一个IDE,新冠起始…...
![](https://i-blog.csdnimg.cn/direct/2d63dc84a2224f8c934c590cadefc937.png#pic_center)
熵与交叉熵:从不确定性角度理解 KL 散度
从不确定性减少视角理解KL散度 【 Transformer 系列,故事从 d k \sqrt{d_k} dk 说起】 LLM这么火,Transformer厥功甚伟,某天心血来潮~,再去看看! 它长这个样子: 深入浅出 Transformer 看完后ÿ…...
![](https://i-blog.csdnimg.cn/direct/2aa39a1263794d03a4cec6ccd16830f5.jpeg#pic_center)
Redis:数据类型
1. 字符串(String) 简介 概念:这是最简单的数据类型,可以存储字符串、整数或浮点数。特点:支持原子操作,如递增和递减数值。 示例 # 设置一个键值对 SET mykey "Hello, Redis!"# 获取该键的值…...
![](https://www.ngui.cc/images/no-images.jpg)
搭建Node.js后端
从头开始搭建一个Node.js后端,并实现查询历史数据的功能,下面是详细的步骤说明,包括环境配置、项目初始化、代码编写、以及服务器启动。 1. 环境配置 1.1 安装 Node.js 和 npm 首先,你需要在你的电脑上安装 Node.js 和 npm&…...
![](https://i-blog.csdnimg.cn/direct/83424966867746c3845124c1826297f8.png)
集合——数据结构
数据结构 就是计算机存储数据的方式。 不同情况下采取不同数据结构会让数据查找,存储更加有效率。 栈...
![](https://i-blog.csdnimg.cn/direct/9060d20b80274393b5a1d66882e02e49.png)
从CentOS到龙蜥:企业级Linux迁移实践记录(系统安装)
引言: 随着CentOS项目宣布停止维护CentOS 8并转向CentOS Stream,许多企业和组织面临着寻找可靠替代方案的挑战。在这个背景下,龙蜥操作系统(OpenAnolis)作为一个稳定、高性能且完全兼容的企业级Linux发行版࿰…...
![](https://i-blog.csdnimg.cn/direct/dd56316f6ecb47d2b73f68e5bb3554c1.png)
《机器学习》——支持向量机(SVM)
文章目录 什么是支持向量机?基本原理数学模型 支持向量机模型模型参数属性信息 支持向量机实例(1)实例步骤读取数据可视化原始数据使用支持向量机训练可视化支持向量机结果完整代码 支持向量机实例(2)实例步骤导入数据…...
![](https://i-blog.csdnimg.cn/direct/d01263b53f1c470aa5972906a2ca604f.png)
【PPTist】公式编辑、插入音视频、添加动画
一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…...
![](https://i-blog.csdnimg.cn/blog_migrate/aadffb113c7529bb0a991c3f73e8f846.gif)
LeetCode - #186 翻转字符串里的单词 II(会员题)
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
![](https://www.ngui.cc/images/no-images.jpg)
Kafka核心参数与使用02
一、从基础的客户端说起 Kafka 提供了非常简单的生产者(Producer)和消费者(Consumer)API。通过引入相应依赖后,可以快速上手编写生产者和消费者的示例。 1. 消息发送者主流程 一个最基础的 Producer 发送消息的步骤…...
宣城 网站建设/电商运营方案计划书
RF,GBDT,XGBoost,lightGBM都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果来改善基本学习器的泛化能力和鲁棒性。 根据基本学习器的生成方式,目前的集成学习方法大致分为两大类:即…...
网站建设那个公司好/做竞价推广大概多少钱
在开发项目的过程中,有个需求是这样的,点击按钮,弹出一个modal框,要求modal框里的input自动获取焦点。 input输入框单纯的自动获取焦点是很简单的,只需要一个属性autofocus"autofocus"就够了。然而…...
![](https://img-blog.csdnimg.cn/img_convert/380973abe8b2cde8fff0e30045618f1e.png)
政府网站信息内容建设自查工作/做抖音seo排名软件是否合法
现象: 安装VS2019时,下面的界面运行后退出,没有自动弹出下一步的安装界面原因分析:VS2019的运行安装环境为win10, 而我的运行环境是win764位,可能存在不兼容性解决办法:第一步:进入…...
![](https://img-blog.csdnimg.cn/img_convert/a4c26d1e5885305701be709a3d33442f.png)
网站设计怎么好看/中国国际新闻
tp的类库分为两种:公共类库和应用类库;公共类库公共类库指ThinkPHP/Library目录下面的类库,比如Think目录:系统核心类库;Org目录:第三方公共类库。将类放在公共类库比较简单,根据参考手册很容易…...
![](https://itimetraveler.github.io/gallery/android_common/adbtransport_auth.png)
做团膳有哪些网站/宁波seo快速优化课程
ADB简介 Android Debug Bridge (adb) 是一个Android的命令行工具。可以用来连接模拟器或实际的移动设备。比如 adb logcat, adb shell。Dalvik Debug Monitor Server(DDMS) 后台也是运行的adb来实现监控调试移动设备。 总体而言,adb有两个用途: 监控连…...
![](/images/no-images.jpg)
苗木网站建设/广州引流推广公司
1引言主题模型是文本分析中的重要研究问题之一。在2010年前,不同的主题模型层出不穷,2010年后由于神经网络概念的火爆,文本的研究中心逐渐转移。不过主题模型由于其较好的效果以及较为简易的实现在文本分类等领域依旧具有很强的生命力。不同的主题模型建模的角度各有不同,如关联…...