FLV
This is my study note of FLV.
本文图片均是源自网上,仅是笔记
FLV(Flash Video)是Adobe公司推出的一种流媒体格式,由于其封装后的音视频文件体积小、封装简单等特点,非常适合于互联网上使用。
概述
FLV封装格式是由一个文件头(flie header)和文件体(file Body)组成,其中文件体又由若干个Previous Tag Size字段+tag组成。Previous Tag Size排在tag之前,由4个字节组成,它记录了前一个Tag的大小,用于逆向读取处理。Flv header后的第一个Previous Tag Size为0。,一般Tag可分为三个种类:脚本(帧)数据类型、音频数据类型、视频数据。
FLV文件详细内容
三种Tag包
1.Script Tag Data结构
此类型的Tag存放一些关于音视频的元信息,例如duration、width、height等,通常它会做为Flv文件的第一个tag,并且只有一个。
该类型的tag结构如下:
- AMF1包
此包第一个字节表示AMF包类型,一般总是0x02,表示字符串。2-3字节标识该字符串的长度,后面字节为具体字符串。
- AMF2包
第一个字节表示AMF包类型,一般总是0x08,表示数组。2-5字节表示UI32类型值,表示该数组元素的个数,随后数据为各数组元素的封装。数组元素为元素名称和值组成的对,如下:
2.Audio Tag Data结构
第一个字节包含了音频数据的参数信息,第二个字节开始为音频数据。
Audio Tag Data结构:
3.Video Tag Data结构
第一个字节包含了视频数据的参数信息,第二个字节开始为视频数据。
Video Tag Data结构:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 风声向寂!
评论
ValineDisqus