Система нелинейного планирования VOD автоматически выгружает монтажные скрипты в формате XML с применением XSL-трансформации. С помощью этого механизма был сформирован файл монтажного проекта, в котором присутствует необходимая и достаточная информация для вёрстки окончательного видео файла:
- ID смонтированного материала,
- названия исходных видео файлов в МАМ,
- начальные и конечные тайм-коды каждого фрагмента,
- типы фрагментов, возрастные ограничения, наличие плашки курения и т.п.
- для целей отладки добавлены метаданные - название материала и его идентификатор в системе планирования.
FFASTrans следит за папками, куда выгружаются монтажные скрипты, и запускает их обработку.
Первым этапом запускается интеграционный скрипт, который для каждого задания проверяет в МАМ наличие всех исходных видео файлов. Часто один и тот же материал необходимо вывести в несколько раз в различном виде, например, в SD и HD форматах, либо с разными вставками, поэтому для ускорения работы все видео файлы индексируются, а их индексы кэшируются. Таким образом сильно сокращается нагрузка на сетевое хранилище.
Когда все видео файлы проверены и проиндексированы, для каждого монтажного скрипта создаётся AviSynth скрипт с соответствующими параметрами. Далее FFASTrans находит нужный AviSynth скрипт, воспринимает его как источник видео, применяет к нему фильтры, описанные в рабочем процессе и запускает FFMPEG для получения сжатого видео нужного формата и битрейта. Готовое видео сохраняется в целевую папку или загружается на удалённый FTP сервер.
Склейка видео файлов, накладывание логотипов, приведение разнородных материалов к единому стандарту происходит непосредственно в момент кодирования видео. Когда FFMPEG запрашивает очередной видео кадр, AviSynth этот кадр формирует "на лету", применяя всю логику, описанную в соответствующем скрипте и передаёт FFMPEG результат своей работы - очередной видео кадр или аудио сэмпл.
Новые возможности
В рамках проекта мы реализовали не только основной процесс монтажа и кодирования VOD материалов, но и запустили несколько дополнительных веток конвейера. Например, качественное масштабирование SD в HD, наложение водяных знаков, автоматическую подрезку чёрных полей, определение и исправление геометрии видео с учётом анаморфной картинки, нормализацию звука и приведение к нужной громкости.
В отличие от монтажных станций, программное обеспечение конвейера работает в режиме вычислительной фермы, когда несколько серверов работают с общей очередью заданий. Это позволило увеличивать эффективную производительность конвейера. Например, при обработке большого объема видео во время подготовки основного пакета контента для запуска проекта OTT VOD.
Внедрение конвейера позволило выводить не один вариант итогового материала, а несколько вариантов - как для различных целевых платформ распространения VOD, так и с различным вторичным содержимым. Стало возможно планировать изменение VOD ресурсов в каталоге на протяжении полного цикла жизни. Например, первые несколько дней фильм может содержать один набор кросс-промо, а при появлении в VOD каталоге связанного контента вместо них отображать анонс следующей серии.
Рынок VOD OTT еще только развивается, и новые идеи по оформлению контента придумываются прямо на ходу. Поэтому и наш конвейер интенсивно дополняется новыми возможностями по запросам от «бизнеса». А открытость софта позволяет вносить все изменения практически мгновенно. Поэтому уже пару раз отправляли весь пакет контента на перемонтаж с учетом новых веяний (что заняло около недели работы фермы). Это было бы просто невозможно при сохранении ручной подготовки контента к публикации.
Автор статьи: Александр Соркин