1

У клиента есть коллекция обучающих видео, каждая из которых имеет следующую структуру:

  1. предварительный просмотр (или резюме)
  2. вступление (всегда идентично)
  3. повторяющаяся часть из предыдущего видео (необязательно)
  4. новый контент
  5. аутро

Мне поручено объединить эти видео, создав одно видео для каждых 10 видео, содержащее только ОДНО вступление, одно OUTRO и контент из всех 10 видео.

Проблема в переменных повторяющихся частях из предыдущего видео, которые я не хочу дублировать. Моей первой идеей было извлечь все кадры (или только ключевые кадры) с помощью ffmpeg и смешать их с помощью framemd5. Затем сравните полученный поток md5, чтобы решить, где останавливается повторяющийся контент.

Этот подход кажется слишком неумолимым, поскольку я не могу предположить, что один и тот же кадр кодируется абсолютно одинаково в обоих видео. Следующая идея состоит в том, чтобы сгенерировать гистограмму для каждого кадра, а затем сопоставить функцию гистограммы между видео с определенной степенью допуска (5%?).

Другая идея состояла в том, чтобы использовать OpenCV и выполнить matchTemplate для поиска похожих картинок, но это должно было бы выполняться на каждом кадре, и я думаю, что это очень быстро столкнется с проблемами производительности.

Есть ли проверенные и верные решения этой проблемы? Или, может быть, экспериментальные решения? Можно ли с помощью ffmpeg сгенерировать рамочную гистограмму так же, как работает framemd5?

Есть идеи, какую технику использует Youtube для соответствия защищенному авторским правом содержимому в загруженных видео?

0