SWF與FLV檔案格式

2021-04-08 16:00:28 字數 582 閱讀 6280

最近,因產品需要,開始研究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

FLV檔案格式

1.flv檔案格式相對於mp4,簡單很多。flv header 9bytes flv body a位元 1 有音訊 0 無音訊 f l v 0x01 0b00000a0v 0x00 00 00 09 版本位元組一般為0x01 頭長度 固定為9 flv body由一系列的tag組成,每個tag的結構如...

FLV檔案格式分析

flv header 一般比較簡單,包括檔案型別之類的全域性資訊,如圖 檔案型別 3bytes 總是flv 0x46 0x4c 0x56 否則.版本1byte 一般是0x01,表示flv version 1 流資訊1byte header長度 4bytes 整個檔案頭的長度,一般是9 3 1 1 4...

FLV檔案格式分析

flv header 一般比較簡單,包括檔案型別之類的全域性資訊,如圖 檔案型別 3bytes 總是flv 0x46 0x4c 0x56 否則.版本1byte 一般是0x01,表示flv version 1 流資訊1byte header長度 4bytes 整個檔案頭的長度,一般是9 3 1 1 4...