flv文件格式

FLV文件构成

FLV文件=FLV头文件+ tag1+tag内容1 + tag2+tag内容2 + …+… + tagN+tag内容N

FLV头文件

FLV头文件:(9字节)

  • 1-3:前3个字节是文件格式标识(FLV 0x46 0x4C 0x56)。
  • 4-4:第4个字节是版本(0x01)
  • 5-5:第5个字节的前5个bit是保留的必须是0.
    • 第5个字节的第6个bit音频类型标志(TypeFlagsAudio)
    • 第5个字节的第7个bit也是保留的必须是0
    • 第5个字节的第8个bit视频类型标志(TypeFlagsVideo)
  • 6-9: 第6-9的四个字节还是保留的。其数据为00000009 .
  • 整个文件头的长度,一般是9(3+1+1+4)

tag基本格式

tag类型信息,固定长度为15字节

  • 1-4:前一个tag长度(4字节),第一个tag就是0
  • 5-5:tag类型(1字节);0x8音频;0x9视频;0x12脚本数据
  • 6-8:tag内容大小(3字节)
  • 9-11:时间戳(3字节,毫秒)(第1个tag的时候总是为0,如果是脚本tag就是0)
  • 12-12:时间戳扩展(1字节)让时间戳变成4字节(以存储更长时间的flv时间信息),本字节作为时间戳的最高位。

在flv回放过程中,播放顺序是按照tag的时间戳顺序播放。任何加入到文件中时间设置数据格式都将被忽略。

  • 13-15:streamID(3字节)总是0
官方spec
Adobe Flash Video File Format Specification
Version 10.1

video_file_format_spec_v10_1

swf-file-format-spec