Потоковое вещание с мобильных девайсов уже давно превратилось из экзотики в хорошо прижившийся рабочий инструмент, используемый ведущими студиями.
Наша команда - компания Софтвелум - разрабатывает разнообразные продукты для построения систем потокового вещания, например софтовый медиа-сервер Nimble Streamer и веб-сервис WMSPanel. Мы также делаем мобильные приложения семейства Larix Broadcaster для вещания живых потоков RTMP, SRT, RTSP и RIST с мобильных устройств, а также SDK на его основе.
Здесь в статье мы сделаем обзор лучших практик и рекомендаций как по использованию Larix Broadcaster, так и для мобильного вещания в целом, на основе опыта наших пользователей и нашей команды.
Larix Broadcaster - это универсальный мобильный инструмент, который используется в самых разных случаях - от разового события до подготовки сложного события со множеством подключенных устройств. Крупномасштабные развертывания показывают, что можно успешно использовать современные мобильные устройства для создания живого контента. Так, согласно Sports Video Group News, Larix использовался в виртуальных драфтах 2020 года в NFL (National Foot ball League) и MLB (Major League Baseball). Они выпустили статьи "NFL Draft 2020 ..." и "NFL Draft Reflections ...", описывающие подготовку и проведение событий, а Драфт MLB описан в соответствующей статье.
Тестирование - наше всё
Первый и самый важный совет, который мы вам можем дать, - тестируйте чем больше, тем лучше, заблаговременно до начала события. Это касается и возможностей оборудования, и настройки программного обеспечения, а также особенностей сети и рабочей среды.
Особенно важно сделать это до того, как вы примете решение о покупке целого "флота" устройств для вашей команды. В целом, это хорошая идея - иметь абсолютно одинаковые устройства для всех участников команды - так что мы очень рекомендуем провести тщательное тестирование перед подобной покупкой.
Поэтому начните с того, что достанете себе одно тестовое устройство и попробуете запустить на нем свой стриминг-сценарий.
В первую очередь проверьте простой прямолинейный сценарий с установками по умолчанию (720p@30fps, H.264, дефолтный битрейт, и т.п.) и затем попробуйте те настройки, которые собираетесь использовать в рабочей обстановке, если они отличаются. Короткие тесты можно перемежать с длинными прогонами.
Затем постарайтесь зайти чуть дальше. Если предполагается, что ваше мероприятие будет длиться час, проведите двухчасовой тест, для того чтобы удостовериться в надежности вашего устройства и установок стриминга. Если у выбранного вами устройства есть какие-либо проблемы, связанные с температурой или зарядом батареи, - вы это увидите.
Неотъемлемая часть наших регулярных тестов, предшествующих запуску продакшен-релиза, - это часовой тест, куда входит периодическая смена сцен, повороты, круговое движение, и все остальное, что может создать видимость интенсивной работы камеры. Следующим этапом мы проводим тест длительностью целый день со стримингом более статичных сцен, чтобы удостовериться, что Larix не создает проблем и не перегревает устройство в связи с длительной работой.
Android или iPhone?
iPhone является лучшим выбором для живого вещания. Мы протестировали устройства от iPhone 6s до iPhone 11 Pro, и на всех из них Larix вещает 1080p@60fps.
Модели начиная с iPhone XR могут обеспечить 4K@60fps. Разумеется, вы также можете использовать HEVC на всех этих моделях. Качество картинки по-прежнему превосходно, как этого и следовало ожидать.
Что насчет Андроида? Большинство производителей обеспечивают минимальный уровень возможностей для сторонних приложений. Мы можем с уверенностью заявить лишь об одном девайсе, который поддерживает все возможности платформы Android, - это Google Pixel 5. Larix действительно может использовать 1080p@60fps, параллельные камеры, 4K@30fps и все прочие особенности платформы.
Платформа Android поощряет то, что мы называем “зоопарк девайсов”. Это подразумевает наличие большого количества разнообразных форм, размеров и наборов характеристик, однако, когда доходит до энкодинга, продавец может следовать лишь базовым требованиям, таким как 1080p@30fps, а большинство характеристик, связанных с картинкой, оказываются недоступны для третьих сторон. Так что вы не сможете увидеть 60fps, параллельные камеры, а иногда даже 4К, в Larix Broadcaster. В отличие от iPhone, большинство устройств на Android не могут обеспечить точные показатели кадра в 25fps.
Подробнее о поддержке FPS на Android и iOS можно прочитать в разделе Q12 нашего FAQ.
Если вы предпочитаете Android и не нуждаетесь в необычных возможностях, тогда большинство девайсов на Android средней и высокой категории смогут неплохо для вас поработать. Но вам будет необходимо запустить пробный тест, как было рассказано выше. Мы попробовали несколько девайсов от Samsung, Xiaomi и некоторых других брендов, они хорошо себя показали в нашем тестировании. И на данный момент Pixel 5 оказался лучшим среди них.
Если вы предпочитаете iPhone, тогда по сути любая доступная вам модель выполнит эту работу на “отлично”.
Аудио, разное оборудование и мелкие хитрости
Мы часто замечаем, что наши подписчики успешно используют внешние микрофоны и звуковые карты. Мы любим хороший звук, поэтому, помимо “стандартных фич”, таких, как частота дискретизации или количество каналов, мы позволяем выбрать аудио-источник, а также стриминг в режиме “только аудио”, когда Larix передает только звуковую часть контента. И у нас есть планы позже дополнить эту функцию регулировкой усиления (gain control).
Например, мы тестировали Larix совместно с iRig HD2, и все работало без нареканий. Некоторым звуковым картам требуются другие установки звука, то есть строго 48000Hz или 44100Hz. Так что, если есть проблемы со звуком, пожалуйста, проверьте эти настройки, а также попробуйте переключить аудио-источники, поскольку некоторые девайсы могут иметь свои капризы в этом случае.
Помимо аудио, дополнительное оборудования для стриминга может включать в себя комплекты освещения и триподы, - это те вещи, которые вы можете подобрать, исходя из собственных нужд.
Загляните в The Ultimate Guide To DJ Livestreaming, где Фил Морз сделал хороший обзор аудио обеспечения, другого оборудования и лучших способов по его использованию.
Обратите внимание, что Larix Broadcaster предоставляет возможности кадрирования, такие как правило третей и границы отображения (safe margins). Рекомендуем также посмотреть обучающее видео Video Camera and Webcam Framing for Live and VOD Яна Озера, там есть ряд интересных идей по этим и другим принципам.
И конечно, не забудьте про источник питания. У вашего телефона может быть превосходная батарея, но живое вещание в высоком разрешении истощит ее очень быстро. Так что, запаситесь качественным пауэрбанком, или просто подключите телефон к зарядке. Имейте в виду, что, если вы захотите уменьшить потребление энергии, то можете выключить вращение изображения и наложение картинок - это упрощает пост-процессинг.
Протоколы стриминга
На сегодняшний день у нас есть две основные опции при выборе протокола для стриминга: SRT и RTMP.
Если вы используете такие популярные сервисы как YouTube Live, Facebook Live или Twitch, у вас нет другого выбора, кроме как использовать RTMP. Это старая технология, хорошо реализованная, доступная в любом сервисе и декодере. Она должным образом подходит в большинстве случаев, особенно когда стриминг происходит в проверенной, контролируемой сетевой среде.
В Larix Broadcaster есть стабильная поддержка RTMP и она совместима со всеми основными решениями на базе RTMP.
Когда вы выстраиваете собственную стриминговую сеть или можете выбрать провайдера с SRT-входом, вам определенно стоит остановить свой выбор на SRT. Это особенно важно, если члены вашей вашей команды участвуют в стриминге через мобильные сети. SRT был разработан для работы с непроверенными сетями, поэтому, в случае значительных потерь пакета в вашей сети, это будет должным образом исправлено повторной отправкой утерянных пакетов. У этого преимущества есть обратная сторона: оно требует установки временного буфера при помощи параметра latency, в течение которого будет осуществляться компенсация сбоев. Так что имейте в виду - в вашем входящем потоке всегда будет присутствовать задержка. Мы рекомендуем использовать параметры задержки в 4*RTT. Более подробно почитать можно здесь.
Larix Broadcaster полностью поддерживает публикацию по SRT в режимах Caller, Pull и Rendezvous, и наша реализация SRT была тщательно протестирована со всеми основными SRT-решениями и инструментами. Современные хардварные декодеры могут обрабатывать SRT (так например, Haivision является разработчиком SRT, поэтому их устройства имеют полную поддержку). Есть много разных программных решений, таких как наш Nimble Streamer или Wowza Streaming Engine, подходящих для SRT-стриминга, поэтому, если вы решите попробовать что-то отличное от дефолтных сервисов живого вещания, у вас есть выбор.
Кстати, рекомендую посмотреть реальный тест двух протоколов в условиях московской мобильной сети от Сергея Корнеева, админа сообщества AVStream (кстати, всем рекомендую подключиться к одноименному чату в Телеге).
Larix Broadcaster также поддерживает RTSP и RIST, хотя эти протоколы сейчас и не так широко распространены, как RTMP или SRT.
Проконсультируйтесь со своей серверной командой или поддержкой сервис-провайдера, чтобы узнать, чем вы сможете воспользоваться.
Talkback
Удаленное участие часто означает, что ведущий должен находиться на связи со студией. Larix Broadcaster поддерживает Talkback, то есть обратный аудио-поток (IFB), который можно получить на свое мобильное устройство, используя несколько протоколов. Вы можете использовать любое подходящиее программное обеспечение с SRT, SLDP, RTMP и Icecast для отдачи аудио-потока из студии и использовать наушники для мобильного девайса, чтобы услышать их.
Можно изучить нашу видео-инструкцию по установке, а также ознакомиться с кейсом "мобильный репортер" с применением SRTMiniServer, который поддерживает создание talkback.
Larix Grove
Если вы управляете “флотом” устройств, каждое из которых передает живой контент, вам нужен способ обеспечить вашу команду настройками подключения. Каждый участник должен иметь независимое подключение URL, и вам нужно объяснить каждому из них, как провести запуск.
Вы можете использовать формат Larix Grove, чтобы создать специально сформированные ссылки и их QR-коды, чтобы распространить ваши настройки. На iPhone QR-коды могут быть считаны системным приложением камеры. На Android можно использовать любое подходящее приложения для считывания QR-кода. Настройки импортируются в Larix Broadcaster сразу после того, как код будет распознан, и после этого поток немедленно стартует.
Формат простой, так что вы можете использовать визард у нас на сайте или создать собственный URL-генератор для этих целей.
Тестируйте дальнейшие изменения
Итак, вы успешно провели все тесты перед прямым эфиром вашего события всё работает безупречно, как и ожидалось. Теперь заморозьте все эти настройки и не меняйте ничего до окончания события, никаких обновлений и переустановок программного обеспечения быть не должно. Просто запускайте вещание с теми девайсами, которые вы настроили заранее.
Если вам действительно нужно внести изменения либо на ваше мобильное устройство, либо на сервере в перерыве между событиями, тогда проведите всё тестирование сначала, чтобы убедиться, что ничего не поломалось.
Не бывает слишком много тестов. Чем больше вы тестируете, тем лучше.
Мобильное вещание уже фактически стало мейнстримом, так что будем с интересом наблюдать за его развитием и, конечно, активно в этом развитии участвовать.
Если у вас свои наработки, которые мы здесь упустили - пишите в комментариях.
P.S. Здесь можно прочитать оригинальную статью на английском, чуть дополненную: Best practices for Larix Broadcaster production deployment