快速获取视频文件唯一标识的方法

3
我需要一个可以处理以下情况的视频文件唯一哈希值:
- 文件名更改
- 文件位置更改
- 两个文件具有完全相同的文件大小,但内容不同(应被视为不同的文件)
虽然像md5、sha1这样的哈希算法似乎是一个很好的选择,但我需要一些只需几秒钟即可生成的东西。
在一个2GB的视频文件上,要生成md5校验值需要5秒钟。
我认为长时间的处理时间是自然的,因为需要读取大型视频文件。
是否有什么方法可以使用视频文件的特性,也许只使用视频文件头进行比较。目标是以极短的时间内获得唯一的视频ID。

我自己也在苦苦挣扎着同样的问题。你找到了一个令人满意且运行相当快的解决方案吗? - eem
1个回答

1
作为第一步,我建议考虑从前10 MB中获取crc32并加上文件大小。使用此方法会产生碰撞,但所有哈希算法都有碰撞需要处理。 更新 或者您可以使用实用程序ffprobe(附带ffmpeg)获取视频头并从中计算md5。但是,作为进程运行它会很慢,并且似乎不存在可以导入的Python库。

好的,感谢您的建议。我已经考虑过这个问题了。但是我正在寻找更加优雅的解决方案,因为视频头可以在这里发挥作用(从而避免与更高概率的冲突)。视频文件头不一定位于视频文件的开头。 - Vishal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接