swf和flv有什么区别?

如题所述

简单的说:
flv是flash生成的视频,不可以交互。
swf是flash直接生成的动画,可以交互。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-30
flv 是由视频转换而成的flash优化视频,而swf是FLASH直接生成的动画!
flv可以在FALSH里收改!而swf就不可以!
用硕思闪客精灵 MX2006 可以把swf转换flv!一个绝对好用的软件!

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

FLV Header

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

文件类型 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了

FLV Body

FLV body就是由很多tag组成的,一个tag包括下列信息:

previoustagsize 4bytes 前一个tag的长度,第一个tag就是0

tag类型 1byte

三类:

* 8 -- 音频tag

* 9 -- 视频tag

* 18 -- 脚本tag

数据区长度 3bytes 时间戳 3bytes 单位毫秒,如果是脚本tag就是0

扩展时间戳 1byte 作为时间戳的高位

streamsID 3bytes 总是0(不知道干啥用)

数据区

根据不同的tag类型就有不同的数据区

Audio tag 数据区

audio信息 1byte

前四位bits表示音频格式:

* 0 -- 未压缩

* 1 -- ADPCM

* 2 -- MP3

* 5 -- Nellymoser 8kHz momo

* 6 -- Nellymoser

下面两位bits表示samplerate:

* 0 -- 5.5kHz

* 1 -- 11kHz

* 2 -- 22kHz

* 3 -- 44kHz

下面一位bit表示每个采样的长度:

* 0 -- snd8Bit

* 1 -- snd16Bit

下面一位bit表示类型:

* 0 -- sndMomo

* 1 -- sndStereo

audio数据区

不定

video tag 数据区

video信息 1byte

前四位bits表示类型:

* 1 -- keyframe

* 2 -- inner frame

* 3 -- disposable inner frame (H.263 only)

后四位bits表示编码器id:

* 2 -- Seronson H.263

* 3 -- Screen video

* 4 -- On2 VP6

* 5 -- On2 VP6 without channel

* 6 -- Screen video version 2

video数据区

不定

script tag 数据区

略n字...
相似回答