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

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