Для чего нужен и как работает сервис для облачного онлайн-видеопродакшена CloudMix

image

Привет, я Сергей Корнеев, ведущий системный аналитик команды профессионального стриминга #CloudMTS. Наша команда разрабатывает CloudMix — облачный сервис для онлайн-видеопродакшена. Сейчас продукт находится на этапе бета-тестирования и активной разработки обширного роадмапа, и мы активно собираем обратную связь от пользователей. В бета-тесте принимают участие более 300 человек, выйти в продакшен планируем в конце лета — начале осени 2023 года.

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

Что вообще такое онлайн-видеопродакшен?


Когда вы смотрите на ютубчике прямой эфир какой-нибудь конференции, семинара, концерта, хоккейного матча, то за кадром работает большое количество разных специалистов, которые создают этот контент: инженеры, операторы, звукорежиссёры, редакторы, режиссёры и продюсеры эфира. Этот эфир может быть как телевизионный, так и не телевизионный — созданный одной из тысяч компаний по организации онлайн-трансляций. Примерами крупных продакшенов могут послужить компании Пруфикс, Cinecast, Pro-Stream, Comdi и другие.

Оценить полностью объём этого рынка очень сложно, но по данным опросов, которые ежегодно проводит сообщество стримеров России и СНГ AVSteam, набегает около 5,5 млрд рублей в год.

Современный онлайн-видеопродакшен всё больше пересекается с сетевыми технологиями. Это связано с тем, что передача видео давно вышла за пределы HDMI-SDI стандартов. Например, уже несколько лет для захвата экранов, передачи видео по витой паре во всю используется стандарт NDI. Нынешним инженерам и операторам уже мало просто знать и понимать в оптике, постановке кадра, SDI-кабелях и штативах. Им ещё приходится разбираться в сетевых и транспортных протоколах, роутерах, Wi-Fi сетях, NDI, SRT, RTMP, WebRTC и прочих аббревиатурах совершенно не из мира видео, а больше из мира сетей. И к компетенциям хорошего инженера онлайн-видеопродакшена уже давно относится и знание, как пробросить порты в микротике для приёма-передачи NDI через интернет и как создать облачный SRT-сервер на Nimble Streamer, например.

На чём сейчас делается продакшен онлайн-трансляций?


Чаще всего это бесплатный опенсорс-проект Open Broadcast Software, работающий под всеми тремя операционными системами. Он вполне подходит для несложных трансляций с минимумом графики и максимумом статичных планов. Например, это может быть простой вебинар с веб-камерой и презентацией, игровой стрим с захватом игры и веб-камеры и т.д.

image

Если нужно сделать эфир сложнее, здесь уже начинают пользоваться vMix — софтом под Windows, в котором можно принимать видеопотоки с плат захвата, комбинировать сложную графику, создавать скрипты автоматизации, выводить изображения на экран и транслировать сразу в 3 источника RTMP или 4 SRT.

image

vMix последние несколько лет уверенно держится в лидерах по использованию среди компаний, создающих онлайн-трансляции. По данным опросов, которое проводит AVSteram, vMix для онлайн-стриминга используют более 80% команд. Действительно, он отвечает современным запросам бизнеса и позволяет производить онлайн-контент в реальном времени на очень высоком уровне.

image
Чем чаще всего стримили?
По данным на 2022 год, самый популярный энкодер — vMix — 77,3%. Второе место у OBS — 13,8%. Железные энкодеры — 5,3%. Также есть варианты Wirecast, Xsplit, TriCaster, Livestream, Larix и «Зависит от поставленной задачи по стриму».

Зачем тогда делать облачный продакшен, если всё и так хорошо?


Многие онлайн-продакшены так или иначе самостоятельно уже приходят или пришли к вынесению некоторых операций с трансляциями в облака по нескольким причинам.

  • Физический компьютер на Windows с запущенными ресурсоёмкими приложениями — это так или иначе потенциальная точка отказа. И чаще всего этот отказ проявляется именно в тот момент, когда в аппаратную заходит заказчик трансляции и просит что-нибудь показать. Приходится всячески стараться резервировать вторыми компьютерами, железными энкодерами и т. д.
  • Для работы со сложным продакшеном сам компьютер должен быть с хорошими комплектующими и самое главное — наличием дискретной видеокарты nVidia не ниже GTX1080. Конечно, можно работать и без дискретной видеокарты, отдавая кодирование видео на процессор. Оптимальная для комфортной работы комплектация — i9, RTX3090, 32Gb DDR, SSD или M2.


Благодаря облаку инженеры могут не нагружать компьютер и арендовать мощную машину на время работы. Например, многие арендуют VDS с видеокартами, устанавливают туда vMix и через RDP рулят им, принимая SRT-потоки и транскодируя их, или работая со сложной графикой, ресурсоёмкими тяжёлыми видео и т. д. Это отчасти решает проблему, но это технически сложно и ресурсозатратно, так как RDP съедает львиную долю ресурсов видеокарты и реалтайма в передаче видео и управлении облачным микшером достичь крайне затруднительно.

И здесь на арену выходят облачные сервисы для онлайн-видеопродакшена, один из которых сейчас активно разрабатывает команда МТС — CloudMix.

Сама идея облачного продакшена не нова. «За бугром» огромное количество примеров успешного использования таких сервисов малым, средним, крупным и суперкрупным бизнесом — от телекомпаний Fox до церковных стримеров, которые транслируют богослужения или школьных спортивных команд.

Самый крупный игрок — конечно же, Amazon Web Services, на котором построено огромное количество более мелких сервисов. Один из самых известных — Grass Valley AMPP. Это софт, который частично устанавливается у эндюзера и частично находится в облаке, и позволяет очень ощутимо экономить ресурсы человеко-часов, затраты на логистику и т.д.

После него есть сервисы поменьше — например, от компаний Vizrt, Solitoncvs, Easylive, TVU, Sony, Grabio и другие. Мы в МТС уже длительное время развиваем облачную Cloud-native инфраструктуру и сервисы. CloudMix должен стать одним из важных инфраструктурных инструментов в облачной линейке компании.

Как работает CloudMix


image
Интерфейс бета-версии CloudMix, март 2023 года

CloudMix — это полностью собственная разработка. Мы используем FFMPEG только для кодирования и декодирования потоков. Для сборки кадров FFMPEG мы не используем, потому что требуется выполнение сборки кадра за определенное время (near realtime).

Ядро системы написано на C/C++ с максимальным использованием возможностей процессора по обработке большого потока данных.

Сервис размещен на облачной инфраструктуре #CloudMTS в Москве, для этого используем Kubernetes и виртуальные машины.

Платформа позволяет принять локальные HDMI, SDI или сетевые RTMP, SRT, NDI-потоки, обрабатывать их, накладывать графику, титры, микшировать звук и выводить в несколько рестрим-трансляций — SRT или RTMP-источников.

image

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

image

Главная идея — этот сервис позволяет вынести вычислительные мощности по обработке видеосигналов на виртуальную инфраструктуру — то есть работать пользователи смогут на любом устройстве, маломощном ноутбуке и даже смартфоне, и делать онлайн-видеопродакшен высокого качества.

Задержка может мешать продакшенам переходить в облака, ведь онлайн предполагает режим реального времени. По нашим тестам мы можем принять сигнал по NDI через публичный интернет и отобразить его в микшере за 160 мс внутри Москвы. Это быстрее, чем по HDMI кабелю в USB плату видеозахвата (около 200 мс) и вписывается в международные стандарты Remote Production, которые гласят, что задержка сигнала не может быть больше 250 мс.

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

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


ddtbkuoy-2d8_uceoykxy0vxkae.png

© Habrahabr.ru