Система для поиска названий фильмов по кадру «Video Color»

Что за система?

«Video Color» - поисковая система для поиска названий фильмов по скриншоту. В отличие от аналогов всегда даёт исключительно чёткие ответы: «не найдено» или название фильма.

Когда появилась?

Сайт был запущен 6 апреля 2020 года.

Что может?

По скриншоту из видео на сервис может найти название фильма и его точную позицию в видео.

Где узнать подробности?

На сайте videocolor.aapsoftware.ru

Проблемы наполнения

Фильмов на свете очень много!

Согласно базе данных по кинематографу IMDb (на 2018 год), всего было снято около 2,6 миллионов кинолент, включая отдельные эпизоды сериалов, мультфильмы и короткометражки. Из этого колоссального числа можно выделить около 350 тысяч полнометражных кинокартин, около 390 тысяч короткометражных лент, около 97 тысяч сериалов (более 1 миллиона эпизодов) и около 67 тысяч документальных кинолент. Принято считать, что крупнейший в своем роде ресурс IMDb предоставляет наиболее корректную по данному вопросу информацию.

А вот информация с того же ресурса IMDb по состоянию октябрь 2020 года:

  • полнометражные фильмы — 552,366

  • короткометражные фильмы — 743,793

  • сериалы — 185,713

  • мини сериалы — 31,363

  • фильмы для телевидения — 121,419.

Есть разные версии одного и того же фильма!

Есть версии с разрешением FullHD, просто HD, есть с гораздо более низким разрешением для просмотра на мобильных устройствах, а есть с разрешением 4K или выше. Есть версии с соотношением сторон 16:9, 21:9 или 4:3 или Иногда встречаются версии с нестандартным разрешением и соотношением сторон. Существуют версии фильмов с низким битрейтом, а есть с высоким.

Итак, основные параметры, по которым могут различаться версии одного и того же фильма это:

  • соотношение сторон,

  • разрешение,

  • кодеки,

  • битрейт.

Логотипы и реклама — враги поисковой системы!

Логотипы каналов очень часто могут встречаться или на скриншотах или на видео. Если есть возможность, то всегда предпочтительнее использовать материал без логотипов. В крайнем случае можно положиться на то, что система справиться с поиском и с логотипом. Мы используем некоторые механизмы для решения данной проблемы.

Логотипы на изображениях могут быть, а могут и отсутствовать. Причём прсутствуют они не толлько в правом верхнем углу, но могут быть где угодно.
Логотипы на изображениях могут быть, а могут и отсутствовать. Причём прсутствуют они не толлько в правом верхнем углу, но могут быть где угодно.

Иногда встречаются видео, в которых имеются рекламные вставки. Такие версии фильмов нужно избегать, т. к. они будут давать неверную позицию кадра из-за дополнительного времени этих вставок.

Помощники

У нас небольшая команда, но сил вполне хватает для написания всего софта связанного с поиском и индексацией. Однако мы бы точно не справились без посторонней помощи.

Друзья и знакомые

Нам помогали наши родственники и друзья! Большое спасибо всем за помощь и моральную поддержку!

Любой желающий

Если Вы хотите помочь развитию проекта, то ниже мы расскажем как это сделать.

Наш проект нуждается в инвестициях

На сайте есть информация для потенциальных инвесторов.

Как помочь?

Нам нужна помощь в наполнении нашей базы данных. Если у Вас есть желание помочь и есть видео фильмы, которых нет в нашей базе данных, то проиндексируйте их с помощью нашей программы и поисковая система «Video Color» сможет найти название фильма и позицию кадра по скриншоту.

Зачем помогать?

Действительно, какие должны быть причины, чтобы тратить своё время на индексацию видео фильмов? Ну, помимо альтруизма?

Поисковая форма на сайт

Вы можете разместить на своих ресурсах форму для поиска видео по кадру, как на нашем сайте. В этом случае Вы становитесь заинтересованны в том, чтобы результаты поиска были как можно лучше.

Индексация фильма

Если Вы - фанат какого то фильма, или Вы причастны к созданию видео продукции, то у Вас может возникнуть желание дать возможность осуществлять его поиск в поисковой системе.

«Video Color Creator»

Приложение «Video Color Creator» предназначено для индексации видео фильмов и добавления информации о них в базу данных сайта videocolor.aapsoftware.ru. Программа предназначена для 64-разрядных версий Windows. Под другие ОС выпуск пока не планируется.

Загрузка и установка

Загрузить приложение можно с сайта aapsoftware.ru. После загрузки Zip-архива его содержимое необходимо извлечь в рабочий каталог и запустить файл VideoColorCreator.exe.

Настройка

Для работы потребуется ввести учётные данные, а перед этим зарегистрироваться на сайте. Для этого понадобиться Ваш E-mail.

Проверка фильма. Может он уже проиндексирован?

Чтобы не выполнять несколько раз индексацию одного и того же видео, перед его индексацией и добавлением попробуйте осуществить поиск по названию.

Индексация

Процесс индексации занимает несколько минут. Для фильмов с высоким разрешением и битрейтом может понадобиться минут 10 или больше (зависит от мощности ЦП).

Заполнение полей

Сами по себе индексные файлы со скринлистом дают не особо много информации конечному пользователю. Его интересует название, год выпуска, страна или список стран выпустивших фильм, актёры снимавшиеся в этом фильме и другая информация. Поэтому перед отправкой информации необходимо заполнить текстовые поля. Особенно полезными будут ссылки на сайты с дополнительной информацией, такие как IMDb, Kinopoisk, YouTube.

Ожидание

После отправки информации на сервер пройдёт ещё некоторое время, прежде чем пользователи смогут найти проиндексированный фильм на поисковом сайте. Сперва информация должна пройти проверку, а потом дождаться момента сборки базы данных. Да, да, Вы не ослышались. Дело в том, что информация о каждом кадре должна быть отсортирована определённым образом для того, чтобы поиск был максимально быстрым. Процесс сборки требует мощного компьютера и составляет несколько часов, поэтому осуществляется не чаще, чем раз в неделю. Запаситесь терпением, Ваш труд не пропадёт даром!

Статьи, посвящённые этой теме

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


  1. iliazeus
    21.12.2021 11:21
    +2

    Расскажите, пожалуйста, хотя бы немного о том, как устроена ваша поисковая система внутри? Как именно вы индексируете и храните такое множество кадров? Как справляетесь с тем, что кадры могут немного отличаться (шум, артефакты, лого каналов)?

    upd: прошу прощения, увидел ваши остальные статьи. Оставьте на них ссылки в тексте для таких как я, пожалуйста :)


    1. aapsoftware Автор
      21.12.2021 11:38

      Да, пожалуй Вы правы. Так и сделаю.


  1. vazhnov
    21.12.2021 11:41
    +1

    Раз вы просите сообщество в помощи с наполнением контента, то может стоит опубликовать это в Open Source? К примеру, MusicBrainz хранит слепки звуков, их БД доступна как общественное достояние и полно свободного ПО для работы с этой БД.


    1. aapsoftware Автор
      21.12.2021 11:45

      Пока думаю над этим. Дело в том, что планируемый объём данных будет довольно большим, порядка 15-20 ТБ и это должны быть данные на SSD. Требуется довольно мощное и специфичное железо, что большинству не по карману и уже накладывает определённые ограничения.


  1. dushaev
    21.12.2021 13:47

    А после можно будет продать эту систему как сервис для правообладателей, и будут банить ролики на тиктоке, да и не только


    1. aapsoftware Автор
      21.12.2021 13:52

      Основная идея сервиса - создать нечто подобное Shazam,но только для видео. А всё остальное - вторично.


  1. alexwlpr
    21.12.2021 13:49

    Загрузить приложение можно с сайта https://www.aapsoftware.ru/product.php?id=78 . После загрузки Zip-архива его содержимое необходимо извлечь в рабочий каталог и запустить файл VideoColorCreator.exe.

    Ссылка на приложение некорректная. Она ведёт на "Video Color Capture".


    1. aapsoftware Автор
      21.12.2021 13:50

      Вы правы, спасибо, я исправил.


  1. Chyk
    21.12.2021 13:49

    идея для фичи: как насчет уведомления пользователя о том что его поиск который он выполнял ранее нашел видео тк вы обновили базу и добавили новый хайповый сериал и тп


    1. aapsoftware Автор
      21.12.2021 21:33

      Идея вроде неплоха, но, если честно, я проектировал систему исходя из того, что она будет обрабатывать сотни поисковых запросов в секунду (даже сейчас на слабом неттопе даёт под сотню), и, если хотя бы половина из них будет иметь отрицательный результат, то даже база под эту информацию будет довольной большой. Не говоря уж о том, что потом эти запросы надо заново прогнать и отправить пользователю сообщение... Большая нагрузка. И нужен ли этот результат пользователю спустя неделю или месяц?


      1. Chyk
        21.12.2021 22:21
        +1

        так речь не идет о том чтобы каждый не удавшийся прогонять, тут есть несколько вариаций:
        1) предлагать пользователям уведомить о находке(возможно за деньги)
        2) тот который вас смутил количеством, уведомлять всех, но группировать похожие запросы и делать эту агрегацию раз в сутки - к примеру(ну и подумать о каких нибудь еще оптимизация)
        п.с. мне лично 1) больше импонирует


  1. alexwlpr
    21.12.2021 14:13

    Попробовал данный алгоритм в действии.

    Зарегистрировался, Проверил, что выбранного мной для теста фильма нет в библиотеке.

    Скормил приложению фильм "Цой". Не будем сейчас о самом фильме. Просто я киноман бывший (хотя бывших не бывает) и стало интересно, что там наснимали. Потом наделал скринов с того же файла через VLC. Штук 10, примерно. Не распознался ни один. Я могу предположить, что фильм попадает в выборку через некоторое время, но в приложении он был уже виден в поиске, когда я проводил эксперементы.


    1. aapsoftware Автор
      21.12.2021 16:05

      Спасибо за проделанную работу! Вы правы в списке фильмов приложения добавленный фильм появляется сразу, хотя проверка и добавление в базу происходят не так часто. В статье я указал, что сборка базы происходит раз в неделю, думаю, что через указанное время он там появится.


      1. alexwlpr
        21.12.2021 16:12

        Либо я слеп, либо вы добавили уже после прочтения мной абзац "Ожидание". Попробую через неделю.

        Если проект взлетит, то это будет очень удобно. Буквально на днях искал старый фильм по не очень хорошим скринам. Нашёл в конце концов, но это заняло время.

        Постараюсь в свободное время поглядывать за базой и дополнять.


        1. aapsoftware Автор
          21.12.2021 20:16

          Абзац был там с самого начала. Почему не обновляется сразу? Алгоритм требует перестройки всей базы (помимо базы с описаниями фильмов, она обычная) для быстроты поиска. Делать это после добавления каждого видео - слишком большие затраты и износ SSD. Поэтому обновление происходит через значительный промежуток времени.


          1. qw1
            22.12.2021 15:15

            Для такой такой проблемы есть стандартное решение: всё новое за день сливается в мелкую базу, которая индексируется в разы быстрее, например, ежечасно. Каждый день (или как удобнее) появляется новая маленькая база, а раз в неделю делаем полный ребилд, 7 мелких баз удаляем. А поиск ищет одновременно в нескольких базах, результаты объединяет.


            1. aapsoftware Автор
              22.12.2021 16:22

              Не всё так просто, на самом деле. Алгоритм работы такой, что для построения базы требуется файл указателей (некоторые подробности алгоритма есть в статьях). Он предназначен для быстрой работы с гигантским объёмом информации и сам тоже не маленький - 32 ГБ. Каждый день выделять по 32 ГБ (это не считая самих данных) - это около 214 ГБ в неделю быстрой SSD памяти. Тут ещё и износ и прочее. Если бы этим занимался Яндекс, Майкрософт или Гугл, то они бы на эти расходы чихали с высокой башни. А если этим занимается небольшая комманда с ограниченным бюджетом, то ...


              1. qw1
                22.12.2021 20:58

                32GB в день — пустяк, я думаю у меня столько SSD расходует на ребилде проектов ))

                Проверил, так и есть. SMART на рабочем SSD пишет 18+ TB host writes за 8к часов, т.е. 2+GB в час. И это не вусмерть компилировать непрерывно, а обычная разработка.


  1. KyberPrizrak
    21.12.2021 14:32

    В качестве предложения: можно использовать торрент-трекеры как источник контента. Есть небольшой опыт в этом деле (на одном из форумов часто не работали скринлисты, и я решил делать их самостоятельно): взял несколько самых дешевых VPS и один сайт для распределения задач. На VPS ставим transmission и vlc, по крону запускаем свои скрипты. Парсим форум, скачиваем torrent-файлы (оперируясь на раздел+название+размер раздачи), проверяем содержимое torrent-файла (что это не *.iso/*.bdmv/*.ifo), через API у transmission добавляем/удаляем раздачи, получаем их статус. Через cvlc делаем скрины (работает очень медленно, но я не нашел более всеядного варианта создания скринов по таймкоду).