Комментарии 19
В закодированном видео современными кодеками в фреймах сохраняется разница между соседними кадрами. При переходе между «шотами» эта разница очень заметна. Ключевые фреймы легко отфильтровываются.
+3
Нефига не понял, но очень интересно. Как будто чужой диплом читаю ))
+5
А как подобный алгоритм справляется с такими фильмами, где присутствует сплит-экран, например как The Sisters Де Пальмы (2 экрана), Timecode Фиггиса (4 экрана), Charly Нельсона и тп?
+1
Какая приятная статья!
Давненько такого на хабре не читал. Спасибо большое!
+5
Хабр здорового человека, где снова пишут про разработку
+9
Я не очень понял про алгоритм динамического программирования с сложностью N^3 * K, ожидал увидеть логарифм, ведь при нахождении первой сцены N должно уменьшаться на количество шотов отобранных для первой сцены.
0
N^3 * K присутствует только в вариации Hnrm. Для нормализации, после выбора каждой сцены, необходимо находить самое оптимальное разбиение фильма на сцены с учетом выбранной сцены. В итоге получается, что каждый раз решается полная задача оптимизации, что и приводит к высокой вычислительной стоимости. Можно воспользоваться различными оптимизациями (типа memoization или замена рекурсии на итеративность и последующее распараллеливание), но все равно алгоритм достаточно медленный.
+1
Мы в своем проекте вот это использовали и оно нормально отрабатывало https://pyscenedetect.readthedocs.io/en/latest/features/ не пробывали?
+1
Пробовали. Эта штука режет видео на шоты, а не на сцены. Но и со своей задачей она справляется не очень. В динамичных видео, где кадры одного шота сильно отличаются друг от друга, она детектит склейки там, где их нет. Плавные переходы, когда шоты фейдом перетекают друг в друга, она не детектит. Ну и подбирать трешхолды под каждый фильм отдельно тоже не хочется как-то.
+1
И весь этот computer science, как всегда, чтобы в правильное место всобачить рекламу. Ох, эту бы энергию — да в мирных целях.
+2
А если фильм показывается не в хронологической последовательности?
Если есть единство места, времени и персонажей в разных частях фильма это одна или несколько сцен? Самый очевидный пример фильмы с путешествием во времени или наблюдение одного и того-же события с разных точек зрения.
Если есть единство места, времени и персонажей в разных частях фильма это одна или несколько сцен? Самый очевидный пример фильмы с путешествием во времени или наблюдение одного и того-же события с разных точек зрения.
0
Мы считаем, что это разные сцены, если они разделены другими сценами. При производстве фильма, скорее всего, их снимают друг за другом в один день, чтобы экономить деньги.
+1
Александр здравствуйте! У меня вопрос не совсем по теме данного поста, но очень надо разъяснение специалиста. К ivi API есть возможность подключения с целью получения контента на моем ресурсе? Т.е имеющий в ivi подписку клиент, авторизуется и просматривает контент через мой сайт?
0
Здравствуйте! Я не в теме, но кажется, такие вопросы решаются через партнёрскую программу. Попробуйте написать на почту или позвонить по телефону, которые указаны на этой странице: www.ivi.ru/info/partners
0
Мы уже умеем делить видео на шоты. Осталось эти шоты собрать в сцены.
Возможно, я пропустил, но не нашёл этого в статье. Можешь рассказать и об этом?
0
В статье про это нет. Про нашу текущую модельку я пока рассказать не могу, но выше в комментариях упоминали PySceneDetect. Мы с неё начинали pyscenedetect.readthedocs.io/en/latest Если коротко, то она считает статистики по разнице между соседними кадрами, и там где кадры сильно отличаются друг от друга, считает что произошла склейка. Но в сложных местах, как я уже писал, она работает плохо.
+2
Сделайте это! Алгоритм сжатия сериалов. Вас и отблагодарят, но и попытаются убить.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как мы научились делить видео на сцены с помощью хитрой математики