FLV科普6 FLV Tag以及Tag头信息解析

来源:互联网 发布:淘宝网账号限制登录 编辑:程序博客网 时间:2024/04/29 16:24

每个FLVtag 包含音频、视频、脚本、可选的加密元数据以及负载等信息。

tag头信息 占11个字节   (主要信息为当前tag是音频还是视频  不含头信息的tag数据大小 时间戳信息)

Reserved  占2位   固定为0

Filter          占1位    表示是否经过滤波  一般为0

TagType   占5位   表示tag的类型  8为音频 9为视频 18为脚本数据  其它数据为保留值(其中18一般在第一个tag中,一般tag第一个字节为0x12表示脚本数据  第一个字节为0x08 表示音频数据 第一个字节为0x09表示视频数据)

DataSize  占24位 表示当前tag的后续长度等于当前整个tag长度减去11(tag头信息)

Timestamp占24位为相对第一个Tag的时间戳,因此第一个Tag的时间戳为0。也可以将所有Tag的时间戳全配置为0,解码器会自动处理。 每个tag的第五个字节开始

TimestampExtended 占8位  时间戳总共占用32位  这里指示它的高8位

StreamID 占24位 一直为0

以上总共11个字节  为tag头信息

解析相关头信息

如果TagType为8  解析音频头信息 详见 FLV科普8 FLV音频头信息

如果TagType为9  解析视频头信息 详见 FLV科普10 FLV视频头信息

如果Filter为1  解析相关滤波信息 

解析数据信息

如果TagType为8  解析具体音频数据 FLV科普9 FLV音频信息

如果TagType为9  解析具体视频数据 FLV科普11 FLV视频信息   一个TAG可以拥有多个NAL单元

如果TagType为18  解析具体脚本数据数据(为ScriptDataObject,但该项因为内容不固定,所以在FLV文件中可以没有该Tag内容)  详见FLV科普12 FLV脚本数据解析-Metadata Tag解析

标准文档:



以下图选定区域的一个tag为例“

Reserved  占2位   固定为0    当前值为:00 (图中12中的前两位为00)

Filter          占1位   一般值为0 不滤波  当前值为:0

TagType   占5位   表示tag的类型 当前值为12 (前3位不算 10010 (18表示脚本数据))

DataSize  占24位 表示当前tag的后续长度 当期值为 00 01 74 (372) 等于当前整个tag长度-11 = 383-11 

Timestamp占24位为相对第一个Tag的时间戳,因此第一个Tag的时间戳为0。值0x:00 00 00

TimestampExtended 占8位  时间戳总共占用32位  这里指示它的高8位 值0x: 00

StreamID 占24位 一直为0 值:0x 00 00 00

以上总共11个字节  为tag头信息



1 0
原创粉丝点击