Необходимо разработать скрипт (возможно на Python), который автоматически вырезает клипы из видео на основе сходства с клипами из другого видео. Скрипт должен учитывать возможные трансформации кадров (например, кроп, масштабирование, растягивание) при сравнении.
Как должен работать: На вход подается два видео файла A и B, A - большой файл с длинным видео, B - короткий видеофайл который состоит из нарезки клипов из файла A. Скрипт должен найти схожие отрывки видео в длинном видео которые есть в коротком вырезать их и составить в новое видео C.
В идеальном результате видео C должно быть похоже на видео B но контент взятый из файла A.
Качество видео B может отличаться от качества видео A оно может содержать лого или тому подобное и быть не сильно трансформировано (кропнутое или растянутое) поэтому нужно предусмотреть возможность настройки порога сходства для определения схожих сцен.
Как мне видится процесс (вы можете предложить свой):
1. Извлечение кадров из обоих видео
Входные данные: два видеофайла, Выходные данные: Сохраненные кадры в форматах изображений (JPEG/PNG) в отдельных директориях.
2. Сравнение кадров.
(Входные данные: Директории с извлеченными кадрами из обоих видео.
- Процесс: Сравнение кадров с использованием алгоритмов выравнивания и ключевых точек (например, ORB ) или ваш вариант .
- Учет трансформаций: Скрипт должен учитывать возможные кропы, масштабирование и растягивание кадров или ваш вариант.
- Порог сходства: Возможность настройки порога сходства для определения схожих сцен.
- Выходные данные: Список пар схожих кадров с указанием их временных меток.)
3. Нарезка видео
- Входные данные: Оригинальное видео и список пар схожих кадров с временными метками.
- Процесс: Использование FFmpeg (или аналог) для нарезки выходного видео на основе временных меток схожих кадров.
- Выходные данные: Сохраненные видеоклипы.
Требования:
Сохраненный видеоклип может отличаться от видео B но не более чем на 80%, для теста предоставлю 3-4 примера .
Требования к технологиям: какие вам удобны, но видится что можно применить:
- Python
- Библиотеки: OpenCV, NumPy, FFmpeg
- Желательно скрипт сделать кроссплатформенным (Windows, MacOs)