FLV格式介绍

295 阅读1分钟

FLV的总体结构

FLV是一种常见的音视频封装,尤其在流媒体场景经常用到。FLV也是比较简单的封装,它是一个个tag组成。tag又分为视频tag、音频tag、script tag,分别用来存放视频数据、音频数据和MetaData数据。

image.png

总体格式如下图:

image.png

FLV Header

FLV Header占用9个字节。前三个字节是文件的标识,固定是FLV。之后是1个字节标识版本。在之后的一个字节中的第六位表示是否存在音频数据,第8位表示是否存在视频数据,其他位都是0。最后四个字节表示从文件开头到FLV Body开始的长度,一般就是9

FLV Body

放置着一个个tag。在每一个Tag前面都有一个4字节的字段,表示上一个tag的大小。再之后就是具体的tag,tag由tag header和tag data组成,tag header占用11个字节。

tag data

有三种数据script、音频、视频。

Script

存放的是Metadata数据,包括宽、高、时长、采样率等基础信息。 image.png

音频数据

image.png

视频数据

image.png

如果是H264数据,紧接着后面会有4字节的AVC Packet Type类型 image.png

如果AVC包类型是0,则格式如下: image.png

如果AVC类型是0

image.png

文章来自多方面的学习积累,请各位大佬指正