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的时间戳顺序播放。任何加入到文件中时间设置数据格式都将被忽略。
官方spec
Adobe Flash Video File Format Specification
Version 10.1
video_file_format_spec_v10_1
swf-file-format-spec