flv视频播放器(Flv.js(flv.js)

来源:网络 作者:格式无爱  更新 :2023-05-18 07:41

flv视频播放器(Flv.js(flv.js)

flv.js

Flv视频播放器(flv视频的flv.js-HTML5播放器)

FLV(Flash Video)流媒体格式是随着Flash MX的引入而开发的视频格式。它的文件大小很小,通常每分钟只有1MB,是普通视频文件大小的1/3,视频质量好,因此受到视频网站的广泛欢迎。然而,FLV格式经常使用Flash Player解码和播放,但如今,主流浏览器已经放弃支持Flash Playe。同时,HTML5的原生视频标签不支持FLV格式。在HTML5时代,我们如何利用FLV视频格式?作为一个蓬勃发展的视频网站,哔哩哔哩开放了FLV视频的HTML5播放器,这使得HTML5可以与FLV结合。

FLV视频播放器

简介

Flv.js是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直接安装,并添加到前端项目依赖项中:

npminstall--saveflv.js

您也可以使用家用镜子的CNPM进行安装:

cnpminstall--saveflv.js

您也可以在本地构建:

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

Flv.js用ECMAScript 6编写,Babel编译器翻译成ECMAScript5,Browserify打包。

例子

Flv.js的架构设计如下:

Flv.js架构设计

核心部分是FlvDemuxer和MP4Remuxer,将FLV视频分离出来,打包成MP4视频。通过多个内部控制器,发送指令来控制数据流的运行。

Flv.js很好用。通过接口createPlayer实例化播放器,配置相应的视频源,然后挂载到DOM容器上,调用load()加载,调用play()播放:

if(flvjs.isSupported()){varvideoElement=document.getElementById('videoElement');varflvPlayer=flvjs.createPlayer({type:'flv',url:'http://example.com/flv/video.flv'});flvPlayer.attachMediaElement(videoElement);flvPlayer.load();flvPlayer.play();}

注意Flv.js提供了一个isSupported接口,可以很容易的判断flv.js是否支持当前的浏览器环境。Flv.js提供了测试用的演示页面,可以测试视频播放:

Flv.js演示

Flv.js主要提供3个功能:

Flvjs.createPlayer():接受配置并实例化播放器。

Flvjs.isSupported():支持当前浏览器吗?

Flvjs.getFeatureList():支持的功能列表

还有三个类别:

Flvjs。FlvPlayer:FLV播放器

Flvjs。NativePlayer:一个原生HTML5播放器,可以用来播放单个MP4文件。

Flvjs。日志控制:日志控制

和三个枚举:

Flvjs。事件:玩家事件

Flvjs。错误类型:错误类型

Flvjs。错误细节:错误细节

使用的主界面是createPlayer,其函数签名如下:

functioncreatePlayer(mediaDataSource:MediaDataSource,config?:Config):Player;

mediaDataSource配置视频流,常用的参数包括:

类型:视频类型,flv或mp4。

是:是视频直播流吗?

Cors:采集视频数据时是否启用了CORS?

Url:视频流地址

分段:视频切片配置

Config执行flv.js player的内部配置,包括worker、cache和加载策略的配置。

对于大视频,往往是在服务器切片。Flv.js支持切片视频的加载和播放,通过提供片段来配置。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

- END -

飞蚂蚁咬人有毒吗(飞蚂蚁又叫白蚁,本身没有毒性,被咬后不会中毒)

飞蚂蚁咬人有毒吗(飞蚂蚁又叫白蚁,本身没有毒性,被咬后不会中毒)

飞蚂蚁咬人有毒吗,没毒。飞蚂蚁又叫白蚁,本身没有毒性,被咬后不会中毒。但白蚁咬伤后会释放出酸性物质,可以引起局部疼...

洋茄和秋葵的区别(洋茄和秋葵没有区别,肉质柔嫩、润滑的嫩荚供食)

洋茄和秋葵的区别(洋茄和秋葵没有区别,肉质柔嫩、润滑的嫩荚供食)

洋茄和秋葵的区别,没有区别。洋茄,又叫羊角黑茄,也叫秋葵或黄秋葵,锦葵科秋葵属,素有“蔬菜王”之称。原产地印度,广泛栽...

16084a是多少斤的人穿(160/84A表示适合身高)

16084a是多少斤的人穿(160/84A表示适合身高)

16084a是多少斤的人穿,100斤。16084A表示适合身高160厘米,胸围84厘米的人穿着,体重大概50千克。160是服装的号,84是服装的型,A是体型的代...

低脂油有哪些(低脂油有花生油、菜籽油、橄榄油、玉米油等)

低脂油有哪些(低脂油有花生油、菜籽油、橄榄油、玉米油等)

低脂油有哪些,低脂油有花生油、菜籽油、橄榄油、玉米油等。花生油:花生油的营养构成比较易于人体的消化吸收,而且花生...

鞋底脱胶了用什么粘(使用鞋子专用树脂胶,也可以用502)

鞋底脱胶了用什么粘(使用鞋子专用树脂胶,也可以用502)

鞋底脱胶了用什么粘,使用鞋子专用树脂胶,也可以用502。但用传统502粘合,效果也不是太理想,因为就算粘结实了,鞋子开胶那...

559是什么意思(559的意思是呜呜救命)

559是什么意思(559的意思是呜呜救命)

559的意思是呜呜救命。559属于网路用语,5是呜的谐音,9是救的谐音,55表示的是呜呜,意思是哭泣的拟声词,9指的是救命,连起...

水费异常超太多又查不到原因(水费异常超太多怎么办打什么电话)

水费异常超太多又查不到原因(水费异常超太多怎么办打什么电话)

水费异常超太多的话可以检查下是什么情况,有可能是水表漏了,也有可能是有人偷你家的水,水表被换了等等情况。那么,水费...

松毛虫变成蝴蝶还是蛾(松毛虫蠕动的状态像什么)

松毛虫变成蝴蝶还是蛾(松毛虫蠕动的状态像什么)

松毛虫是很多人讨厌的昆虫类,它是会进行繁殖,和蚕类似,会经过多次蜕皮后变成蛹,变成蛹以后再华晨虫,属于小白蛾,并不是大...

莺歌对燕舞是哪两种鸟(“莺歌对燕舞”是指黄莺和燕子这两种鸟)

莺歌对燕舞是哪两种鸟(“莺歌对燕舞”是指黄莺和燕子这两种鸟)

“莺歌对燕舞”是指黄莺和燕子这两种鸟。“莺歌对燕舞”来自部编版小学一年级语文下册的《识字(二)6 古对今》一课...

欧洲一线二线_欧美一线二线三线四线(欧美一线二线三线的区别是什么)

欧洲一线二线_欧美一线二线三线四线(欧美一线二线三线的区别是什么)

欧美一线二线三线有什么不一样是什么东京是日本的首都,是大多数国际城市的首都,也是世界上人口最多的城市之一。东京...

查看更多生活百科