- 綠色版查看
- 綠色版查看
- 綠色版查看
這個工具的主要功能是查看FLV的文件結構,幫助我們理解FLV格式。另外,如果涉及到處理flv文件的開發,這個工具對于查看處理結果非常有幫助。因此我覺得有必要寫一個使用說明,希望這個工具能夠給大家提供幫助。
打開后的界面如下圖所示。
先說一下界面布局:左上方是FLV文件的結構樹,右邊是FLV文件的字節流數據;左側結構樹下面依次是結構樹的信息等級選擇、高速模式選擇、文件分析用時及進度條等;下方是分析文件的地址顯示以及文件選擇按鈕。下面詳細介紹一下相關部分。
結構樹及信息等級
FLV結構樹是這個工具最重要的顯示信息,用戶可以直觀的查看當前FLV文件的結構。FLVParse默認FLV文件結構樹的形式為:File Header + Metadata Tag(1個) + Video or Audio Tags(按順序)。
結構樹的信息詳細程度是按等級劃分的,之所以要分等級,是為了區分顯示信息的詳細程度,因為不同程度的分析對于分析所用的時間影響是比較大的(主要在UI界面上),越詳細的信息等級占用分析時間越長。一共有6個等級,按從簡單到詳細介紹如下。
only section position info —— 只有每個section的位置信息,如下圖所示。其中每個section后的方括號里是位置信息(十六進制表示),每個“Pre Tag Size”后面的數字表示size的大小(十進制表示),Video&Audio Tag按照在文件中的順序依次排序標號;
file header info, metadata info —— 只有File Header + Metadata Tag的詳細信息,如下圖所示。其中File Header的詳細結構信息會在子樹中列出,并在每項后面標示該項的值;Metadata Tag類似,包含Tag Header和Tag Data兩個子樹,并且對應子項的詳細信息也都列出;
file header info, metadata info, tag position info —— 包含File Header + Metadata Tag的詳細信息,Video&Audio Tags的位置信息,以及Pre Tag Size信息,如下圖所示;
file header info, metadata info, tag section position info —— 比上個等級多出Video&Audio Tags的Tag Header和Tag Data的位置信息,如下圖所示;
file header info, metadata info, tag header info —— 比上個等級多出Tag Header的詳細子項信息,如下圖所示;
file header info, metadata info, tag info —— 比上個等級多出Tag Data的詳細子項信息,如下圖所示。
FLV字節流數據顯示
右側顯示了FLV文件的數據,可以讓用戶方便地查詢對應位置上的字節。每一行都以一個十六進制的位置開始,該位置為相對于文件開頭的位置。每一行有十六個字節,每個字節按高4位和第4位顯示2個十六進制的字符,用戶可以滑動滾動條查看任意位置的字節。
當用戶選中左邊結構樹中的某項時,右邊數據會自動選中對應的數據區域(綠色),根據不同項的類型,選中的區域大小也會自動對應。
高速模式
這個選項是為了解決分析比較大的FLV文件時,用戶等待時間過長的問題。
普通模式時,分析過程為阻塞模式,即主線程分析完畢后刷新界面,用戶才可以繼續操作。
高速模式時,為非阻塞模式,主線程分析一小部分后立即返回刷新界面,響應用戶操作;另外一個線程會繼續分析剩余大部分文件,直到分析完畢自動結束線程。因此高速模式時,用戶會看到結構樹的滾動條一直在滑動,這是因為后臺分析線程在不斷向結構樹里添加子項。需要注意的是,當后臺分析線程還沒有結束,如果用戶打開新的文件進行分析,有可能出現錯誤的分析結果。這個目前沒有進行測試,我想應該是這樣的。
這里需要提一下,其實真正分析文件的時間并不會特別長,即使幾百兆的文件,幾十秒內應該沒有問題,時間主要消耗在MFC的樹型控件CTreeCtrl上。為了開發效率,FLVParse使用了MFC控件,但是CTreeCtrl在結構比較復雜,子項比較多的時候,效率會出現比較大的下降。當子項超過10000的時候,再進行添加的時間大大變長,幾乎到了無法忍受的程度,好在還算穩定,沒有出現崩潰等現象。粗略估計,每次分析文件,花在更新UI界面上的時間要占總耗時的90%以上,而且對于越大的文件這個比例占的越大。
分析耗時
耗時包括分析文件結構耗時和更新UI界面耗時兩部分,每次分析完畢都會顯示結果。大家還可以根據進度條來估算分析需要等待的時間。
FLVParse一般的操作步驟為:
選擇結構信息等級 --> 根據文件大小選擇是否“高速模式” --> 點擊“瀏覽”選擇要分析的文件 --> 分析完畢后選中結構樹中某項 --> 查看數據區對應該項的字節數據(或通過滾動條查看某位置字節數據)
注意事項:
1、每次改變信息等級后,要重新打開一次文件,目前不支持動態更新,以后有機會完善此功能;
2、5個等級的信息對于分析時間的區分還是比較明顯的,建議大家每次分析之前選擇合適的等級;
3、FLVParse默認FLV文件只有一個Metadata Tag,如果有多個的話,后面的會略過;
4、FLVParse對于Metadata子項的分析,目前只支持DOUBLE,BOOL和STRING三種類型,遇到其他類型,則會將該項與其后的項都忽略,因此有可能出現metadata的array size與實際顯示的不相符的情況;
5、對于比較大的文件(10M以上),建議大家選擇高速模式,否則等待的過程將很漫長,而且要注意下一次分析時確保上一次分析已經結束;
6、對于metadata的分析部分,可能還有一些bug,但不影響其他Tag的分析,經簡單測試,該工具對FLV結構的分析是比較準確的,大家可以放心使用;
您的評論需要經過審核才能顯示
有用
有用
有用