FLVHeader一般比较简单,包括文件类型之类的全局信息文件类型3bytes总是FLV(0x460x4C0x56),否则...版本1byte一般是0x01,表示FLVversion1流信息1byte倒数第一bit是1表示有视频,倒数第三bit是1表示有音频,其他都应该是0(有些软件如flvtool2可能造成倒数第四bit是1,不过也没发现有什么不对)header长度4bytes整个文件头的长度,一般是9(3+1+1+4),有时候后面还有些别的信息,就不是9了 FLVBodyFLVbody就是由很多tag组成的,一个tag包括下列信息:previoustagsize4bytes前一个tag的长度,第一个tag就是0tag类型1byte三类:8--音频tag9--视频tag18--脚本tag数据区长度3bytes 时间戳3bytes单位毫秒,如果是脚本tag就是0扩展时间戳1byte作为时间戳的高位streamsID3bytes总是0(不知道干啥用)数据区 根据不同的tag类型就有不同的数据区 Audiotag数据区audio信息1byte前四位bits表示音频格式:0--未压缩1--ADPCM2--MP35--Nellymoser8kHzmomo6--Nellymoser下面两位bits表示samplerate:0----11kHz2--22kHz3--44kHz下面一位bit表示每个采样的长度:0--snd8Bit1--snd16Bit下面一位bit表示类型:0--sndMomo1--sndStereoaudio数据区不定 videotag数据区video信息1byte前四位bits表示类型:1--keyframe2--innerframe3--disposableinnerframe()后四位bits表示编码器id:2----Screenvideo4--On2VP65--On2VP6withoutchannel6--Screenvideoversion2video数据区不定 scripttag数据区略n字... 最近做个小工具,修改音频的时间戳,来使音频视频同步,用的就是这些玩意儿。FLV(FlashVideo)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与FlashPlayer紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。 FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们就了解一下FLV文件格式。 FLV是流媒体封装格式,我们可以将其数据看为二进制字节流。总体上看,FLV包括文件头(FileHeader)和文件体(FileBody)两部分,其中文件体由一系列的Tag及TagSize对组成。因此一个FLV文件看上去是下面的结构:其中,PreviousTagSize紧跟在每个Tag之后,占4个字节表示一个UI32类型的数值,表示前面一个Tag的大小。需要注意的是,PreviousTagSize#0的值总是为0。Tag类型包括视频、音频和Script,且每个Tag只能包含一种类型的数据。
FLV文件格式说明 来自淘豆网m.daumloan.com转载请标明出处.