Flv.js 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Flv.js 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Flv.js 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Flv.js 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Flv.js 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 局长
适用人群 未知
收录时间 2016-10-27

软件简介

Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。

该项目依托于 Media Source Extensions,受到 hls.js 的启发。

概览:

一个实现了在 HTML5 视频中播放 FLV 格式视频的 JavaScript 库。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF(MP4 碎片)片段,然后通过 Media Source Extensions 将 MP4 片段喂进浏览器。

flv.js 是使用 ECMAScript 6 编写的,然后通过 Babel Compiler 编译成 ECMAScript 5,使用 Browserify 打包。

功能:

  • FLV 容器,具有 H.264 + AAC 编解码器播放功能

  • 多部分分段视频播放

  • HTTP FLV 低延迟实时流播放

  • FLV 通过 WebSocket 实时流播放

  • 兼容 Chrome, FireFox, Safari 10, IE11 和 Edge

  • 十分低开销,并且通过你的浏览器进行硬件加速

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (21)

加载中
打分: 力荐
不知道为什么 一个浏览器 只能播放六个视频 。求教大神
2018/01/23 13:53
回复
举报
你好,请问解决了吗?只能放6个,说是谷歌的限制
2020/06/13 11:52
回复
举报
只能播放6个是http1.1的限制,nginx配置http2.0就好了
2020/11/05 19:12
回复
举报
看有些评论还是不太清楚 flv.js 的作用。flv.js 是在不使用 flash 只用纯 js 的情况下播放 bilibili 现存的大量 flv 视频的一个库,直接帮 bilibili 省去了可怕的视频转码工程一秒变身 html5 播放器还保证不会失真。但据说作者的工资,嘛。。。于是。。。嘛。。。
2017/10/25 16:19
回复
举报
html5播放器是很多,但多数是国外人开发的。我其实比较支持国产
2017/01/10 08:34
回复
举报
为什么 B 站的视频现在都还是 flash
2017/01/06 14:30
回复
举报
打分: 力荐
作者真心厉害,独自完成,离开bilibili还推动了一下开源,佩服作者,顺便鄙视bilibili的做法
2016/12/29 22:57
回复
举报
厉害了,其实已经有很多h5播放器了。jwplayer也有h5js
2016/12/26 19:10
回复
举报
大神呀
2016/12/26 19:02
回复
举报
打分: 很差
啥也播放不了
2016/12/26 14:03
回复
举报
打分: 力荐
666
2016/12/24 22:51
回复
举报
打分: 力荐
看完新闻前来膜拜
2016/12/23 15:31
回复
举报
更多评论
发表于软件架构专区
2019/08/21 08:08

如何看待优秀国产开源项目作者月薪却不到 5000 元?

今天朋友圈被下边这张图刷爆了,讲的似乎是一个优秀国产开源项目作者的才能没有得到很好的回报: 事件中的项目是 BiliBili 三年前开源的 flv.js,它是一个使用纯 JavaScript 编写的 FLV(HTML5 Flash Video)播放器,虽然是 FLV 播放器,但是完全没有使用到 Flash,这是它的一大特点,具体特性查看:https://www.oschina.net/p/flv-js。 flv.js 的工作原理是将 FLV 文件流转换为 ISO BMFF(Fragmented MP4)段,然后通过 Media ...

62
44
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/04/28 23:11

[js]javascript索引

js&jq总结的还是挺棒的: http://www.cnblogs.com/yuanchenqi/articles/5980312.html http://www.cnblogs.com/yuanchenqi/articles/6070667.html 我学了很久没把js学会, 我发现我的路子错了, 一开始就追求大而全.....累死... 好办法应该是迭代式更新知识点.... ECMAScript(4,5) 目前学的是es5 es6其实是ECMAScript 2015. mvc模式和mvvm模式及vue学习思路 - 前端工作的日常: 拿到ui设计图: 切图--> html+css静态布局-->js写一下动...

0
2
发表了博客
2018/09/04 17:47

JS(JavaScript)初始

day43 JS初识 今日内容: HTML: 文档结构 CSS: 修改文档的外观样式 JS:实现页面上的动态 JS文件的引入方式:   1.script标签内写代码 <script> //在这里写你的代码 </script>   2.引入额外的JS文件 <script src="myscript.js"></script>   3.注释(注释是代码之母) // 这里是单行注释 /* 这里是多行注释 */   4.结束符号 JavaScript中的语句要以分号( ; ) 为结束符. 1.JS的历史及ECMAScript   JS ----> Ja...

0
0
发表了博客
2018/06/27 15:45

[JavaScript]-JavaScript的this原理.

#### 一、问题的由来 学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。 ```js var obj = { foo: function () {} }; var foo = obj.foo; // 写法一 obj.foo() // 写法二 foo() ``` 上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。 ```js var obj = { foo: function () { console.log(this.bar) }, bar: 1 }; var foo = obj.foo; var bar = 2; obj.foo() // 1...

3
25
发表了博客
2019/08/30 13:29

JavaScript(js)笔记

js注释 JavaScript注释与Java注释相同 // 单行注释 /* 多行注释 */ js五大基本类型:   number(数值型)、string(字符串性)、boolean(布尔型)、undefined类型、null类型 number包括:数值类型、包含整型、浮点型、NaN和Infinity(无穷大)。 关于数组的空间长度问题:   如何获取数组的空间长度:     通过length属性获取数组的空间长度   数组的length详解:     java:只读属性      js:读写属...

0
3
发表了博客
2019/06/05 00:00

JS|JavaScript库

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。 问题描述 在使用JavaScript的时候,为了更加方便快捷的完成一些项目,通常会引用一些框架(库)。目前广受欢迎的库有:jQuery、Prototype、MooTools。所有这些框架都提供针对常见 JavaScript 任务的函数,包括动画、DOM 操作以及 Ajax 处理。 jQuery jQuery是一个轻量级的JavaScript库,它包含以下功能:H...

0
0
2019/06/26 10:23

javascript规范(js)

EMCAScript规范 javascript语言实现,ES6规范(使用babel编译器将es6转换为es5,webpack只支持部分es6): import "jquery"; //返回function export function doStuff() {} module "localModule" {} es5: var o = require('s.js'); export default只有一个,export可以有多个 commonjs规范 nodejs语言实现 require("module"); require("../file.js"); //require返回对象 object exports.doStuff = function() {}...

0
0
2014/11/07 14:33

js 封装 js

define(['jquery'], function($) { var orderSummary = { $el: $('.summary-totals'), updateUrl : '../checkout/orderSummaryContentJson.jsp', cartRemoveUpdateUrl : '../cartridges/cart/subTotalContainer.jsp', orderComfirmSummaryUrl : '../checkout/orderReviewInfoSummaryContainer.jsp', bindChange : function() { this.$el = $('.summary-totals'); if($('.js-estimated').length) { $('.js-estimated').off('chan...

0
0
发表了博客
2014/09/26 16:08

Javascript---Javascript简介

javascript 是一门面向对象的动态语言。虽然在字面中带有java的字样但是千万不能和java混淆。 javascript的主要运用在web开发中,做交互方面的开发让交互变得更加的有意思和人性化。 —————————————————————————————————————————————————————————————————————— 一、提出如下的问题; 1、ECMASCRIPT是什么? 2、javascript和ECMAScript之间的关系? --->EC...

0
1
发表了博客
2019/04/02 15:17

浅谈JS之text/javascript和application/javascript

问题描述: JS在IE8以下浏览器运行异常 代码: <script>标签是这样子写的: <script type="application/javascript"> //执行语句 </script> 这是书写的时候Dreamweaver自动补全的。但是在自己运行的例子中我的script标签写的是: <script type="text/javascript"> //执行语句 </script> 将项目中的标签type属性修改成了text-javascript,然后,然后在IE8一下就可以运行了。 拓展: 最实用的用法,现在各大浏览器已经...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2019/12/27 14:55

使用flv.js做直播

为什么要在这个时候探索flv.js做直播呢?原因在于各大浏览器厂商已经默认禁用Flash,之前常见的Flash直播方案需要用户同意使用Flash后才可以正常使用直播功能,这样的用户体验很致命。 在介绍flv.js之前先介绍下常见的直播协议以及给出我对它们的延迟与性能所做的测试得出的数据。 如果你看的很吃力可以先了解下音视频技术的一些基础概念。 常见直播协议 RTMP: 底层基于TCP,在浏览器端依赖Flash。 HTTP-FLV: 基于HTTP流式IO传输...

1
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
21 评论
522 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部