FLV格式解析

FLV的总体结构

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

 

总体格式如下图:

 

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数据,包括宽、高、时长、采样率等基础信息。

 

音频数据

 

视频数据

 

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

 

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

 

如果AVC类型是0

 

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值