从 0 打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
32580 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
WebRTC 1对1通话 (23讲)
从 0 打造音视频直播系统
15
15
1.0x
00:00/00:00
登录|注册

36 | 如何使用 flv.js 播放 FLV 多媒体文件呢?

思考时间
推流工具的选择
流媒体服务器的搭建
如何使用 flv.js
flv.js 播放器的基本工作原理
创建 FLV Player 对象
构建出 flv.min.js 文件
使用 gulp 工具将 flv.js 进行打包、压缩
下载 flv.js 的依赖包
通过 NPM 命令获取 flv.js 源码
下载 flv.js 源码
支持的属性:autoplay, src, srcObject
用于在浏览器中播放音视频流
HTML5 新支持的元素
浏览器的 Media Source Extensions
MP4 Remux 模块
FLV Demux 模块
IO Controller 模块
Fetch Stream Loader 模块
flv.js 的出现解决了问题
Flash 直播方案遇到挑战
各大浏览器厂商默认都是禁止使用Flash插件的
浏览器在不借助 Flash 的情况下也可以播放 FLV 文件
通过 HTML5 的<video>标签进行播放
解析FLV文件,转成 BMFF片段
flv.js 是由 bilibili 公司开源的项目
参考 <video> 标签属性
小结
使用 flv.js
<video> 标签
flv.js 基本工作原理
如何使用 flv.js 播放 FLV 多媒体文件

该思维导图由 AI 生成,仅供参考

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 片段播放出来。具体的处理过程如下图所示:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

flv.js 是一款由 bilibili 公司开源的项目,旨在解决浏览器播放 FLV 文件的问题。该项目通过将 FLV 文件转换成 MP4 格式,使得浏览器可以在不依赖 Flash 的情况下播放 FLV 文件,填补了浏览器播放 FLV 文件的空白,为用户提供了更好的体验。文章介绍了 flv.js 的基本工作原理,包括从云端获取 FLV 数据、数据加载和解封装等步骤。此外,还介绍了 `<video>` 标签的属性和使用 flv.js 的步骤,包括下载源码、构建和使用示例。flv.js 的使用相对简单,只需按照文中的步骤即可快速创建利用 flv.js 播放 FLV 文件的 Demo。文章还提到了对 flv.js 的测试需要使用流媒体服务器,以及搭建流媒体服务器和推流工具的相关内容。总体来说,flv.js 是一个优秀的 Web 开源播放器,代码写得漂亮且可读性高,但文档相对匮乏,因此在开发过程中遇到问题建议直接查看源码。通过本文的介绍,读者可以了解到如何使用 flv.js 播放 FLV 文件,以及构建自己的直播系统所需的相关知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • 神经旷野舞者
    感觉软件世界就是数据,抽象和算法,一马平川,其他各种障碍只有各种公司或者软件提供的糟糕接口,以及缺少人去填补这些接口衔接。

    作者回复: 在公司里大部分的 BUG 都是与业务和研发工程师的水平有关的

    2019-12-18
    2
    3
  • Random
    老师你好,我现在渲染视频的方案,是把原生端收到的视频流用YUV的格式渲染在canvas上的,性能不是特别好,有什么好的方式直接把视频流用video标签播放吗?一个electron 应用

    作者回复: webGL

    2020-06-15
    2
    2
  • QD账号
    老师,请问一下在浏览器直接播放rtmp流,需要开启flash,现在想到有一个方式是拉hls,或者还有什么方式可以解决这个问题吗?

    作者回复: http-flv或都hls,后面随着各大CDN厂商都支持 webrtc之后,大多数人都会使用webrtc,不过现在商品还不成熟

    2020-04-17
  • 为城
    老师,WebRTC如何推流至直播服务器没有篇幅介绍,能提供多一些这方面内容的介绍吗?

    作者回复: 这方面没有介绍,你可以在PC端的 WebRTC客户端增加 RTMP 推流功能,直接向 CDN 推流就可以了。或者在服务端将 RTP 流转 RTMP 流进行推流

    2019-10-07
  • Geek_0b5414
    老师,请问一下有没有支持H265格式的流氏播放
    2022-04-28
    1
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部