flv是什么格式的怎么打开(播放flv后缀视频文件)

FLV(FlashVideo)流媒体格式,是随着FlashMX的推出发展而来的视频格式。其文件体积小,一般1分钟只占1MB,是普通视频文件大小的1/3,且视频质量良好,广受视频网站欢迎。然而,FLV格式往往利用FlashPlayer进

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视频播放器

简介

Flv.js,是 bilibili(哔哩哔哩)在 Github 上开源的 HTML5 的 FLV 视频播放器,项目位于https://github.com/bilibili/flv.js,目前版本为 v1.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 的 video 元素中进行播放。

flv.js项目

安装

Flv.js 可以使用 NPM 直接安装,加入到前端项目依赖中:

npm install --save flv.js

也可以使用国内镜像的 CNPM 进行安装:

cnpm install --save flv.js

还可以在本地进行构建:

npm install # 安装开发依赖npm install -g gulp # 安装构建工具 gulpgulp release # 构建发布

Flv.js 使用 ECMAScript 6 编写,使用 Babel Compiler 转译到 ECMAScript5,并使用 Browserify 进行打包。

示例

Flv.js 的架构设计如下:

Flv.js架构设计

核心部分为 FlvDemuxer 和 MP4Remuxer,分别对 FLV 视频进行分离,和封装为 MP4 视频。内部通过多个Controller控制器,发送指令,对数据流的操作进行控制。

Flv.js 使用简单,通过接口 createPlayer 实例化播放器,配置对应的视频源,然后,挂载到 DOM 容器上,并调用 load() 进行加载,调用 play() 进行播放:

注意到,flv.js 提供了 isSupported 接口,可以很方便地判断 Flv.js 是否支持当前的浏览器环境。Flv.js提供了一个测试用的 demo 页面,可以进行视频播放的测试:

Flv.js demo

Flv.js 主要提供了3个函数:

  • flvjs.createPlayer():接受配置,实例化播放器
  • flvjs.isSupported():是否支持当前浏览器
  • flvjs.getFeatureList():支持的特性的列表

还有3个类:

  • flvjs.FlvPlayer:FLV 播放器
  • flvjs.NativePlayer:原生 HTML5 播放器,可以用户单 MP4 文件的播放
  • flvjs.LoggingControl:日志控制

以及3个枚举:

  • flvjs.Events:播放器事件
  • flvjs.ErrorTypes:错误类型
  • flvjs.ErrorDetails:错误具体信息

使用时的主要接口是 createPlayer,它的函数签名如下:

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

其中 mediaDataSource 进行视频流配置,常用的参数包括:

  • type:视频类型,flv 或 mp4
  • isLive:是否为直播视频流
  • cors:获取视频数据时是否启用 CORS
  • url:视频流地址
  • segments:视频切片配置

而 config 进行 flv.js 播放器内部配置,包括worker、缓存、加载策略等的配置。

对于体积较大的视频,往往在服务器中会进行切片处理。Flv.js 支持对于切片视频的加载播放,通过提供 segments 配置。segments 是一个切片配置的列表,每个配置包括了视频长度、文件大小和视频地址:

\"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 支持直播视频流的播放,通过 isLive 配置实现,支持 HTTP 协议的视频流:

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

以及 WebSocket 协议的视频流:

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

flv.js项目

总结

Flv.js 作为一个 HTML5 视频播放器,实现了通过原生 Javascript,在 HTML5 页面上进行 FLV 视频的播放,充分利用了 FLV 格式优秀的体积和质量,提供了更为优秀的播放体验,降低了视频服务器和负荷,同时支持切片、直播、懒加载等进阶特性,功能丰富。Flv.js 目前已被广泛应用到视频播放网站中,使用者众多,同时代码质量高,值得使用、研究和学习。

HTML5 + FLV

以上就是爱惜日网»flv是什么格式的怎么打开播放flv后缀视频文件)的相关内容了,更多精彩请关注作者:爱惜日号SEO专员

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/79896.html

(0)
nan
上一篇 2022-01-10
下一篇 2022-01-10

相关推荐

  • 新手视频剪辑赚钱方式(抖音是怎么赚钱的怎么结算)

    毫无疑问抖音目前是短视频类比较火爆的一个平台,目前抖音平台日活动量上亿,这么多的流量自然吸引很多人瞅准短视频这一平台来赚钱,而且目前抖音上很多直播卖货的几个小时先来赚的钱对于很多平常人来说就是天文数字,那么下来就跟大家介绍一下抖音赚钱的几种

    2021-11-29 创业分享
    0
  • 中国移动的服务密码忘了怎么办(中国移动手机营业厅忘记服务密码怎么办)

    >对于手机移动用户来讲,到了中国移动营业厅,不管手机要办理什么样的业务,或者登陆网上移动营业厅,都需要用到个人移动手机号的服务密码。一般来说,动感地带跟全球通用户是6位数字密码,神州行用户是8位数字密码。当然,如果要登录网上营业厅,就算

    2021-12-09 创业分享
    0
  • 天使轮融资是什么意思(天使轮怎么融资)

    在投资过程中,天使轮,a轮,b轮,是怎么划分的呢?投资情况有哪些?大家都知道投资分为天使和a轮,b轮,c轮,甚至D轮。我先说一下为什么投资要分论,每一轮处于不同阶段,风险不一样。因此投资的过程中投资的钱进去以后,获得的比例和付出比例不一样。

    2021-12-30
    0
  • 电脑上安装打印机步骤(怎样安装打印机到电脑)

    计算机如何安装打印机?我努力学习这么多年了,没想到一踏入社会就被这台打印机搞糊涂了。打印机直接把数据线连接到计算机上可以吗?当然不是。让我们看看如何处理这样一个复杂的问题计算机在当今社会起着极其重要的作用。它有强大的功能。它是各行各业不

    2021-12-03 创业分享
    0
  • 薪资管理软件排行(工资软件哪个好)

    办公软件很多,好的办公软件也很多,找到最适合的那一个最重要!小编今天就为大家推荐几款超好用的办公软件,帮你提高办公效率!一:ARKie智能设计助手无论你是设计图片、还是排版文章图片,只需短短一句话就能立刻生成海报,效率立马提高,赶紧去看

    2021-11-29 创业分享
    0
  • 什么是微信已读微信终于有已读功能了

    前些天,向来喜欢在朋友圈记录生活的慧慧,突然发布了一条带情绪的状态:“那就这样吧,一别两宽,各生欢喜。”原来,这三个月以来,慧慧一直跟同学会上认识的一个男生有联系。第一次见面,便主动加了对方微信,后来也都是她找话题跟男生聊天。基本上每天她都会去男生那

    2022-01-05 创业分享
    0

发表回复

登录后才能评论