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

33 | FLV:适合录制的多媒体格式

Tag包括Tag Header和Tag Data
由Previous TagSize和Tag组成
包括FLV文件标记、版本、类型标识和长度
由9个字节组成
有名的能够播放FLV格式文件的开源播放器
方便合并和回放
随时添加音视频数据而不破坏文件结构
流式文件格式
FLV Body
FLV Header
思考时间
FLV适合录制的优势
FLV文件格式

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

虽然苹果拒绝使用 RTMP 协议并推出了自己的 HLS 技术,但大多数用户仍然还是使用 RTMP 协议作为传统直播系统的传输协议。在 Adobe 宣布不再对 RTMP 技术进行支持的情况下,仍然还有这么多用户在使用它,说明 RTMP 协议具有其他协议不可比拟的优势。
这里我们做个对比,你就知道 RTMP 协议的优势在哪里了。
首先,与 HLS 技术相比,RTMP 协议在传输时延上要比 HLS 小得多。主要原因在于 HLS 是基于切片(几秒钟视频的小文件)、然后缓存的技术,这种技术从原理上就比直接进行数据传输慢很多,事实也证明了这一点。
其次,相对于 RTP 协议,RTMP 底层是基于 TCP 协议的,所以它不用考虑数据丢包、乱序、网络抖动等问题,极大地减少了开发人员的工作量;而使用 RTP 协议,网络质量的保障都需要自己来完成。
最后,与现在越来越火的 WebRTC 技术相比,RTMP 也有它自己的优势。虽然在实时传输方面 WebRTC 甩 RTMP 技术几条街,但对于实时性要求并没有那么高的传统直播来说,RTMP 协议在音视频的服务质量上普遍要好于 WebRTC 的音视频服务质量。
这下你知道 RTMP 协议为什么会存活这么久了吧。那说了这么多,RTMP 协议与 FLV 又有什么关系呢?实际上,FLV 文件与 RTMP 之间是“近亲”关系,甚至比“近亲”还要近,亲得就好像是“一个人”似的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

FLV格式是一种适合录制的多媒体格式,尽管苹果推出了自己的HLS技术,但大多数用户仍然使用RTMP协议作为传统直播系统的传输协议。相比HLS技术,RTMP协议在传输时延上更小,而且相对于RTP协议,RTMP底层基于TCP协议,减少了开发人员的工作量。此外,FLV文件与RTMP之间有着密切的关系,FLV文件是由FLV头和RTMP数据构成的。FLV文件格式的流式存储结构使其特别适合在音视频录制中使用,可以随时将音视频数据写入到文件的末尾,而不会破坏文件的整体结构。相较于MP4等多媒体文件,FLV文件头是固定的,音视频数据可以随着时间的推移随时写入到文件的末尾,因此在录制和回放时更具优势。总的来说,FLV格式在服务端录制中具有诸多优势,而且在实现FLV格式分析时,已经有很多非常不错的开源库可供使用。 在留言区分享你知道的有名的能够播放FLV格式文件的开源播放器吧!

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

全部留言(10)

  • 最新
  • 精选
  • redbg
    bilibili 的 flv.js,可以用 h5 播放 flv

    作者回复: 不错!非常好的播放器

    2019-09-29
    7
  • 刘丹
    FLV Body里为什么把TagSize放在Tag后面呢?如果TagSize在Tag前面,解析时就知道需要读入多少字节了。

    作者回复: 这是咱们正常的思维。但FLV标准的制定者不是这么考虑的。他们认为通过 Tag中的音频头或视频头就可以知道 Tag 的长度,然后后面再用 TagSize校验一下长度是否OK比较方便。

    2019-09-28
    2
    3
  • 刘丹
    请问合并2个FLV文件的时候,是否要把第2个FLV文件的FLV头这几个字节删除掉?

    作者回复: 是要去掉的

    2019-09-28
    2
  • 一颗大白菜
    有两个疑问: (1)在尾部追加Tag时是否需要更新Metadata中filesize和duration吗? (2)在尾部追加Tag时是否会引起Metadata大小变化呢?如果大小变化,那么是不是需要将重新生成文件?

    作者回复: 因为flv中的数据是流式的,在后面追加tag是没问题的,而且flv中的metadata也是可有可无的;

    2020-08-06
    2
  • 神经旷野舞者
    既然flv和rtmp等于没有区别,为什么后来者还要自立门户呢?

    作者回复: 里边的协议是一样的,但一个是多媒体文件,一个是音视频流。不知我表述清楚没。

    2019-12-17
  • 李新
    对于CDN厂商来说,观看端都是使用HTTP-FLV吧?

    作者回复: RTPM, HTTP-FLV, HLS这些协议都支持!

    2019-11-13
  • Jason
    potplayer

    作者回复: 这个以前还真没用过,回头试试!

    2019-09-29
  • Jason
    讲的很清楚,赞

    作者回复: 谢谢!

    2019-09-29
  • 潇湘落木
    FLV封装格式详解,作为补充! https://mp.weixin.qq.com/s/cMM2wbh1-DGWEMUB02mK8g https://mp.weixin.qq.com/s/teQ7FoNj5FIE-3PICBIvlA
    2019-11-05
    6
  • EdwdChen
    请问一下像 flv 没有一个结构化的头,seek 的时候应该怎么样快速找到对应的位置呢?
    2022-06-28
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部