我想知道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个字节是什么?
答案 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个字节来表示第一个元素的长度为字符/字节数