FLV封装格式解析

一、简介

FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。

另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。可以通过Adobe公司的RTMP(Real Time Messaging Protocol)协议连接到Adobe Flash Media Server上面发布媒体信息。

FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。

FLV是流媒体封装格式,我们可以将其数据看为二进制字节流。总体上看,FLV包括文件头(Flv Header)和文件体(Flv Body)两部分,其中文件体由一系列的Tag及Tag Size对组成。Tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。

FLV 文件,实际上就是在 RTMP 消息数据的最前面加了 FLV 文件头。

二、FLV Header

一般比较简单,包括文件类型之类的全局信息。

FLV Header 一共九个字节,含义如下:

第1-3字节为文件标识(Signature),总为“FLV”(0x46 0x4C 0x56);
第4字节为版本,目前为1(0x01);
第5个字节的前5位保留必须为0,第6位表示是否存在音频Tag,第7位保留必须为0,第8位表示是否存在视频Tag;
第6-9个字节为UI32类型的值,表示从File Header开始到File Body开始的字节数,版本1中总为9。

FLV Header包含9个字节,含义如下表所示:

image.png

参考:https://blog.csdn.net/weed_hz/article/details/10232407

你可能感兴趣的:(FLV封装格式解析)