FLV格式解析

1.FLV文件格式如下,由flv頭和一系列tag組成,tag又分為script tag、音頻tag、視頻tag。 PreviousTagSize表示上一個(gè)tag的大小,占位4Byte。

FLV Header PreviousTagSize0 Tag1 PreviousTagSize1 Tag2 ...
  1. FLV Header由9個(gè)字節(jié)組成,說(shuō)明如下
字段名稱(chēng) 字段大小 字段說(shuō)明
Signature 1Byte Signature byte always 'F' (0x46)
Signature 1Byte Signature byte always 'L' (0x4C)
Signature 1Byte Signature byte always 'V' (0x56)
Version 1Byte flv版本號(hào) (一般為0x01表示版本1)
TyepFlagsReserved 5bit 保留位
TypeFlagsAudio 1bit 音頻標(biāo)志位(1:存在音頻,0:不存在音頻)
TypeFlagsReserved 1bit 保留位
TypeFlagsVideo 1bit 視頻標(biāo)志位(1:存在視頻,0:不存在視頻)
DataOffset 4Byte FLV header 長(zhǎng)度(版本1為9)
  1. tag是由Tag Header和Tag Data組成,不同類(lèi)型的Tag其TagHeader部分總是相同,共11個(gè)字節(jié)。我們可以根據(jù)TagType知道后續(xù)的tag是音頻還是視頻,根據(jù)TimeStamp來(lái)進(jìn)行視音頻同步。

|---------------------------------------------------------------Tag ------------------------------------------------|

Tag Header Tag Data

|----------------------------------------------------------Tag Header---------------------------------------------|

TagType DataSize TimeStamp TimeStampExt StreamId
1Byte 3Byte 3Byte 1Byte 3Byte
1-2bit位:必須為0,保留位;第3bit位: 0表示未加密,1表示加密,一般默認(rèn)0;4-8bit位:8:音頻、9:視頻、18:script數(shù)據(jù); Tag Data的長(zhǎng)度,不包括11字節(jié)的Tag Header 時(shí)間戳,毫秒為單位,則意味著要將時(shí)間戳單位關(guān)系換算好;第一個(gè)tag時(shí),該值總是0 擴(kuò)展時(shí)間戳(當(dāng)時(shí)間戳不夠時(shí),當(dāng)做高8位,很少用) 流id,總是0
  1. flv文件第一個(gè)tag一般是script tag,script tag Header如下圖所示。scriptTag數(shù)據(jù)主要是文件的元數(shù)據(jù)信息Metdata,包括視頻時(shí)長(zhǎng)、分辨率、視頻幀率、碼率、音頻采樣大小等等信息。
    image.png
  1. flv的音頻tag。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡(jiǎn)介 FLV(Flash Video)是現(xiàn)在非常流行的流媒體格式,由于其視頻文件體積輕巧、封裝播放簡(jiǎn)單等特點(diǎn),使其...
    輕口味閱讀 1,208評(píng)論 0 0
  • FLV是一個(gè)二進(jìn)制文件,簡(jiǎn)單來(lái)說(shuō),其是由一個(gè)文件頭(FLV header)和很多tag組成(FLV body)。 ...
    zjjcc閱讀 3,216評(píng)論 1 3
  • FLV封裝格式 FLV(Flash Video)是Adobe公司推出的一種流媒體格式,由于其封裝后的音視頻文件體積...
    _zzbb閱讀 8,563評(píng)論 3 11
  • 概述 Flash Video(簡(jiǎn)稱(chēng)FLV),是一種網(wǎng)絡(luò)視頻格式,用作流媒體格式,它的出現(xiàn)有效地解決了視頻文件導(dǎo)入F...
    Damon_He閱讀 2,764評(píng)論 1 1
  • 之前的文章里已經(jīng)介紹了音頻碼流AAC和視頻碼流H.264,接下來(lái)就是要把他們打包并封裝格式了。 FLV用途 FLV...
    MrYun閱讀 2,653評(píng)論 1 3

友情鏈接更多精彩內(nèi)容