当前位置:网站首页>flv.js解析与使用
flv.js解析与使用
2022-08-02 00:16:00 【m0_67392931】
简介
Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF(MP4 碎片)片段,然后通过 Media Source Extensions 将 MP4 片段喂进浏览器。
Github地址:https://github.com/Bilibili/flv.js/
flv.js demo地址:http://bilibili.github.io/flv.js/demo/
flv.js 文档:https://github.com/bilibili/flv.js/tree/master/docs
特征
- FLV 容器,具有 H.264 + AAC 编解码器播放功能
- 多部分分段视频播放
- HTTP FLV 低延迟实时流播放 FLV 通过WebSocket 实时流播放
- 兼容 Chrome, FireFox, Safari 10, IE11 和 Edge
- 十分低开销,并且通过你的浏览器进行硬件加速
媒体数据源
媒体部分
配置
flv.js常用方法
1:flvjs.isSupported():判断当前浏览器是否支持播放
2:flvPlayer = flvjs.createPlayer(mediaDataSource: MediaDataSource, config: Config):创建一个播放实例
3:flvPlayer.attachMediaElement(mediaElement: HTMLMediaElement):将播放实例注册到video节点
4:flvPlayer.load():加载数据流
5:flvPlayer.play():播放数据流
6:flvPlayer.pause():暂停播放数据流
7:flvPlayer.unload():取消数据流加载
8:flvPlayer.detachMediaElement():将播放实例从节点中取出
9:flvPlayer.destroy():销毁播放实例
flv.js简单使用
1:html
<video id="my-player" preload="auto" muted autoplay type="rtmp/flv">
<source src="">
</video>
2:js
(1):在index.xml文件中引入flv.js
<script src="./flv.js/flv.min.js"></script>
(2):使用flv.js实现播放flv格式流,获取video节点
videoElement = document.getElementById('my-player');
if (flvjs.isSupported()) {
flvPlayer = flvjs.createPlayer({
type: 'flv', //媒体类型
url: 'XXXX' //flv格式媒体URL
isLive: true, //数据源是否为直播流
hasAudio: false, //数据源是否包含有音频
hasVideo: true, //数据源是否包含有视频
enableStashBuffer: false //是否启用缓存区
},{
enableWorker: false, //不启用分离线程
enableStashBuffer: false, //关闭IO隐藏缓冲区
autoCleanupSourceBuffer: true //自动清除缓存
});
flvPlayer.attachMediaElement(videoElement); //将播放实例注册到节点
flvPlayer.load(); //加载数据流
flvPlayer.play(); //播放数据流
}
(3):关闭视频流
flvPlayer.pause(); //暂停播放数据流
flvPlayer.unload(); //取消数据流加载
flvPlayer.detachMediaElement(); //将播放实例从节点中取出
flvPlayer.destroy(); //销毁播放实例
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- PHP to read data from TXT file
- Industrial control network intrusion detection based on automatic optimization of hyperparameters
- 交返是做日内交易的必要条件
- IO流基础
- MLX90640 红外热成像仪测温传感器模块开发笔记(十) 成果展示-红眼睛相机
- Transient Stability Distributed Control of Power System with External Energy Storage
- How to use the go language standard library fmt package
- 管理基础知识16
- ES6对箭头函数的理解
- Pytorch seq2seq 模型架构实现英译法任务
猜你喜欢

MLX90640 红外热成像仪测温传感器模块开发笔记(十) 成果展示-红眼睛相机
![[Solution] Emqx startup under win10 reports Unable to load emulator DLL, node.db_role = EMQX_NODE__DB_ROLE = core](/img/c8/d7183330ee86c2cae9c21fecb2805b.png)
[Solution] Emqx startup under win10 reports Unable to load emulator DLL, node.db_role = EMQX_NODE__DB_ROLE = core

测试用例:四步测试设计法

go笔记之——goroutine

期货开户手续费加一分是主流

什么是低代码(Low-Code)?低代码适用于哪些场景?

Knowing the inorder traversal of the array and the preorder traversal of the array, return the postorder history array

Business test how to avoid missing?

Trie详解

Quick solution for infix to suffix and prefix expressions
随机推荐
第 45 届ICPC亚洲区域赛(上海)G-Fibonacci
管理基础知识12
基于相关性变量筛选偏最小二乘回归的多维相关时间序列建模方法
C language character and string function summary (2)
这 4 款电脑记事本软件,得试试
字符串分割函数strtok练习
抖音数据接口API-获取用户主页信息-监控直播开启
JS中对作用域链的理解(查找变量)
具有通信时延的多自主体系统时变参考输入的平均一致性跟踪
构造方法,this关键字,方法的重载,局部变量与成员变量
DOA从一维阵列传感说起
Arduino Basic Syntax
Unknown CMake command "add_action_files"
08-SDRAM: Summary
Redis 相关问题
Cyber-Physical System State Estimation and Sensor Attack Detection
技术分享 | 接口测试中如何使用Json 来进行数据交互 ?
路由策略
JSP out.write()方法具有什么功能呢?
How does JSP use the page command to make the JSP file support Chinese encoding?