flv.js是B站(bilibili)开源的纯JavaScript实现的HTML5 FLV播放器,无需依赖Flash插件,通过Media Source Extensions技术将FLV流转换为碎片化MP4格式,注入HTML5 `
核心功能
1. 格式与编码支持:兼容FLV容器,支持H.264视频编码与AAC、MP3音频编码的本地或网络文件播放。
2. 播放能力:支持多段分段视频播放;支持HTTP协议的低延迟FLV直播流,以及WebSocket协议的FLV直播流。
3. 兼容性:适配Chrome、FireFox、Safari 10、IE11及Edge等主流浏览器。
4. 性能优势:运行开销极低,依托浏览器硬件加速技术提升播放效率。
使用与安装
1. 依赖要求:需浏览器支持[Media Source Extensions](https://w3c.github.io/mediasource/) API。
2. 安装方式:通过npm命令安装包:`npm install save flv.js`。
3. 构建命令:
安装依赖:`npm ci`(国内推荐cnpm镜像加速);
生成调试版本:`npm run build:debug`(输出至`/dist`目录);
生成压缩发布版本:`npm run build`。
4. 基础使用:引入`flv.min.js`后,通过`flvjs.isSupported()`检测浏览器兼容性,创建播放器实例并关联`
限制说明
1. IE11/Edge浏览器暂不支持MP3音频编码播放。
2. HTTP FLV直播流并非兼容所有浏览器,需参考[livestream.md](https://github.com/bilibili/flv.js/blob/master/docs/livestream.md)文档。
扩展功能
1. 多段播放:通过向`MediaDataSource`提供播放列表,实现多分段FLV视频的连续播放,详情见[multipart.md](https://github.com/bilibili/flv.js/blob/master/docs/multipart.md)。
2. 直播配置:FLV直播流的播放需参考[livestream.md](https://github.com/bilibili/flv.js/blob/master/docs/livestream.md)文档调整参数。
3. API与配置:播放器的创建、控制(如加载、播放、暂停)等接口与配置项,详见[api.md](https://github.com/bilibili/flv.js/blob/master/docs/api.md)。
项目状态
版本更新:最新版本为2021年9月发布的`v1.6.2`,累计15个版本。
社区数据:仓库获得23.2k星标、3.4k分支,有16位贡献者,被7.2k个项目依赖使用。
维护提示:项目当前更新频率极低,直播场景建议优先选择更活跃的[mpegts.js](https://github.com/xqq/mpegts.js)。
该项目旨在为Web端提供无Flash的FLV播放解决方案,适合需要嵌入FLV视频或直播的Web应用场景。
