Можно сделать оффлайн-поиск так:
Для каждого извлеченного кадра видео вычислять его хэш (phash или dhash) и записывать его вместе с идентификатором файла видео и номером кадра в таблицу в СУБД SQLite.
Затем выполняешь запрос для поиска кадров-кандидатов с применением расстояния Хэмминга:
SELECT video_id, frame_num
FROM hashes_table
WHERE hamming_distance(image_hash, frame_hash) < N;
Другие способы предложены в
opencv-finding-picture-frame-in-video