參考

  1. F4V/FLV Technology Center
    請直接看 Annex E. The FLV File Format,前面的東西看不懂。
  2. flv文件元信息(metadata)

Data Type


TypeComment
UI8Unsigned 8-bit integer value
UI16Unsigned 16-bit integer value
UI24Unsigned 24-bit integer value
UI32Unsigned 32-bit integer value


Byte Order


FLV 整數儲存方式是大頭派(big-endian),也就是 0x12345678 在檔案內就是 0x12, 0x34, 0x56, 0x78,而 intel cpu 卻是小頭派(little-endian),所以也就是在讀取整數時,需要做轉換。


The FLV Structure


FLV 包含一個表頭跟 N 個 tag 所組合而成,每一個 tag 後面會帶一個 PreviousTagSize,方便反向搜尋影片。

header表頭
PreviousTagSize0固定為 0
Tag1First tag
PreviousTagSize1size of first tag
Tag2Second tag
PreviousTagSize2size of second tag
.........
TagNLast tag
PreviousTagSizeNsize of last tag


The FLV Header


FieldTypeComment
SignatureUI8固定為 'F' (0x46)
SignatureUI8固定為 'L' (0x4C)
SignatureUI8固定為 'V' (0x56)
VersionUI8FLV version 目前為 1
TypeFlags[7~3]固定為 0
[2]1 表示有 Audio
[1]固定為 0
[0]1 表示有 Video
DataOffsetUI32資料起始位置(表頭大小),固定為 9。


The FLV Tag


TypeFlags[6~7]固定為 0
[5]1 表示為加密檔案。
[0~4]tag type, 8=audio, 9=video, 18=script data。
DataSizeUI24Data size,不包含 Tag 表頭。
TimestampUI24這個 tag 相對於 first tag 的時間,單位為毫秒。first tag 的 timestamp 固定為 0。
TimestampExtendedUI8timestamp 的最高位元。
StreamIDUI24固定為 0
TagDataUI8tag 資料


創作者介紹

邱小新の工作筆記

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()