Как стать автором
Обновить

Комментарии 19

В закодированном видео современными кодеками в фреймах сохраняется разница между соседними кадрами. При переходе между «шотами» эта разница очень заметна. Ключевые фреймы легко отфильтровываются.
Вы правы, мы изначально этим пользовались. Но разница между соседними фреймами даёт ложные срабатывания в динамичных сценах. А ещё она не детектит переходы, когда шоты плавно перетекают друг в друга фейдами. В итоге пришлось перейти на нейронки.
Нефига не понял, но очень интересно. Как будто чужой диплом читаю ))
А как подобный алгоритм справляется с такими фильмами, где присутствует сплит-экран, например как The Sisters Де Пальмы (2 экрана), Timecode Фиггиса (4 экрана), Charly Нельсона и тп?
Хороший воспрос) Если использовать только фичи видеоряда, то, скорее всего, не сработает. Но если добавить звук (или использовать только звук), это может решить проблему.

Какая приятная статья!
Давненько такого на хабре не читал. Спасибо большое!

Хабр здорового человека, где снова пишут про разработку

Я не очень понял про алгоритм динамического программирования с сложностью N^3 * K, ожидал увидеть логарифм, ведь при нахождении первой сцены N должно уменьшаться на количество шотов отобранных для первой сцены.

N^3 * K присутствует только в вариации Hnrm. Для нормализации, после выбора каждой сцены, необходимо находить самое оптимальное разбиение фильма на сцены с учетом выбранной сцены. В итоге получается, что каждый раз решается полная задача оптимизации, что и приводит к высокой вычислительной стоимости. Можно воспользоваться различными оптимизациями (типа memoization или замена рекурсии на итеративность и последующее распараллеливание), но все равно алгоритм достаточно медленный.
Пробовали. Эта штука режет видео на шоты, а не на сцены. Но и со своей задачей она справляется не очень. В динамичных видео, где кадры одного шота сильно отличаются друг от друга, она детектит склейки там, где их нет. Плавные переходы, когда шоты фейдом перетекают друг в друга, она не детектит. Ну и подбирать трешхолды под каждый фильм отдельно тоже не хочется как-то.
И весь этот computer science, как всегда, чтобы в правильное место всобачить рекламу. Ох, эту бы энергию — да в мирных целях.
А если фильм показывается не в хронологической последовательности?
Если есть единство места, времени и персонажей в разных частях фильма это одна или несколько сцен? Самый очевидный пример фильмы с путешествием во времени или наблюдение одного и того-же события с разных точек зрения.
Мы считаем, что это разные сцены, если они разделены другими сценами. При производстве фильма, скорее всего, их снимают друг за другом в один день, чтобы экономить деньги.
Александр здравствуйте! У меня вопрос не совсем по теме данного поста, но очень надо разъяснение специалиста. К ivi API есть возможность подключения с целью получения контента на моем ресурсе? Т.е имеющий в ivi подписку клиент, авторизуется и просматривает контент через мой сайт?
Здравствуйте! Я не в теме, но кажется, такие вопросы решаются через партнёрскую программу. Попробуйте написать на почту или позвонить по телефону, которые указаны на этой странице: www.ivi.ru/info/partners
Мы уже умеем делить видео на шоты. Осталось эти шоты собрать в сцены.

Возможно, я пропустил, но не нашёл этого в статье. Можешь рассказать и об этом?

В статье про это нет. Про нашу текущую модельку я пока рассказать не могу, но выше в комментариях упоминали PySceneDetect. Мы с неё начинали pyscenedetect.readthedocs.io/en/latest Если коротко, то она считает статистики по разнице между соседними кадрами, и там где кадры сильно отличаются друг от друга, считает что произошла склейка. Но в сложных местах, как я уже писал, она работает плохо.
Сделайте это! Алгоритм сжатия сериалов. Вас и отблагодарят, но и попытаются убить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий