Журнал ТКТ 03 (718) 2020. Илья Сахаров, генеральный директор «Мастер-Продакшн»
Вначале было ТЗ
Лет десять назад наши программисты совершенно разными путями пришли из общеприкладного программирования в медиабизнес. Кто-то работал режиссёром, кто-то занимался автоматизацией, кто-то руководил теми или иными отделами. Спустя время все они встретились под крышей одного молодого, но подающего надежды, телеканала. Первым делом было написано ТЗ на закупку автоматизации, потом просканировали рынок и…не нашли ни одного предложения за сколь-нибудь адекватные деньги. Недолго думая, решили писать сами, и уже через год случился первый релиз.
Полтора года назад наше детище начало полноценно функционировать и обеспечивать вещание на телеканале, успевшем за это время повзрослеть и остепениться. Шаг за шагом болезни молодости комплекса были вылечены, а выбранная архитектура полностью подтвердила свою состоятельность и эффективность. Этот же комплекс обеспечил рождение и существование еще нескольких телеканалов. Причем, запуск одного из них был произведен менее чем за сутки. Кроме того, мы легко перешли с одной аппаратной платформы на другую, более современную, тем самым, снизив стоимость модуля вывода сигнала более чем в 10 раз.
В общем, учитывая, что мы делали этот проект изначально для себя, и делали его не потому, что нам кто-то сказал его делать, а просто потому, что нам этого хотелось, проект получился красивым, изящным, актуальным, эффективным и просто замечательным.
Обеспечение полного цикла производственного процесса
Наш комплекс предоставляет:
- Инструменты для внедрения новых видеоматериалов и их рецензирования (назначение ключевых слов, присвоение свойств и параметров).
- Возможность поиска, сортировки и просмотра имеющихся медиаматериалов.
- Инструменты для подготовки плейлиста и создания разнообразных правил его генерации с учётом свойств и параметров видеоматериалов.
- Возможность индивидуальной или групповой привязки существующих видеоматериалов к тем или иным шаблонам и классам графического оформления (где, когда и как показываем логотип/титры/плашки/etc.), создания таких шаблонов и классов.
- Инструменты для проведения полноценных прямых эфиров и их графического оформления.
- Возможность получения разнообразной статистической информации, включая, как стандартные формы отчетов (например, в РАО), так и возможность создавать свои, уникальные шаблоны отчетности.
- Возможность интеграции всевозможных интерактивных сервисов.
- Возможность как ручной коррекции проигрываемого плейлиста, так и автоматической. В автоматическом режиме плейлист останется актуальным, даже в случае возникновения сбоев в воспроизведении отдельных элементов и новости.
- Привязки любого элемента плейлиста к тому или иному событию или времени выхода в эфир. Привязки могут быть как «фиксированные» (не раньше и не позже), так и «плавающие» (не раньше или не позже).
Уникальные коммерческие условия поставки и использования
Уникальность предлагаемых условий поставки и использования нашего комплекса заключается в простом, но пафосном тезисе: мы хотим не столько «заработать», сколько «поделиться». Тем не менее, узнав нашу позицию, не стоит торопиться относить нас к сумасшедшим и ненадежным, и вот почему:
1. Ничто человеческое нам не чуждо, и монетизация наших трудов нам важна. Однако необходимо учесть, что наш проект с самого начала не являлся коммерческим и разрабатывался не в угоду будущим продажам, но ради иных конкретных практических целей. И цели эти уже успешно достигнуты. Другими словами, мы уже получили то, что ожидали получить.
2. Лицензионные условия использования некоторых сторонних составляющих нашего комплекса обязывают открыть наш исходный код, и в отличие от большинства конкурентов, мы считаем необходимым выполнять взятые на себя обязательства. Следовательно, любое распространение нашего программного продукта может происходить только на безвозмездной основе, с предоставлением любому желающему получить исходные коды нашей системы автоматизации.
3. Таким образом, мы не только способствуем обострению конкурентной борьбы на рынке телевизионных программных продуктов (что естественным образом ведет к повышению качества всех представленных на этом рынке продуктов), но и в полной мере реализуем свои профессиональные амбиции и стремления.
Кроме того, мы обретаем возможность получать достаточное вознаграждение за оказание услуг по техническому сопровождению. Мы производим развертывание нашей системы автоматизации на аппаратной платформе телеканала и осуществляем круглосуточную техническую поддержку этой системы.Тем не менее, у телеканала есть абсолютно легальная возможность, в любой момент, отказаться от наших услуг и продолжить использовать комплекс, производя необходимое техническое сопровождение своими силами (и такие телеканалы реально имеются).
Низкая стоимость необходимого оборудования
Минимальная ориентировочная стоимость комплекта оборудования, достаточного для воспроизведения видеоматериалов в эфир, не превышает стоимости домашнего «игрового» компьютера. Но следует понимать, что в эту стоимость входит компьютерное оборудование, которое хоть и способно обеспечить вещание 24/7, но лишь при минимальном графическом оформлении эфира и без какого-либо резервирования. Такой подход вряд ли применим для полноценного телевизионного канала.
Поэтому, в общем случае, наши рекомендации таковы: два вещательных сервера (основной и резервный), два сервера автоматизации (основной и резервный), две системы хранения медиаматериалов (основная и резервная) и, при необходимости, сервер обеспечения прямого эфира. Ориентировочная минимальная стоимость данного комплекта составит чуть более €50 000 (включая сервер обеспечения прямого эфира). Приведенные рекомендации позволят реализовать резервирование всех критических узлов комплекса и полноценное графическое оформление эфира.
Отсутствие специфических требований к рабочим местам пользователей
Единственное техническое требование к рабочему месту любого пользователя нашего комплекса (будь то редактор, администратор, архивариус, медиапланер и т. п.) – это возможность запустить кроссплатформенную среду Microsoft Silverlight (Windows, MacOs, Linux). Так же есть возможность интерактивного взаимодействия с репликой через обычный HTML-5 интерфейс. Например, ведущие прямого эфира могут использовать планшеты iPad и любые другие.
Необходимо отметить, что в случае стандартного развертывания нашего комплекса мы используем классическую схему аутентификации пользователей на рабочих местах через указание имени пользователя и пароля. Однако если у телеканала существуют повышенные требования к процессу аутентификации, рабочие места должны быть оснащены соответствующими идентификационными считывателями. Это могут быть сканеры электронных ключей и/или отпечатков пальцев и/или радужной оболочки глаза и т.п.
Прозрачная интеграция сторонних решений
Для любого динамически развивающегося телеканала интеграция сторонних решений жизненно необходима. И решения эти могут быть самыми разнообразными, как и причины, вынуждающие проводить эту самую интеграцию. Например, наш комплекс, на текущий момент, не имеет полноценных инструментов для учета рекламного трафика, отслеживания договоров и т. п. (такая система находится у нас лишь в стадии разработки). Если телеканал имеет высокий рекламный трафик, то, естественно, такой телеканал использует тот или иной сторонний комплекс учета этого трафика. И наша система обладает возможностью принимать и учитывать любую необходимую информацию, поступающую извне в том или ином виде. Или, например, системы управления медиаматериалами (МАМ), если на телеканале существует сколько-нибудь значимый и разветвленный процесс производства (нелинейный монтаж, звуковое сведение и т.п.), то, наверняка, такой телеканал использует сторонние решения по учету и управлению медиаактивами. И наша система, опять же, способна взаимодействовать с любыми такими продуктами. Программисты компании разработают любую необходимую адаптацию.
Как именно можно достичь прозрачности интеграции сторонних решений, когда не существует (да и не может существовать) сколько-нибудь унифицированных способов взаимодействия между совершенно разными комплексами? Мы смогли найти, как нам кажется, единственно-оптимальный ответ на этот вопрос: любое взаимодействие между «незнакомыми» системами всегда обладает одним общим подходом – это создание устойчивых связей между теми или иными объектами и/или процессами двух систем. А следовательно необходимо максимально универсализировать наши внутренние механизмы управления такими связями.
Несмотря на то, что интеграция любого нового решения хотя и требует нашего прямого единоразового вмешательства, но, благодаря архитектуре нашего комплекса, вмешательство это будет иметь минимальный и нетрудоемкий характер. А значит, любая интеграция любого стороннего решения будет произведена в кратчайшие сроки. Именно это позволяет нам говорить о прозрачности.
На текущий момент уже реализована интеграция с такими программными продуктами, как:
- Автоматизированная система размещения рекламы VIMB производства Группы компаний «Видео Интернешнл»;
- Автоматизированная система создания плейлистов Powergold, производства Micropower Corporation;
- Система управления медиаматериалами Final Cut Server производства Apple Inc.;
- Программные платформы различных поставщиков интерактивных сервисов (смс-операторы, Яндекс-погода и др.).
Поддержка всего спектра интерактивных сервисов
Часть наших программистов, до участия в этом проекте, много и плотно работали над разработкой sms-, ivr-, online-сервисов для медиаресурсов, телеканалов, радиостанций, рекламных и мотивационных кампаний тех или иных международных и отечественных брендов. В результате, мы не только способны реализовать любые популярные (и не очень) интерактивные сервисы, но также можем предложить сервисы, которые до этого момента не могли получить популярность на территории РФ. Но не из-за невостребованности, а из-за технических ограничений, которые мы, благодаря опыту и наработкам наших программистов, смогли преодолеть.
Отсутствие жесткой привязки к используемому оборудованию
Несмотря на то, что мы настоятельно рекомендуем использовать в качестве вещательной платформы, плату DeckLink HD Extreme 3D производства Blackmagic Design Pty. Ltd. ввиду потрясающего соотношения цена/качество, мы, тем не менее, можем использовать любое другое, существующее на рынке, соответствующее оборудование, например AJA Corvid 44 или 88. Архитектура нашего комплекса позволяет менять аппаратную часть без каких-либо значительных трудозатрат и в кратчайшие сроки.
На текущий момент, в комплексе помимо упомянутой платы, уже реализована поддержка Inca XD-200 и Inca PCI-100, производства Inscriber (Harris).
Полноценное всеобъемлющее резервирование и отказоустойчивость
Наша система автоматизации в своей основе имеет модульную архитектуру. Все модули практически автономны и могут быть разнесены по разным аппаратным платформам, каждая из которых, в свою очередь, может представлять собой отказоустойчивый высокодоступный кластер. Тем не менее, такой подход хоть и обеспечивает отказоустойчивость, тем не менее, связан со значительными финансовыми затратами.
Ниже дан список модулей и их привязка к аппаратной платформе на основе рекомендуемой конфигурации:
Несмотря на то, что в данной конфигурации одна и та же аппаратная платформа обеспечивает функционирование нескольких модулей одновременно, это не мешает реализовать многоуровневое резервирование, как на аппаратном, так и на программном уровне. Эфирный сигнал резервируется благодаря нескольким (двум или трем) вещательным серверам. Если сервера три, то два из них вещают в параллельном режиме, согласно одному и тому же плейлисту, а третий использует свой независимый плейлист (например, генерируемый в автоматическом режиме). Такой подход позволяет, при возникновении аппаратного сбоя на основном сервере, продолжить вещание со второго сервера при минимальном прерывании актуального сигнала. Обычно длительность определения сбоя («стоп-кадр» или пропадания звука и/или изображения) выставляется в восемь секунд. Это значение можно сократить, но чем меньше «окно» определения, тем, естественно, выше вероятность ложных срабатываний.
В случае, когда проблема возникает не на аппаратном уровне, а, например, на уровне плейлиста (в видеоматериале случайно просчитали тишину и/или «черное поле» и т. п.), тогда второй сервер, который воспроизводит тот же плейлист, что и первый, также окажется в некорректном состоянии и воспроизведение будет передано третьему серверу, вещание которого никак не связано с плейлистом первых двух серверов. Такой подход позволит избежать подобных ошибок. Однако в приведенной схеме прослеживается определенная избыточность, которая не для всех телеканалов будет рентабельной. Учитывая низкую вероятность аппаратного сбоя, мы считаем, что достаточно двух серверов, основной из которых вещает по главному плейлисту телеканала, а резервный сервер воспроизводит копию этого плейлиста, а в случае аварии хранилища видеоматериалов, он воспроизводит в цикле закешированный фрагмент плейлиста. Размер кэша задаётся параметром и составляет обычно много часов.
Следующая важная, в плане резервирования, часть нашего комплекса – это сервер автоматизации. В зависимости от выбранной аппаратной реализации, этот сервер может состоять из одного или двух независимых аппаратных модулей. В последнем случае появляется возможность разделить соответствующие программные модули между двумя аппаратными и повысить в целом, как производительность сервера, так и его надежность. Кроме того, при наличии двух серверов автоматизации, каждый из которых, в свою очередь состоит из двух независимых аппаратных модулей, появляется возможность развернуть отказоустойчивый кластер высокой доступности. Это означает, что если в любом из двух серверов произойдет какое-либо нарушение функционирования, второй сервер автоматически и в реальном времени возьмет на себя весь необходимый функционал и для всех внешних подключений внутренний сбой в кластере останется незамеченным.
Как уже было сказано, на базе высокодоступных кластеров может быть реализована любая часть нашего комплекса. А, следовательно, и отказоустойчивость всей системы автоматизации можно повышать до бесконечности.
Отсутствие ограничений на графическое оформление эфира
Под отсутствием ограничений мы подразумеваем возможность одновременно размещать в эфире любое количество любых элементов оформления (анимации, надписи, бегущие строки, «барабаны», плашки и т. д.) Кроме того, при необходимости, существует возможность после небольшой доработки реализовать поддержку 3D сцен популярных трехмерных редакторов. Естественно, обработка в реальном времени большого числа элементов оформления требует соответствующих вычислительных мощностей. Тем не менее, рекомендуемая конфигурация позволит полностью реализовать творческие решения в графическом оформлении телеканала без оглядки на технические требования. Для увеличения производительности мы используем технологию CUDA, разработанную NVIDIA Corporation, и именно эта технология позволила нам развернуть сферу технических ограничений в безграничную плоскость творчества.
Но даже если рекомендуемых мощностей окажется недостаточно (хотя нам сложно представить такой поворот событий), всегда есть возможность использовать как вертикальное, так и горизонтальное масштабирование. Такой подход обеспечивает по- настоящему неограниченные возможности.
Гибкая система генерации отчетов и статистической информации
Производственный процесс любого телеканала сопряжен с постоянной обработкой той или иной актуальной статистической информации. Причем, по мере развития телеканала, изменяются, как ее объемы, так и ее содержание. Именно поэтому наш комплекс на момент своего развертывания, несмотря на широчайшие возможности по созданию самых разнообразных форм представления статистической информации, имеет лишь ограниченное количество уже готовых к использованию отчетов. Мы не видим никакого смысла предоставлять сразу все мыслимые варианты и нагружать интерфейс пользователя десятками тысяч разнообразных отчетов. В таком сонме проще запутаться, нежели получить ту информацию, которая требуется на данном этапе функционирования. Поэтому после предварительного согласования, мы предоставим ровно тот актуальный набор отчетов, который будет необходим в данный момент времени для удовлетворения статистических потребностей конкретного телеканала. И, естественно, этот набор можно будет как угодно расширять и модифицировать, по мере возникновения новых пожеланий и требований.
Всесторонний мониторинг задействованных процессов
Важная составляющая нашего комплекса – это способность наблюдать за функционированием собственных модулей и, в случае необходимости, оповещать о любых, требующих внимания, ситуациях. Оповещение может происходить, как посредством электронной почты, так и через SMS.
Прозрачное расширение функционала
Не секрет, что мир вокруг нас постоянно меняется, и вместе с ним меняются требования к используемым в процессе нашей жизнедеятельности инструментам. Жизненно важной особенностью любого программного продукта является способность своевременно и качественно адаптироваться к таким изменениям. Именно поэтому архитектура нашего комплекса изначально разрабатывалась исходя из соображений о будущих неизбежных модификациях и максимальном упрощении их реализации. Много внимания было уделено необходимости избегать любых жестких взаимосвязей между любыми составляющими нашей системы автоматизации, сколь бы малыми они не были и сколь бы незначительными они не казались. На всех уровнях и этапах реализации проекта мы отчетливо знали, что рано или поздно, придет время и нам придется менять данный конкретный элемент. Поэтому любой из этих элементов разрабатывался на принципах максимального уровня абстракции и четко формализованных и унифицированных взаимодействий. Такой подход обеспечил нам возможность производить любые, даже, казалось бы, фундаментальные модификации существующего функционала с минимальными трудозатратами и с минимальным воздействием на те части системы, к которым данные изменения не имеют прямого отношения.
Поддержка горизонтального масштабирования
Любой программный продукт, с отсутствием строго формализуемых на этапе разработки максимальных требований к потребляемым в процессе своего функционирования ресурсам, обязан иметь возможность не только вертикального, но и горизонтального масштабирования. Вертикальное масштабирование – это повышение качества отдельной аппаратной платформы. Рост производительности происходит за счет увеличения доступных ресурсов посредством модернизации имеющегося оборудования. С одной стороны, это очень удобно, так как не требует никакой специальной реализации при разработке программного продукта, но с другой стороны, вертикальное масштабирование имеет свои естественные, быстродостижимые пределы и не может реализоваться бесконечно. Горизонтальное же масштабирование заключается в увеличении не качества целевых аппаратных платформ, а их количества. Несмотря на то, что такое масштабирование уже требует специальной реализации со стороны программного продукта, оно позволяет увеличивать производительность без каких-либо ограничений.
Предлагаемая нами система автоматизации телевизионного вещания поддерживает горизонтальное масштабирование, а, следовательно, способна решать любые самые ресурсоемкие задачи.
Поддержка вертикального масштабирования
Этот вид масштабирования подразумевает наращивание количества телеканалов при постоянном количестве серверов, обслуживающих эти каналы. На достаточно мощных серверах можно запускать до четырех телеканалов с графическим оформлением в режиме Full HD. Так что при возникновении необходимости такой подход, конечно, позволяет изрядно сэкономить не только деньги на дозакупку оборудования, но и время на открытие/закрытие телеканалов.