首页 > 常见问答

flv是什么格式的怎么打开(播放flv后缀视频文件)

flv(flashvideo)流媒体格式,是随着flashmx的推出发展而来的视频格式。其文件体积小,一般1分钟只占1mb,是普通视频文件大小的1/3,且视频质量良好,广受视频网站欢迎。然而,flv格式往往利用flashplayer进行解码播放,但如今,主流浏览器都已经放弃支持flashplaye。同时,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、safari10、ie11和edge,具有极低的消耗,支持浏览器硬件加速。原理上,flv.js把flv视频流转码为isobmff(切片的mp4),然后把切片放到html的video元素中进行播放。

flv是什么格式的怎么打开(播放flv后缀视频文件)

flv.js项目

安装

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

npminstall--saveflv.js

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

cnpminstall--saveflv.js

还可以在本地进行构建:

npminstall#安装开发依赖npminstall-ggulp#安装构建工具gulpgulprelease#构建发布

flv.js使用ecmascript6编写,使用babelcompiler转译到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.jsdemo

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,它的函数签名如下:

functioncreateplayer(mediadatasource:mediadatasource,config?:config):player;

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

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

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

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

\"segments\":[{\"duration\":1234,//inmilliseconds\"filesize\":5678,//inbytes\"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\"}//moresegments...]

flv.js支持直播视频流的播放,通过islive配置实现,支持http协议的视频流:

{//httpflv\"type\":\"flv\",\"islive\":true,\"url\":\"http://127.0.0.1:8080/live/livestream.flv\"}

以及websocket协议的视频流:

{//flvoverwebsocket\"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专员

原文标题:flv是什么格式的怎么打开(播放flv后缀视频文件),如若转载,请注明出处:https://www.hb-hcdz.com/wenda/769.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「恒驰号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。