播放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专员

相关内容

热门资讯

巴勒斯坦官员:新一轮加沙停火谈... 加沙地带(资料图)总台记者当地时间12日获悉,一名巴勒斯坦高级官员表示,正在卡塔尔首都多哈进行的新一...
微信又有新功能!网友:好实用 当代人看公众号有自己的“看法”。比如,有人站着看,坐着看,躺着看...比如,有人带薪蹲坑看,有人通勤...
海上版“速度与激情”?9名涉偷... “大飞”深夜海上“狂飙”,企图运送偷渡人员出境,最终被拦停岸边。7月3日,防城港边境管理支队联合防城...
外卖补贴大战周末重启:集中在咖... “休整”一周之后,外卖补贴大战在这个周末再度开启,淘宝闪购和美团外卖两大话题词再度冲上微博热搜。7月...
高温天气谨防热射病 若不慎“中... 在副热带高压的掌控下,未来一周,我国北方大部暑热升级,黄淮、华北等地将出现持续性高温天气。总体来说,...
一芯一屏二十年,海信造出中国电... 一芯一屏二十年,海信造出中国电视的“技术闭环”这一台是1970年山东第一台14英寸黑白电视机,而这一...
林诗栋/蒯曼夺得WTT美国大满... 北京时间7月12日,WTT世界乒联美国大满贯在拉斯维加斯进行混双决赛争夺。中国队组合林诗栋/蒯曼以3...
中国驻菲律宾使馆发言人就美国驻... 问:7月11日,美国驻菲律宾大使罗玫凯在菲智库Stratbase举行的论坛上发言,妄称2016年“南...
6.5吨太空快递已接单 天舟九... 今天(12日)早上8时开始,在海南文昌航天发射场,天舟九号货运飞船和长征七号遥十运载火箭组合体开始进...
6.5吨太空快递已接单 天舟九... 今天(12日)早上8时开始,在海南文昌航天发射场,天舟九号货运飞船和长征七号遥十运载火箭组合体开始进...
3比1击败加拿大队,中国女排提... 北京时间7月12日上午,中国女排在2025世界女排联赛美国阿灵顿站第二轮比赛中以3比1击败加拿大女排...
甘肃警方通报“青甘大环线三车1... 甘肃阿克塞县公安局7月12日发布警情通报:
“外卖大战”为何卷土重来,即时... 订单不断从外卖接单机中吐出,一米、两米、五米、十米......在一家接受外卖订单的餐饮店里,店员看着...
美国防部承认美驻卡塔尔空军基地... 当地时间11日,美国国防部发言人承认美国驻卡塔尔空军基地在6月的袭击中被伊朗弹道导弹击中。当地时间6...
CE、RoHS……电子产品这些... 近日,无3C标识充电宝禁上国内航班新规引起消费者对产品认证标识的关注。消费者在查看有无3C认证标识时...
我国世界遗产再+1 跟随镜头实... 北京时间7月11日晚上,正在法国巴黎召开的联合国教科文组织第47届世界遗产大会通过决议,将我国申报的...
相互征收报复性关税 美加就关税... 当地时间10日,美国总统特朗普宣布,自8月1日起,将对自加拿大进口的商品征收35%的关税。加拿大总理...
印度航空空难初步调查报告公布:... 印度航空事故调查局12日披露了此前印度航空波音787-8型客机坠毁事故的初步调查结果。报告显示,飞机...
期待!杨瀚森NBA首秀在即 将... 杨瀚森NBA首秀来了!北京时间7月12日11时拉斯维加斯的2025NBA夏季联赛中国球员杨瀚森将代表...
WTT男双半决赛 王楚钦/梁靖... 7月12日,WTT美国大满贯男双半决赛,王楚钦/梁靖昆0比3不敌法国组合F·勒布伦/A·勒布伦,无缘...