FLV科普6 FLV Tag以及Tag頭資訊解析

2021-07-09 02:43:12 字數 1382 閱讀 1315

reserved  佔2位   固定為0

filter          佔1位    表示是否經過濾波  一般為0

datasize  佔24位 表示當前tag的後續長度等於當前整個tag長度減去11(tag頭資訊)

timestamp佔24位為相對第乙個tag的時間戳,因此第乙個tag的時間戳為0。也可以將所有tag的時間戳全配置為0,解碼器會自動處理。 每個tag的第五個位元組開始

timestampextended 佔8位  時間戳總共占用32位  這裡指示它的高8位

streamid 佔24位 一直為0

以上總共11個位元組  為tag頭資訊

解析相關頭資訊

如果tagtype為8  解析音訊頭資訊 詳見 flv科普8 flv音訊頭資訊

如果filter為1  解析相關濾波資訊 

解析資料資訊

如果tagtype為8  解析具體音訊資料 flv科普9 flv音訊資訊

乙個tag可以擁有多個nal單元

如果tagtype為18  解析具體指令碼資料資料(為scriptdataobject,但該項因為內容不固定,所以在flv檔案中可以沒有該tag內容)  詳見flv科普12 flv指令碼資料解析-metadata tag解析

標準文件:

以下圖選定區域的乙個tag為例「

reserved  佔2位   固定為0    當前值為:00 (圖中12中的前兩位為00)

filter          佔1位   一般值為0 不濾波  當前值為:0

tagtype   佔5位   表示tag的型別 當前值為12 (前3位不算 10010 (18表示指令碼資料))

datasize  佔24位 表示當前tag的後續長度 當期值為 00 01 74 (372) 等於當前整個tag長度-11 = 383-11 

timestamp佔24位為相對第乙個tag的時間戳,因此第乙個tag的時間戳為0。值0x:00 00 00

timestampextended 佔8位  時間戳總共占用32位  這裡指示它的高8位 值0x: 00

streamid 佔24位 一直為0 值:0x 00 00 00

以上總共11個位元組  為tag頭資訊

FLV檔案解析

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

flv 格式分析

flv是流 封裝格式,我們可以將其資料看為二進位制位元組流。總體上看,flv包括檔案頭 file header 和檔案體 file body 兩部分,其中檔案體由一系列的tag及tag size對組成。因此乙個flv檔案看上去是下面的結構 一 file header結構 file header在當前...

什麼是FLV格式,及FLV格式如何應用

下面的三個概念都是因flv 而起了 如果還不清楚流 那麼請看這裡 rtmp協議 real time message protocol 即 實時訊息協議 fms flash media server 其原稱為fcs flash communication server 到此,我想到了去年 呵呵,關於再...