SWF与FLV文件格式

最近,因产品需要,开始研究FLV与SWF的文件格式,顺便编写了FLV与SWF文件的解析工具。

1. FLV File Format

    FLV文件格式比较简单,就是一个FLV Header加上一个FLV Tag序列构成的FLV Body。

    FLV Tag可以是Video,Audio和Script.

    但是,当前的FLV文件里不能容纳2个及两个以上的同类型的Stream;应该说这种设计还是比较落后的。很多其它文件格式,如Asf,RM,WMV等都可以容纳多个同类型的流。

2. SWF File Format

    SWF的文件格式比较复杂,尤其对于解析来说,里面使用了好多Bit Value,动态指定后面采用多少Bit表示一个特定值,再加上字节对齐,相对比较麻烦。另外,版本6及其以后的版本在首字节用"C"来表示数据采用了ZLib压缩,可恶的是竟然把SWF Header也进行了压缩,导致在解析文件头的时候不得不对后面所有的数据进行解压,这种设计在我个人看来有失水准。

3. Byte Order

    SWF和FLV使用不同的Byte Order:

    SWF : Little-Endian

    FLV  : Big-Endian

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章