FLV格式全称是FLASH VIDEO,它是sorenson公司开发出来的流媒体视频格式。它的特点是视频占有率低,视频体积小,所以它常运用在各种网络视频中。而RTMP网络流媒体协议也是用FLV复合流格式进行传输.
flv复合流封装格式由两大部分组成,一个是FILE HEADER(文件头部)、另外一个FILE BODY(文件体)。其中,FLV HEADER的长度固定为9个字节,而FLV BODY则由一对对(previous tags size + tag)组成。previous tag size一般都在tag前面,通常previous tag size占用4个字节,它的作用是记录前一个tag的大小。而tag一般分为3个类型,脚本数据帧类型、音视频数据类型、视频数据。结构图如下:
如上图就是flv header的结构,可以看到flv header以3个字节的签名作为开始,这三个就是F,L,V。版本号固定是1,其他的标识符则根据业务进行配置。
这里我们先介绍一下公共部分,FLV BODY TAG: