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头信息
- FLV科普6 FLV Tag以及Tag头信息解析
- FLV科普4 FLV头信息解析
- FLV科普12 FLV脚本数据解析-Metadata Tag解析
- FLV科普8 FLV音频头信息
- FLV科普10 FLV视频头信息
- FLV-音频Tag
- FLV-视频Tag
- FLV-Script Tag
- FLV科普9 FLV音频信息
- FLV科普11 FLV视频信息
- 软编码Flv 到Mp4 容器(三) flv metadata tag解析
- 软编码Flv 到Mp4 容器(二) flv tag拆解
- FLV科普5 FLV Body
- FLV科普1 简介
- 在FLV文件的TAG中写入H264数据
- 在FLV文件的TAG中写入H264数据
- easydss与librtmp发送flv tag扩展时间戳
- FLV科普2 FLV相关工具FlvParse
- Joda-Time 用法
- 运维小知识---CentOS6.5安装Nexus
- [C大程] 图形程序设计_4 编写窗口输入程序
- iOS开发——CoreData数据持久化存储
- 美团2015笔试题以及最优解(一)
- FLV科普6 FLV Tag以及Tag头信息解析
- 代码之谜(零)- 开篇/前言/序
- 解决MySQL服务无法启动及MySQL5.4.10更改root密码
- 2015.12.19比赛总结
- 你为什么薪水那么低(二)之 生产力
- [GDOI模拟2015.12.19总结]
- 文字检测与识别3-字符合并
- contentSize、contentInset、contentOffset关系
- 困难的串(Krypton Factor,UVa129)