FLV文件中的onMetaData标记

时间:2009-12-22 11:23:51

标签: flv

我想知道FLV文件中的onMetaData标记是怎样的。当我以纯文本打开FLV文件时,我得到了这个:

FLV[][][][][](TAB)[][][][][][][]8[][][][][][][][][]  
onMetaData[]  
duration...   

文档说前3个字节是签名“FLV”,下一个字节告诉flv版本,下一个字节告诉我们音频或视频标签是否存在,接下来的4个字节是数据偏移量(大小)标题),它是9,在ascii中它是TAB代码。在TAB以第一个“前一个标签大小字段”开始主体后,接下来是0(4个字节),标签类型(1个字节)数据大小(3个字节)和时间戳(4个字节)流ID (总是0,3bytes)。之后仍然是:

[]  
onMetaData[]  
[][][][][][]  
duration...

我认为onMetaData标记是“1byte,newline”onMetaData“1byte,newline”但onMetaData标记和duration之间的7个字节是什么?

3 个答案:

答案 0 :(得分:2)

您需要在十六进制编辑器中查看此文件以从中获取有用的内容;文本编辑器只会显示不可打印的字符。

文件中的ASCII“onMetaData”位是标记头,它包含“duration”字段。紧接在“onMetaData”之后的三个字节是标签的BodyLength(uint24,big-endian),接下来的4个字节(“\ x00 \ x00 \ x00 \ x08”)描述下一个标签的名称长度,这是“持续时间。”

答案 1 :(得分:1)

我建议您使用hexedit工具http://www.hexedit.com/ 这将允许您以字符串格式查看所有信息.. 以及它有非常好的导航来分析字节。

除此之外,使用https://www.adobe.com/content/dam/Adobe/en/devnet/flv/pdfs/video_file_format_spec_v10.pdf获取有关flv文件中所有字节的详细信息

答案 2 :(得分:0)

请记住,元数据是使用AMF编码的。这意味着在字符串“onMetaData”之后,您有一个0x08来表示数组的开始,然后是2个字节来表示第一个元素的长度为字符/字节数