🎥 Elixir для ТВ-вещания: Как Elixir помогает Cyanview управлять сотнями камер
Как обеспечить согласованность визуальных характеристик двухсот камер для прямого эфира, подобного Суперкубку?
Решение заключается в использовании техники настройки камеры, которая включает регулировку каждой камеры для обеспечения соответствия цветов, экспозиции и других визуальных аспектов. Цель состоит в том, чтобы сделать трансляцию живого события целостной и последовательной. Для каждого угла съемки вы хотите видеть одинаковую зеленую траву и одинаковые оттенки кожи. Все должно быть точно настроено среди разнообразия продуктов и брендов. От больших вещательных камер до дронов, PTZ-камер и зеркальных камер на стабилизаторах. Именно этим занимается компания Cyanview. Cyanview — небольшая бельгийская компания, занимающаяся продажей оборудования для индустрии видеовещания в прямом эфире, и основным направлением её деятельности является настройка камер.
Трансляция — это бизнес, где у вас есть только один шанс доказать, что ваш инструмент справляется с задачей. Надежность превыше всего. Никаких серьезных сбоев быть не должно.
Небольшая команда из трех человек создала продукт настолько мощный и эффективный, что он распространился по всей отрасли исключительно благодаря своей функциональности. Без всякой рекламы этот продукт заработал репутацию среди опытных профессионалов и стал неотъемлемой частью крупнейших мировых мероприятий в прямом эфире. Панель дистанционного управления (RCP) от Cyanview теперь используется операторами видеооборудования на Олимпийских играх, Суперкубке, NFL, NBA, ESPN, Amazon и многих других мероприятиях. Даже большинство модных показов в Париже используют устройства Cyanview.
Эти устройства делают Elixir важной составляющей критически важных операций телевещания. Выбирая Elixir, Cyanview получила лучшие в своем классе сетевые функции, передовую устойчивость и экосистему, позволяющую быстро вносить изменения в функциональные возможности продукта.
Почему именно Elixir?
Основатели компании Cyanview изначально имели опыт разработки встроенного программного обеспечения, а устройства, которые они производят, содержат много низкоуровневого кода на языке С и значительное количество программируемых вентильных матриц (FPGA). Это связано с низкими уровнями обработки цвета и строгими требованиями к временному интервалу.
Если вам когда-либо приходилось работать с программным обеспечением для камер, вы знаете, что оно может оказаться довольно запутанным. Даже после полного перехода на цифровые технологии большая часть программного обеспечения оставалась привязанной к аналоговым системам или полагалась на проприетарные решения для подключения. Cyanview с самого начала ориентировалась на использование протокола IP (Internet Protocol). Это означает, что программное обеспечение Cyanview может работать на стандартных сетях, функционирующих известными и понятными способами. Это хорошо сочетается с увеличением числа удаленных производств, частично вызванным пандемией, когда производственные группы работают из центрального местоположения с минимальным количеством персонала на месте проведения мероприятия. Пользовательские радиочастотные или проводные протоколы сложно масштабируются на межконтинентальные расстояния.
Это также открыло путь для Elixir, поскольку виртуальная машина Erlang была разработана для коммуникации и координации миллионов устройств через сеть с высокой надежностью.
Elixir был внедрен разработчиком Гисленом, который нуждался в интеграции с камерами и взаимодействии с другим необходимым оборудованием для видеосъемки, использующим различные протоколы через сеть. Язык программирования обладает множеством практических функций для кодирования и декодирования двоичных данных вплоть до отдельных битов. Elixir предоставил прочную основу и инструменты для быстрой итерации.
Гислен строил основную интеллектуальную собственность Cyanview с тех пор. Хотя физическое устройство естественно должно быть надежным, качественным и долговечным, значительная доля секретного ингредиента заключается в большом количестве интеграций и обширных работах по обратной разработке. Таким образом, продукт способен взаимодействовать с наибольшим возможным числом профессиональных систем камер и связанного оборудования. Он разработан для совместимости со всем, что клиент использует, и предлагает API для обеспечения плавной интеграции с другими устройствами.
Дэвид Буржуа, основатель Cyanview, рассказал нам историю о том, как эти технические решения вместе с Elixir помогли им решать реальные проблемы:
«Во время Олимпийских игр в Китае студия в Пекине использовала большое количество PTZ-камер Panasonic. Однако большая часть команды находилась в Париже и нуждалась в дистанционном управлении этими камерами для проведения различных шоу в течение дня. Проблема заключалась в том, что протоколы камер Panasonic никогда не предназначались для работы в интернете — они требуют точного соблюдения временных интервалов и множества сообщений для каждой регулировки. Задержка сети приводила к таймаутам, отключениям и сбоям системы… Поэтому мы установили наши устройства рядом с камерами в Пекине и управляли ими через IP из Парижа — всё сработало, как задумано».
Устройства в заданной локации обмениваются информацией и координируются через сеть с помощью специально разработанного протокола MQTT. Более ста камер могут одновременно управляться с помощью одной панели дистанционного управления (RCP), построенной на сетевом стеке Elixir.
Техническое строение
Система в целом состоит из устройств RCP, работающих под управлением операционной системы Yocto Linux, причем большая часть логики построена на Elixir и C. Хотя Python все еще используется для сценариев и инструментов, его роль постепенно уменьшается. В состав установки входят несколько микроконтроллеров и устройства на камере, все они общаются друг с другом через протокол MQTT. Дополнительно облачные реле обеспечивают подключение, а панели мониторинга и интерфейсы контроллеров предоставляют контроль и управление. Два ключевых устройства — это RCP, обеспечивающий управление на стороне производства, и RIO, отвечающий за управление камерой с низкой задержкой. Оба устройства работают на Elixir.
Интерфейс конфигурации в настоящее время построен на Elm, но со временем, возможно, будет преобразован в Phoenix LiveView, чтобы уменьшить количество используемых языков. Веб-интерфейс контроллера уже реализован на LiveView и работает весьма эффективно даже на маломощной встраиваемой машине с Linux.
Облачная составляющая системы сегодня ограничена, что необычно для мира SaaS. Существуют облачные реле для распределения и совместного использования управления камерами, а также перенаправления сетевых портов между различными локациями и некоторые другие связанные функции, также построенные на Elixir, но облака не являются основой бизнеса. Устройства, работающие на Elixir на местах, образуют кластеры через IP с использованием специального протокола на основе MQTT, подходящего для выполнения поставленных задач, и взаимодействуют с сотнями камер и других устройств для видеосъемки.
Само собой разумеется, интеграция с таким большим количеством специализированного оборудования сопряжена с трудностями. Некоторые интеграции более надежны, чем другие. Некоторые устройства встречаются чаще, и их особенности хорошо известны благодаря многолетнему опыту. У некоторых из них даже есть хорошая документация, которую можно использовать в качестве справочного материала, тогда как другие представляют собой загадку и постоянные сюрпризы. В этом контексте Дэвид подчеркивает важность механизмов восстановления после отказов в Elixir:
«Если соединение одной камеры выходит из строя, возникает ошибка в протоколе или физическая связь с устройством прерывается, крайне важно, чтобы все остальное продолжало работать. Вот тут-то и проявляются преимущества деревьев наблюдения в Elixir».
Рост и структура команды
Команда выросла за девять лет существования компании, но рост происходил медленно и стабильно. В среднем компания нанимала одного нового сотрудника в год. Имея сейчас девять сотрудников, Cyanview поддерживает одни из крупнейших событий в области трансляции.
На борту находятся два разработчика Elixir: Даниил, который сосредоточился на пересмотре части пользовательского интерфейса, а также исследует возможность добавления новых облачных функций, и Гислен, работающий над камерами и интеграцией. Как LiveView, так и Elm используются для питания интерфейсов устройств и панелей мониторинга.
Интересно отметить, что остальные разработчики встроенных систем утверждают, что они не знают многого об Elixir и не используют его в повседневной работе. Тем не менее, они вполне комфортно разрабатывают протоколы и кодировки на Elixir. Основная причина, почему они не углубились в изучение языка, заключается просто в нехватке времени — у них достаточно другой работы, и глубокое знание Elixir пока не было необходимостью. В конце концов, их работа охватывает гораздо больше, чем просто Elixir: проектирование печатных плат, выбор электронных компонентов, обратная разработка протоколов, взаимодействие с дисплеями, реализация FPGA, проведение производственных тестов, участие в реальных съемках и выпуск обновлений прошивки.
Инновации и ориентация на клиента
Оператор использует панель дистанционного управления Cyanview RCP для огромной толпы на арене
Будь то установка бортовых камер в 40+ автомобилях во время гонки «24 часа Ле-Мана», освещение Ninja Warrior, Открытого чемпионата Австралии или США, работа студии в Лувре, установка в стойках NFL или одновременное подключение более 200 камер — продукт говорит сам за себя. Cyanview создал устройство для мира, основанного на IP, используя Elixir, язык программирования, глубоко интегрированный с сетевыми функциями и протоколами. Этот выбор позволил им реализовать поддержку всех видов оборудования и предложить функции, которых не было ни у кого другого.
Переход от традиционных локальных радиочастотных соединений, серийных подключений и жестких проприетарных протоколов к сетям на основе IP, устройства Cyanview переопределили способ функционирования систем камер. Их набор функций уникален в отрасли: неограниченное многокамерное управление, световая сигнализация, управление панорамированием и наклоном, интеграция с корректорами цвета, производство с участием нескольких стран.
Легкость и безопасность внедрения новых функций позволили компании оперативно поддерживать новые функции. Один из примеров — растущее использование беззеркальных камер на стабилизаторах для съемки толпы. Cyanview смогли прототипировать управление стабилизатором, протестировать его с клиентом и подтвердить работоспособность в кратчайшие сроки. Такая быстрая проверка и тестирование возможностей стали возможными благодаря гибкой архитектуре, гарантирующей, что критические основы не нарушатся.
Камерные компании, такие как Canon или RED, которые не выпускают пульты дистанционного управления настройками камеры, рекомендуют своим клиентам продукцию Cyanview. Вместо конкуренции с большинством компаний-производителей оборудования для вещания, Cyanview рассматривает себя как партнера. Мощь небольшой команды, качественного продукта и мощных инструментов может удивлять. Вместо того чтобы сосредотачиваться на маркетинге
Взгляд назад и вперед
Когда Дэвида спросили, выбрал бы он снова Elixir, он ответил:
«Да. Мы видели, на что способна виртуальная машина Erlang, и она прекрасно соответствовала нашим потребностям. Вы не осознаете всю ценность того, что Elixir предлагает прямо “из коробки”, пока сами не попробуете реализовать это. Наш выбор Elixir нельзя назвать чистой случайностью, но удача тоже сыграла свою роль. Elixir принес нам многое, что мы даже не предполагали будет полезным. Теперь мы видим это совершенно ясно.» Cyanview планирует расширять команду, но делать это ответственно и поэтапно. Сейчас объем работы значительно превышает возможности маленькой команды.
Разработка активно продолжается, и наряду с основным устройством RCP уже имеются дополнительные продукты. Будущее обещает ещё больше интересных проектов, включая развитие облачных сервисов и аппаратных решений, основанных на накопленном опыте. По мере реализации этих планов Elixir будет играть всё более важную роль в организации крупнейших мировых прямых трансляций.
Итог
Высококачественный продукт, предлагающий нужные инновации в нужное время в отрасли, где ранее наблюдался недостаток хороших интеграционных решений. Elixir обеспечил серьёзный импульс для разработки большого количества интеграций с высоким уровнем уверенности и надежности. В эпоху, когда производительность и эффективность команд имеют первостепенное значение, Cyanview служит ярким примером того, как Elixir позволяет небольшим командам достигать значительных результатов.