尝试使用 Hachoir 从视频文件中检索元数据。工作得相当好,除非使用 'get' 或类似方法返回宽度和高度值。
我以为会是:
metadata.get('width')
但这会引发错误(对象没有“宽度”属性)。
当我运行以下命令时:
for data in sorted(metadata):
if len(data.values ) > 0:
print data.key, data.values[0].value
返回的只是来自“公共”组的信息。
当我使用:
metadata.exportPlaintext
...返回“普通”、“视频流”和“音频流”的信息。我可以简单地解析生成的“文本”项并去掉高度和宽度值,但我宁愿尝试使用 metadata.get('width') 或类似方法正确地完成它。
查看源代码,我想我可以使用以下内容:
for key, metadata in metadata.__groups.iteritems():
遍历元数据中的 ._ 组,但随后会抛出“'AsfMetadata'对象没有属性' _groups' - 我确信不应该是这种情况,因为我认为 'AsfMetadata' 是 MultipleMetadata 的子类() 其中确实有这样一个变量。
可能遗漏了一些非常明显的东西。