(转)FLV格式解析

转载 2012年03月21日 17:04:44

FLV全称为Flash Video,这种视频格式成为互联网“新宠”,在此之前可能还是wmv/rm的最多。FLV文件格式在互联网上的应用方便造就了youtube的神话。从2006年我就一直关注Flash Video方面的东西,曾经编码把FLV文件格式解析了。非常有意思,我把FLV文件中关键帧提取出来,扔给flash video的播放器,仍然可以播放,速度很快,但是就是让人感觉在放幻灯片。今天把以前解析FLV文件格式程序和文档整理了一下,把FLV文件格式详细的整理出来。下面用类似于文法规则的方法把FLV文件格式表示出来。
FLV文件: FLVHeader FLVStream
FLVHeader : Signature Version Flags Offset 
Signature : "FLV"
Version   : 0×01 
Flags   : 0×01 | 0×04 | 0×05 //1:video,4:audio,5:video+audio
Offset   : 0×00 0×00 0×00 0×09
FLVStream : (PreviousTagSize FLVTag)*
PreviousTagSize : 4个byte表示int(第一个FLVTag,该值为0,一般第一个Tag是Meta)
FLVTag    : Type BodyLength Timestamp TimestampExtended StreamId Body 
Type      : 0×08 | 0×09 | 0×12 //0×08:audio,0×09:video,0×12:meta
BodyLength: 3个byte表示int
Timestamp : 3个byte表示int
TimestampExtended : 0×00 (一般是0×00)
StreamId  : 0×00 0×00 0×00
Body      : BodyLength个byte
上面基本上就是整个FLV文件的格式信息。有一点非常重要:这上面“4个byte表示int”
与"3个byte表示int”都是高->低字节序的。在计算机中,大部分是低->高字节序,
在解析时候一定要注意转换。

对于具体三种Tag:Audio/Video/Meta,
其Body里又有不同格式。Meta Tag的Body是两个AMF packets(如果懂一点Flash的话,
应该知道AMF packet大概是个什么东东,这个的格式我下次在仔细贴出来。)
Audio Tag和Video Tag的Body的第一个byte都用来标识一些与后面数据相关的信息。

Audio Tag的Body的第一个字节信息:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0   bit从高到底
——(1)—–|–(2)–|(3)|(4)
(1):0–Uncompressed; 1–ADPCM; 2–MP3; 5–Nellymoser 8kHz mono; 6–Nellymoser 
(2):0–5.5KHz; 1–11KHz; 2–22KHz; 3–44KHz
(3):0–8bit; 1–16bit
(4):0–mono; 1–stereo

Video Tag的Body的第一个字节信息:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0   bit从高到底
—–(1)——|——(2)—–
(1):2–Sorensen H.263; 3–Screen video; 4–On2 VP6; 5–On2 VP6 Alpha; 6–ScreenVideo 2
(2):1–keyframe; 2–inter frame; 3–disposable inter frame


转自:http://blog.csdn.net/mmtogo/article/details/4179324

相关文章推荐

开发视频网站,asp.net视频文件转换.flv格式(转)

最经公司有一个小项目需要把视频转换成FLASH文件,效果就是像用户注册youku网一样,自己可以视频上传,转换成flash格式播放。苦于以前没有做过,于是马上搜索了相关的文章,看了http://www...

FLV文件格式解析

FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。 FLV...

FLV封装格式解析

原理 FLV封装格式是由一个FLV Header文件头和一个一个的Tag组成的。Tag中包含了音频数据以及视频数据。FLV的结构如下图所示。 有关FLV的格式本文不再做记录。可以参...

视音频数据处理入门:FLV封装格式解析

前两篇文章介绍了音频码流处理程序和视频码流处理程序,本文介绍将他们打包到一起后的数据——封装格式数据的处理程序。封装格式数据在视频播放器中的位置如下所示。本文中的程序是一个FLV封装格式解析程序。该程...

flv文件格式解析

1.header header部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式如下: 文件类型 3 bytes “FLV”...

FLV文件格式解析

最近要用到flv,整理了一些flv格式的资料,供参考。 flv文件主要由两部分组成:header和body。 1.header header部分记录了flv的类型、版本等信息,是flv...

(转)flv文件格式解读之视频tags

视频tags的组成: --------------------------------------------------------------------------- tag类型 0x09 ...

FLV文件格式解析

最近要用到flv,整理了一些flv格式的资料,供参考。 flv文件主要由两部分组成:header和body。1.header header部分记录了flv的类型、版本等信息,是flv的开头,一般都差不...

FLV文件格式解析

最近要用到flv,整理了一些flv格式的资料,供参考。 flv文件主要由两部分组成:header和body。 1.header header部分记录了flv的类型、版本等信息,是flv的开头,一般...

FLV文件格式解析

最近要用到flv,整理了一些flv格式的资料,供参考。 flv文件主要由两部分组成:header和body。 1.header header部分记录了flv的类型、版本等信息,是flv的开...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)