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播放器-手机能播放m3u8格式的播放器使用方法-第1张图片FLV(Flash Video)流媒体格式是因为Flash MX的发布而研发的视频文件格式。它的图片大小较小,一般每分仅有1MB,是一般视频文件格式尺寸的1/3,视頻品质也非常好,因而遭受视频平台的普遍热烈欢迎。殊不知,FLV文件格式常常应用Flash Player开展编解码和播放视频,但现如今,主流浏览器早已舍弃适用Flash Playe。与此同时,HTML5的原生态视频播放地址不兼容FLV文件格式。怎样在HTML5时期充分运用FLV视频文件格式的优点?做为一个迅猛发展的视频平台,bilbil对外开放了FLV视頻的HTML5播放软件,使HTML5可以与FLV融合。

FLV视频播放软件。

介绍

Flv.js,是 bilibili(bilbil)在 GitHub 上开源系统的 HTML5 的 FLV 视频播放软件,新项目坐落于https://github.com/bilibili/flv.js,现阶段版本号为 v1.5.0。Flv.js 适用 H.264 AAC/MP3 编号的 FLV 视頻,适用视頻分块,适用低延时的 HTTP/WebSocket 协议书的 FLV 文件格式的直播间rtmp协议,兼容 Chrome.Firefox.Safari 10.IE 11 和 Edge,具备较低的耗费,适用电脑浏览器硬件加速器。基本原理上,Flv.js 把 FLV rtmp协议转换格式为 ISO BMFF(切成片的MP4),随后把切成片放进 HTML 的 video 原素中开展播放视频。手机flv播放器-手机能播放m3u8格式的播放器使用方法-第2张图片Flv.js是bilbil在Github上开启的HTML5 FLV视频播放软件。新项目坐落于https://github.com/bilibili/flv.js,,现阶段版本号为v 1 . 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的视頻原素中播放视频。

flv.js新项目

固定不动

能够应用NPM立即安裝Flv.js,并将其加上到前端项目依靠项中:

npm install --save flv.js

还可以应用国内镜像系统CNPM开展安裝:

cnpm install --save flv.js

它还可以在当地搭建:

npm install # 安裝开发设计依靠npm install -g gulp # 安裝搭建专用工具 gulpgulp release # 搭建公布

Flv.js用ECMAScript 6撰写,由Babelc语言编译器译成ECMAScript5,由Browserify装包。

事例

Flv.js 的架构模式如下所示:手机flv播放器-手机能播放m3u8格式的播放器使用方法-第3张图片Flv.js的架构模式如下所示:

Flv.js架构模式。

关键一部分是FlvDemuxer和MP4Remuxer,各自将FLV视頻开展分离出来,装包成MP4视頻。根据好几个內部控制板,推送命令来操纵数据流分析的实际操作。

Flv.js应用简易,根据插口createPlayer创建对象播放软件,配备相对应的视频源,随后初始化到DOM器皿上,启用load()载入,play()播放视频:

if (flvjs.isSupported()) { var videoElement = document.getElementById('videoElement'); var flvPlayer = 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给予了一个检测用的 demo 网页页面,能够开展视频在线观看的检测:手机flv播放器-手机能播放m3u8格式的播放器使用方法-第4张图片一定要注意,Flv.js给予了一个isSupported插口,能够轻易地明确flv.js是不是适用当今的电脑浏览器自然环境。Flv.js给予了一个用以软件测试的演试网页页面,可用以检测视频在线观看:

Flv.js演试

Flv.js关键给予三个作用:

flvjs.createPlayer():接纳配备,创建对象播放软件flvjs.isSupported():是不是适用当今电脑浏览器flvjs.getFeatureList():适用的特点的目录

也有3类:

flvjs.FlvPlayer:FLV 播放软件flvjs.NativePlayer:原生态 HTML5 播放软件,能够客户单 MP4 文档的播放视频flvjs.LoggingControl:日志操纵

和三个枚举类型:

flvjs.Events:播放软件事情flvjs.ErrorTypes:不正确种类flvjs.ErrorDetails:不正确实际信息内容

应用时的主界面是createPlayer,其涵数签字如下所示:

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

MediaDataSource用以rtmp协议配备,常见主要参数包含:

type:视频类型,flv 或 mp4isLive:是不是为直播间rtmp协议cors:获得视頻数据信息时是不是开启 CORSurl:rtmp协议详细地址segments:视頻切成片配备

Config实行flv.js播放软件的內部配备,包含工作中器.缓存文件和载入对策的配备。

针对大中型视頻,切成片一般在网络服务器中进行。Flv.js适用切成片视頻的读取和播放视频,根据给予精彩片段开展配备。段是切成片配备的目录,每一个配备包含视頻长短.图片大小和视频地址:

"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适用直播间rtmp协议,根据isLive配备完成,适用HTTP协议书的rtmp协议:

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

及其WebSocket协议书的rtmp协议:

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

手机flv播放器-手机能播放m3u8格式的播放器使用方法-第5张图片

flv.js新项目

引言

做为一款HTML5视频播放软件,Flv.js根据原生态Javascript在HTML5网页页面上播放视频Flv视频,灵活运用了FLV文件格式出色的声音和品质,给予了非常优异的播放视频感受,减少了视频服务器和负荷,适用切成片,直播间,懒加载等高級作用,功能丰富。现阶段,Flv.js早已普遍使用于视頻广播节目网址,客户多,编码品质高,非常值得应用,学习培训和参考。

评论(0条)

刀客源码 游客评论