flv.js 是由 bilibili 公司开源的项目。它可以解析 FLV 文件,从中取出音视频数据并转成 BMFF 片段(一种 MP4 格式),然后交给 HTML5 的<video>标签进行播放。通过这种方式,使得浏览器在不借助 Flash 的情况下也可以播放 FLV 文件了。
目前,各大浏览器厂商默认都是禁止使用 Flash 插件的。之前常见的 Flash 直播方案,到现在已经遇到极大的挑战。因为它需要用户在浏览器上主动开启 Flash 选项之后才可以正常使用,这种用户体验是非常糟糕的,而 flv.js 的出现则彻底解决了这个问题。
flv.js 是由 JavaScript 语言开发的,该播放器的最大优势是,即使不安装 Flash 插件也可以在浏览器上播放 FLV 文件。虽说 Adobe 公司早已不再为 Flash 提供支持了,但 FLV 多媒体文件格式不会就此而消亡。因此,在没有 Flash 的时代里,能实现在浏览器上播放 FLV 文件就是 flv.js 项目的最大意义。
flv.js 基本工作原理
flv.js 的工作原理非常简单,它首先将 FLV 文件转成 ISO BMFF(MP4 片段)片段,然后通过浏览器的 Media Source Extensions 将 MP4 片段播放出来。具体的处理过程如下图所示: