0%

FLV格式

FLV与RTMP协议有密切的联系。每个RTMP的数据加个头就是FLV了。

FLV文件是以FLV格式存储的。

FLV文件 = FLV header + 数据

FLV header,占9字节:

  • 前3字节:F、L、V
  • 版本,值为1。
  • 类型
    • 0~5位,保留,必须是0。
    • 6位,是否有音频tag。ii
    • 7位,保留,必须是0。
    • 8位,是否有视频tag。
  • 偏移量,占4字节,Header的大小,必须是9。

数据是由一个个分组组成,一个分组的结构:

  • pre tagsize,占4字节,前一个tag的大小,即tag大小在tag的后面存放。
  • Tag

Tag的结构:

  • TT,1字节,Tag类型。0x08音频,0x09视频,0x12script脚本。
  • DataSize,3字节,Tag body数据大小(PreTagSize - Tag Header Size)
  • TimeSta,3字节,时间戳(毫秒)
  • E,1字节,扩展时间戳。
  • SID,3字节,StreamID,始终是0。
  • Tag DATA

Tag DATA可以保存两种类型数据:音频、视频。

  • 音频Tag DATA
    • header
      • SF,采样率
      • SR
      • SS
      • ST
    • data

  • 视频Tag DATA

欢迎关注我的其它发布渠道