FLV视频封装格式详解

需积分: 10 3 下载量 180 浏览量 更新于2024-07-09 收藏 464KB PDF 举报
"FLV视频封装格式详解" FLV(Flash Video)是一种广泛应用于网络的流媒体格式,因其文件体积小、播放便捷等优点而受到欢迎。这种格式与Adobe Flash Player的紧密集成使得在网页上播放视频变得非常容易。FLV最初由Adobe公司设计并已免费开放,最新版本为v10。FLV文件由两大部分组成:文件头(FlvHeader)和文件体(FlvBody)。 1. FLVHeader: 文件头包含了文件的基本信息,共9个字节。前三个字节是文件标识符,始终为"FLV"(0x460x4C0x56)。第四个字节是版本号,通常为1(0x01)。第五个字节的前五位是保留位,必须为0,第六位表示是否存在音频流,第七位是保留位,也必须为0,第八位表示是否存在视频流。最后四个字节是一个UI32类型值,表示从文件头到文件体开始的字节数,在FLV version 1中,这个值通常是9。 2. 文件体(FlvBody): 文件体由一系列的Tag(标签)及其大小TagSize组成,每个Tag可以是音频流、视频流或脚本流。Tag结构如下: - 音频流(audio): 包含音频数据,可以是AAC或MP3格式等。 - 视频流(video): 包含视频数据,常见的编码格式有H.263、Sorenson Spark(H.263+)、VP6和H.264。 - 脚本流(script): 用于存储元数据、播放控制信息等,例如AS2或AS3脚本。 每个Tag都包含时间戳、数据类型标识和数据长度信息,便于解析和处理。 3. RTMP协议: FLV经常与Adobe的RTMP协议一起使用,它允许实时的数据传输,常用于视频直播。通过RTMP协议,客户端可以连接到Adobe Flash Media Server,实现流媒体内容的发布和分发。 4. 版本信息: FLV格式的版本信息会影响其支持的功能和数据结构。例如,较新的版本可能支持更多的编码格式或特性。 5. 兼容性与应用: 由于FLV与Flash Player的紧密关联,它在过去的网页视频中占主导地位。然而,随着HTML5的普及和Flash逐渐被淘汰,现代的网页更多地转向使用HTML5的视频格式如MP4和WebM。 FLV视频封装格式是一种高效且灵活的流媒体格式,尤其适合在网络环境下进行实时传输。尽管随着技术的发展,它的使用逐渐减少,但理解其工作原理对于处理和分析旧的视频内容仍然具有价值。