Метод или класс Python для сравнения двух видеофайлов? - PullRequest
0 голосов
/ 03 февраля 2011

Я пытаюсь написать программу для сравнения файлов и отображения дубликатов в python.Кто-нибудь знает какие-либо хорошие функции или методы, связанные с этим?Я потерял Сорта ...

Ответы [ 3 ]

2 голосов
/ 03 февраля 2011

Если вы просто ищете точные дубликаты, сделайте MD5 хэш на обоих и посмотрите, совпадают ли они:

import hashlib

file1 = open('file1.avi', 'r').read()
file2 = open('file2.avi', 'r').read()

if hashlib.sha512(file1).hexdigest() == hashlib.sha512(file2).hexdigest():
  print 'They are the same'
else:
  print 'They are different'

Если нет, я бы попробовал OpenCV Python Bindings и проверьте, совпадают ли они кадр за кадром.

0 голосов
/ 03 февраля 2011

Я бы использовал os.walk для перехода по дереву файлов.

Для каждого файла я бы сохранял имя absolutepath +, проиндексированное по размеру файла и сигнатуре (первые 16 байтов? Хеш первых 512 байтов«Хэш полного файла»).

Когда вы закончите, вы получите набор размеров файлов;для каждого размера - файл подписи файла;для каждой подписи - список всех файлов, разделяющих эту подпись.Если ваша подпись файла не основана на полном файле или имеет значительную вероятность коллизий, вы можете выполнить более глубокое сравнение только этих конфликтующих файлов.

0 голосов
/ 03 февраля 2011

Сначала я бы сравнил имена файлов и размеры файлов.Если вы найдете совпадение, вы можете затем просмотреть все байты файла, чтобы сравнить их, хотя это, вероятно, довольно интенсивно.

Я не знаю библиотеки, которая могла бы делать это на python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...