- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FLV文件格式解析.docx
FLV文件格式解析FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。????FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们就了解一下FLV文件格式。????FLV是流媒体封装格式,我们可以将其数据看为二进制字节流。总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag及Tag Size对组成。因此一个FLV文件看上去是下面的结构:????其中,Previous Tag Size紧跟在每个Tag之后,占4个字节表示一个UI32类型的数值,表示前面一个Tag的大小。需要注意的是,Previous Tag Size #0的值总是为0。Tag类型包括视频、音频和Script,且每个Tag只能包含一种类型的数据。下面我们看看File Header和Tag的具体结构,为了方便大家理解,我贴一个实际FLV文件的字节流图片,图片中把不同部分区分了颜色。?File Header结构FLV Header Field?????????????????????描述文件类型(3byte)F (0x46) L (0x4C) V (0x56)版本(1byte)File Version(For example 0x01 for FLV version 1)流信息(1byte)UB[7]~UB[3]、UB[2]=1 Audio,UB[1]总为0,UB[0] = 1 VideoHeader长度(4bytes)整个文件头的长度,一般是9(3+1+1+4),有时候后面还有些别的信息,就不是9了文件类型3bytes总是FLV(0x46 0x4C 0x56),否则...版本1byte一般是0x01,表示FLV version 1流信息1byte倒数第一bit是1表示有视频,倒数第三bit是1表示有音频,其他都应该是0(有些软件如flvtool2可能造成倒数第四bit是1,不过也没发现有什么不对)header长度4bytes整个文件头的长度,一般是9(3+1+1+4),有时候后面还有些别的信息,就不是9了????File Header在当前版本中总是由9个字节组成,如图中蓝色区域所示。????第1-3字节为文件标识(Signature),总为“FLV”(0x46 0x4C 0x56),如图中紫色区域。????第4字节为版本,目前为1(0x01)。????第5个字节的前5位保留,必须为0。????第5个字节的第6位表示是否存在音频Tag。????第5个字节的第7位保留,必须为0。????第5个字节的第8位表示是否存在视频Tag。????第6-9个字节为UI32类型的值,表示从File Header开始到File Body开始的字节数,版本1中总为9。?File Body结构FLV File Body Field??Type????CommentPreviousTagSize0??UI32Always 0Tag1?FLVTAGFirst tagPreviousTagSize1??UI32Size of previous tag, including its header. For FLV version 1,this value is 11 plus the DataSize of the previous tag.Tag2?FLVTAGSecond tag????…??…??…PreviousTagSizeN-1?UI32Size of second-to-last tagTagNFLVTAGLast tagPreviousTagSizeN?UI32Size of last tagFLV TagHeader have the following format:FLVTAG FieldTypeCommentTagTypeUI8Type of this tag. Values are:8:audio????9:video???18:script dataDataSizeUI24Length of the data in the Data fieldTimestampUI24Time in milliseconds at which the data in the this tag applies. The valve is relative to the first tag in the FLV file, which always ha
文档评论(0)