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

标签 python video hash hashlib

我需要一个视频文件的唯一哈希,它可以处理以下内容:
- 更改文件名
- 更改文件位置
- 文件大小完全相同但内容不同的两个文件(应视为不同文件)

虽然像 md5、sha1 这样的散列算法似乎是一个不错的候选者,但我需要一些只需几分之一秒即可生成的东西。
对于 2GB 的视频文件,生成 md5 校验和值需要 5 秒。
我认为处理时间长是自然的,因为必须读取大视频文件。

有没有我可以使用的东西,专门利用视频文件的属性,也许只使用视频文件头或其他东西进行比较。这里的目标是在几分之一秒内获得唯一的视频 ID。

最佳答案

作为第一种方法,我会考虑从前 10 Mb 加上可能的文件大小中获取 crc32。您将与此方法发生冲突并需要处理它们,但所有哈希算法都会发生冲突。

更新

或者,您可以使用实用程序 ffprobe(随 ffmpeg 一起提供)获取视频 header 并从中计算 md5。但是作为一个进程运行它会很慢,而且它似乎不存在作为 python 库导入。

关于python - 快速获取视频文件唯一标识的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47009793/

相关文章:

c# - 如何离线存储密码

python - 如何在 Tensorflow Fedarated 中加载 Fashion MNIST 数据集?

python - 如何在两个匹配之间插入模式?

python - Django post_save 在不覆盖模型 save() 的情况下防止递归

html - 嵌入YouTube视频响应解决方案

video - 将格式转换为 .mp4 时无法播放此视频

hash - Docker层信息发布v1.10

python - Django:检查对象是否最后一个链接到另一个

javascript - 为什么我可以在 css 中将 gif 设置为背景图片 url(),但不能将视频 mp4 设置为背景 url?

c# - 如何从重新实现 GetHashCode 的类中获取原始哈希码?