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