播放flv后缀视频文件(flv是什么格式的怎么打开)
admin
2023-08-31 17:45:30
0

FLV(Flash Video)流媒体格式,是随着 Flash MX 的推出发展而来的视频格式。其文件体积小,一般1分钟只占1MB,是普通视频文件大小的1/3,且视频质量良好,广受视频网站欢迎。然而,FLV 格式往往利用 Flash Player 进行解码播放,但如今,主流浏览器都已经放弃支持 Flash Playe。同时,HTML5 原生的 video 标签并不支持 FLV 格式。如何在 HTML5 时代,还能发挥 FLV 视频格式的优势呢?作为一个蓬勃发展中的视频网站,bilibili 开源了 FLV 视频的 HTML5 播放器,使得 HTML5 与 FLV 得以结合。

FLV视频播放器

简介

Flv.js,是 bilibili(哔哩哔哩)在 Github 上开源的 HTML5 的 FLV 视频播放器,项目位于https://github.com/bilibili/flv.js,目前版本为 v1.5.0。Flv.js 支持 H.264 + AAC/MP3 编码的 FLV 视频,支持视频分片,支持低延迟的 HTTP/WebSocket 协议的 FLV 格式的直播视频流,兼容 Chrome、Firefox、Safari 10、IE 11 和 Edge,具有极低的消耗,支持浏览器硬件加速。原理上,Flv.js 把 FLV 视频流转码为 ISO BMFF(切片的MP4),然后把切片放到 HTML 的 video 元素中进行播放。

flv.js项目

安装

Flv.js 可以使用 NPM 直接安装,加入到前端项目依赖中:

npm install --save flv.js

也可以使用国内镜像的 CNPM 进行安装:

cnpm install --save flv.js

还可以在本地进行构建:

npm install # 安装开发依赖npm install -g gulp # 安装构建工具 gulpgulp release # 构建发布

Flv.js 使用 ECMAScript 6 编写,使用 Babel Compiler 转译到 ECMAScript5,并使用 Browserify 进行打包。

示例

Flv.js 的架构设计如下:

Flv.js架构设计

核心部分为 FlvDemuxer 和 MP4Remuxer,分别对 FLV 视频进行分离,和封装为 MP4 视频。内部通过多个Controller控制器,发送指令,对数据流的操作进行控制。

Flv.js 使用简单,通过接口 createPlayer 实例化播放器,配置对应的视频源,然后,挂载到 DOM 容器上,并调用 load() 进行加载,调用 play() 进行播放:

注意到,flv.js 提供了 isSupported 接口,可以很方便地判断 Flv.js 是否支持当前的浏览器环境。Flv.js提供了一个测试用的 demo 页面,可以进行视频播放的测试:

Flv.js demo

Flv.js 主要提供了3个函数:

  • flvjs.createPlayer():接受配置,实例化播放器
  • flvjs.isSupported():是否支持当前浏览器
  • flvjs.getFeatureList():支持的特性的列表

还有3个类:

  • flvjs.FlvPlayer:FLV 播放器
  • flvjs.NativePlayer:原生 HTML5 播放器,可以用户单 MP4 文件的播放
  • flvjs.LoggingControl:日志控制

以及3个枚举:

  • flvjs.Events:播放器事件
  • flvjs.ErrorTypes:错误类型
  • flvjs.ErrorDetails:错误具体信息

使用时的主要接口是 createPlayer,它的函数签名如下:

function createPlayer(mediaDataSource: MediaDataSource, config?: Config): Player;

其中 mediaDataSource 进行视频流配置,常用的参数包括:

  • type:视频类型,flv 或 mp4
  • isLive:是否为直播视频流
  • cors:获取视频数据时是否启用 CORS
  • url:视频流地址
  • segments:视频切片配置

而 config 进行 flv.js 播放器内部配置,包括worker、缓存、加载策略等的配置。

对于体积较大的视频,往往在服务器中会进行切片处理。Flv.js 支持对于切片视频的加载播放,通过提供 segments 配置。segments 是一个切片配置的列表,每个配置包括了视频长度、文件大小和视频地址:

"segments": [ { "duration": 1234, // in milliseconds "filesize": 5678, // in bytes "url": "http://cdn.flvplayback.com/segments-1.flv" }, { "duration": 2345, "filesize": 6789, "url": "http://cdn.flvplayback.com/segments-2.flv" }, { "duration": 4567, "filesize": 7890, "url": "http://cdn.flvplayback.com/segments-3.flv" } // more segments... ]

Flv.js 支持直播视频流的播放,通过 isLive 配置实现,支持 HTTP 协议的视频流:

{ // HTTP FLV "type": "flv", "isLive": true, "url": "http://127.0.0.1:8080/live/livestream.flv"}

以及 WebSocket 协议的视频流:

{ // FLV over WebSocket "type": "flv", "isLive": true, "url": "ws://127.0.0.1:9090/live/livestream.flv"}

flv.js项目

总结

Flv.js 作为一个 HTML5 视频播放器,实现了通过原生 Javascript,在 HTML5 页面上进行 FLV 视频的播放,充分利用了 FLV 格式优秀的体积和质量,提供了更为优秀的播放体验,降低了视频服务器和负荷,同时支持切片、直播、懒加载等进阶特性,功能丰富。Flv.js 目前已被广泛应用到视频播放网站中,使用者众多,同时代码质量高,值得使用、研究和学习。

HTML5 + FLV

以上就是爱惜日网»flv是什么格式的怎么打开(播放flv后缀视频文件)的相关内容了,更多精彩请关注作者:爱惜日号SEO专员

相关内容

热门资讯

雨水先歇2天!下周、下下周还有... 过去2天,中东部出现了大范围降雨,其中昨天,北京、河北、山西共24个站点降水量打破5月单日纪录,河北...
美国老板吐槽3000美元商品关... 高额关税下,美国的小企业主受到严重冲击。来自纽约的埃斯纳尔晒出了他的高额关税账单,账单显示,关税的费...
你的好心“助考”,可能正在触碰... 每年考试季,我们总会听到一些令人痛心的案件——有些家长和考生因为一时糊涂,试图通过"特殊渠道"获取帮...
男子与女友吵架,竟从16楼扔下... 据四川成都市公安局高新技术产业开发区分局消息近日成都高新区某小区发生了一起高空抛物事件一男子情绪失控...
中美经贸高层会谈在瑞士日内瓦开... 当地时间10日上午,中美经贸高层会谈在瑞士日内瓦开始举行。中共中央政治局委员、国务院副总理何立峰作为...
重庆大学通报“本科生发14篇S... 近日,网友对重庆大学2021级本科学生刘某乔发表论文等情况提出质疑。今天(5月10日),重庆大学发布...
乘客被地铁厕所门砸伤,南京地铁... “在鼓楼站厕所洗手的时候,后面人上完厕所出来开门,突然整个门掉了,直接砸在我的身上,当时脚后跟直冒血...
解放军仪仗分队参加白俄罗斯纪念... 5月9日,在白俄罗斯首都明斯克,中国人民解放军仪仗司礼大队抽组仪仗分队参加纪念苏联伟大卫国战争胜利8...
领证不用户口本,还需哪些材料?... 新修订的《婚姻登记条例》5月10日起开始实施,其中婚姻登记实现“全国通办”、结婚登记不再需要提供户口...
周末中东部地区晴多雨少 北方率... 预计本周末(5月10日至11日),我国大部地区降水稀少,各地将陆续放晴。其中今天,华南一带的降雨仍将...
国家统计局:4月份居民消费价格... 2025年4月份,全国居民消费价格同比下降0.1%。其中,城市持平,农村下降0.3%;食品价格下降0...
巴基斯坦对印度发起网络攻击 致... 5月10日,据巴基斯坦军方消息人士称,在该国发起的“铜墙铁壁”军事行动中,巴对印度发动网络攻击,致使...
巴基斯坦关闭全部领空 当地时间10日,总台记者从巴基斯坦安全人员处获悉,巴基斯坦关闭全部领空。
巴基斯坦称对印度发起军事行动 当地时间10日,记者从巴基斯坦军方获悉,巴基斯坦正式启动军事行动,以回应印度方面持续不断的挑衅行为。...
告别户口本!今天起婚姻登记实现... 新修订的《婚姻登记条例》今天(10日)起施行,一个重要的变化是实行婚姻登记“全国通办”,进一步提高婚...
韩国前国务总理韩德洙加入国民力... 韩德洙(资料图)韩国无党派总统候选人、前国务总理韩德洙的竞选团队10日凌晨发布公告称,韩德洙10日凌...
玉渊谭天丨中方为何此时同意与美... 5月7日上午,外交部发布消息称,5月9日至12日,中方将访问瑞士,其间将与美方举行会谈。消息一发布,...
贵的汽油会更“耐烧”吗?加油时... 每次开车到加油站,面对92号和95号汽油每升近0.5元的差价,您会不会有这样的纠结:贵的油是不是更“...
匈牙利外长称匈方已驱逐两名乌克... 西雅尔多(资料图)匈牙利外长西雅尔多5月9日在社交媒体表示,匈牙利已驱逐两名乌克兰外交官,理由是他们...
雄姿英发!中国仪仗队通过莫斯科... 应俄罗斯国防部邀请,当地时间5月9日,中国人民解放军仪仗司礼大队仪仗分队119名官兵在莫斯科参加纪念...