Привет, я Сергей Корнеев, ведущий системный аналитик команды профессионального стриминга #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, работающий под всеми тремя операционными системами. Он вполне подходит для несложных трансляций с минимумом графики и максимумом статичных планов. Например, это может быть простой вебинар с веб-камерой и презентацией, игровой стрим с захватом игры и веб-камеры и т.д.
Если нужно сделать эфир сложнее, здесь уже начинают пользоваться vMix — софтом под Windows, в котором можно принимать видеопотоки с плат захвата, комбинировать сложную графику, создавать скрипты автоматизации, выводить изображения на экран и транслировать сразу в 3 источника RTMP или 4 SRT.
vMix последние несколько лет уверенно держится в лидерах по использованию среди компаний, создающих онлайн-трансляции. По данным опросов, которое проводит AVSteram, vMix для онлайн-стриминга используют более 80% команд. Действительно, он отвечает современным запросам бизнеса и позволяет производить онлайн-контент в реальном времени на очень высоком уровне.
Чем чаще всего стримили?
По данным на 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
Интерфейс бета-версии CloudMix, март 2023 года
CloudMix — это полностью собственная разработка. Мы используем FFMPEG только для кодирования и декодирования потоков. Для сборки кадров FFMPEG мы не используем, потому что требуется выполнение сборки кадра за определенное время (near realtime).
Ядро системы написано на C/C++ с максимальным использованием возможностей процессора по обработке большого потока данных.
Сервис размещен на облачной инфраструктуре #CloudMTS в Москве, для этого используем Kubernetes и виртуальные машины.
Платформа позволяет принять локальные HDMI, SDI или сетевые RTMP, SRT, NDI-потоки, обрабатывать их, накладывать графику, титры, микшировать звук и выводить в несколько рестрим-трансляций — SRT или RTMP-источников.
В дальнейшем можно будет поканально записать входящие потоки в отдельные видеофайлы и хранить их на облачных дисках или скачивать себе, записывать сами трансляции, делать транскодинг, и т.д.
Главная идея — этот сервис позволяет вынести вычислительные мощности по обработке видеосигналов на виртуальную инфраструктуру — то есть работать пользователи смогут на любом устройстве, маломощном ноутбуке и даже смартфоне, и делать онлайн-видеопродакшен высокого качества.
Задержка может мешать продакшенам переходить в облака, ведь онлайн предполагает режим реального времени. По нашим тестам мы можем принять сигнал по NDI через публичный интернет и отобразить его в микшере за 160 мс внутри Москвы. Это быстрее, чем по HDMI кабелю в USB плату видеозахвата (около 200 мс) и вписывается в международные стандарты Remote Production, которые гласят, что задержка сигнала не может быть больше 250 мс.
По факту задержку можно минимизировать ещё сильнее, если оптимизировать кодеки, а также пользоваться прямыми линиями связи с облаком, что тоже в наших силах в будущем.
В следующих статьях я более подробно расскажу технические детали и покажу, как устроен наш собственный транспортный протокол передачи видео с задержкой в один кадр. Следите за обновлениями!
Fedkagyrov_3234r
CloudMix - это сервис для облачного онлайн-видеопродакшена, который позволяет создавать и редактировать видео в облаке. Работа с сервисом происходит через браузер, что позволяет использовать его на любом устройстве, где есть доступ в интернет. Сервис предоставляет возможность загружать видеофайлы, аудиофайлы, изображения и другие материалы, необходимые для создания видеоролика. После загрузки материалов пользователь может начать работу над видео. CloudMix предоставляет множество инструментов для редактирования видео, таких как добавление текста, музыки, звуковых эффектов, фильтров и переходов между кадрами. Также сервис позволяет добавлять анимацию и создавать слайд-шоу. После того, как видео готово, пользователь может сохранить его в облаке или скачать на свой компьютер. Сервис также предоставляет возможность публиковать видео на платформах YouTube и Vimeo. CloudMix работает на основе подписки. Пользователи могут выбрать один из трех тарифных планов: базовый, стандартный и профессиональный. Каждый тарифный план предоставляет различные функции и возможности.