1. FLV文件格式
FLV (Flash Vedio ) 是一种视频流媒体格式,FLV是被众多新一代视频分享网站所采用,是目前增长最快、最为广泛的视频传播格式。是在sorenson公司的压缩算法的基础上开发出来的。FLV格式不仅可以轻松的导入Flash中,速度极快,并且能起到保护版权的作用,并且可以不通过本地的微软或者REAL播放器播放视频。
2. FLV文件介绍
FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。
FLV文件=FLV头文件+ tag1+tag内容1 + tag2+tag内容2 + ...+... + tagN+tag内容N。
2.1 FLV Header
Signature |
UI8 |
Signature byte always 'F' (0x46) |
Signature |
UI8 |
Signature byte always 'L' (0x4C) |
Signature |
UI8 |
Signature byte always 'V' (0x56) |
Version |
UI8 |
File version (for example, 0x01 for FLV version 1) |
TypeFlagsReserved |
UB [5] |
Shall be 0 |
TypeFlagsAudio |
UB [1] |
1 = Audio tags are present |
TypeFlagsReserved |
UB [1] |
Shall be 0 |
TypeFlagsVideo |
UB [1] |
1 = Video tags are present |
DataOffset |
UI32 |
The length of this header in bytes |
Signature: FLV 文件的前3个字节为固定的‘F’‘L’‘V’,用来标识这个文件是flv格式的.在做格式探测的时候,
如果发现前3个字节为“FLV”,就认为它是flv文件。
Version: 第4个字节表示flv版本号。
Flags: 第5个字节中的第0位和第2位,分别表示 video 与 audio 存在的情况.(1表示存在,0表示不存在)
DataOffset : 最后4个字节表示FLV header 长度。
2.2 FLV Body
Field |
Type |
Comment |
PreviousTagSize0 |
UI32 |
Always 0 |