company_banner

Пультовая Всевластья. Как устроен стриминг на онлайн-конференциях JUG Ru Group

    В 17-м эпизоде 2-ого сезона South Park Мистер Гаррисон поручает классу сделать доклады, от успешности которых зависит, останется ли он в должности учителя. В конце концов герои делают доклад со слов существ, постоянно ворующих подштанники Твика, — кальсонных гномов. Все уже видели этот эпический бизнес-план:


    1. Собираем кальсоны
    2. ???
    3. PROFIT

    Примерно на такую же схему надеются люди, решившиеся в первый раз организовать онлайн-митап или что-то в этом роде:



    Первая волна «кухонных стримов» показала, чего стоит этот план. Наверное, все успели побывать на трансляциях, которые рвутся раз в пять минут, а докладчики по полчаса выясняют — в эфире они уже или нет. Кто-то после этого даже решил, что весь «онлайн» — это какой-то ужас, который не стоит ни времени, ни денег.


    Мы профессионально делаем конференции с 2013 года, и сейчас тоже переключаемся в онлайн. Эта статья — о том, как у нас устроены студии и пультовые для проведения онлайн-конференций и митапов. Мы утверждаем, что такая схема сильно повышает шансы на успех. Другим организаторам эта информация пригодится как вклад в коллективный опыт о том, как делать нестыдные мероприятия.


    Если же вы собрались пойти на онлайн-конференцию, то это повод заглянуть поглубже под капот технологий и лично удостовериться, что на «онлайн» ходить можно и нужно. В статье будут фотографии — они не очень гламурные, зато правда.


    Область определения


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


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


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


    Для этого нужен достаточно универсальный способ пробрасывать в эфир спикеров, как находящихся на другом конце Земли с веб-камерой, так и сидящих локально в студии. Мероприятий может быть много (несколько штук в день, много треков параллельно). Участники могут показывать не только свою вебку, но ещё и слайды, экран, видео и вообще всё, что угодно.


    Как организовать такую систему?


    Общая схема всего


    Как устроено большинство видеостриминговых решений? Нужно откуда-то захватить сигнал (видео, аудио, слайды), обработать, послать на стриминговую площадку (собственная онлайн-платформа, YouTube). Люди придут на площадку и увидят результат в браузере.



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


    Осталось понять, что там скрывается за знаком вопроса.


    Студийный комплекс


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


    Информация поступает по двум основным направлениям:


    • внешний открытый интернет
    • оборудованные в офисе студии для офлайн-записи

    Место, куда всё это прилетает, называется «пультовая».


    Пультовая выглядит примерно так:



    Студия выглядит примерно так:



    Размещение


    Пара «студия» + «пультовая» являются элементарными единицами масштабирования. Одна пультовая может обслуживать даже целых две студии. Один такой комплекс в один момент времени может обрабатывать только один доклад. Если транслируются четыре доклада одновременно — нужно построить четыре комплекса.


    Но ведь у нас нет возможности поехать в Москву и снять всё Останкино в аренду на пару дней — скажете вы. Всё правильно, зато у нас есть офис! Да, приходится идти на некоторые жертвы, временно ликвидировав там рабочие места сотрудников. С другой стороны, в ближайшее время всё равно не стоит слоняться по офису табунами народу.



    Как подключается докладчик


    Подключение нового докладчика к конференции делается очень просто. Мы используем программу vMix, а у них есть специальная фича — vMix Call.


    Спикер открывает в браузере специальную ссылку и прямо в браузере подключается к трансляции. Примерно так же, как если бы использовался Zoom или Skype, только гораздо проще, и на экране нет практически никаких настроек. Запустил и сразу можешь работать. Чего греха таить, почти все докладчики очень волнуются, и необходимость копаться в настройках никогда не добавляла уверенности.


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


    Эта часть вопроса очень простая, потому что все проблемы взял на себя vMix.



    Почему не Zoom?


    Во-первых, Zoom сам режиссирует всё, что ты видишь в его окне. Управлять этим осмысленно никак нельзя. С другой стороны, каждый звонок через vMix Call выглядит внутри vMix как отдельный источник видео, с которым можно делать всё, что душа пожелает. Мы получаем именно такую картинку, какую заранее задумывали.


    Во-вторых, очень важное отличие vMix Call от Zoom в том, что в нём можно точно мониторить все параметры того, как видео и аудио приходит от спикера. Например, если скорость интернет-соединения недопустимо понизилась, можно вручную переключить качество изображения.


    Слайды


    Вопрос с переключением слайдов чуть сложнее. Можно было бы транслировать экран ноутбука докладчика, но это привносит множество проблем.


    Например, у него могут начать вылезать оповещения из соцсетей, а в этих нотификациях — что-нибудь крайне секретное. Это плохо, но такое случается, и все видели это на «кухонных вебинарах». Докладчик рассказывает что-то умное, и тут врывается звук свиньи Касперского!


    Вторая проблема — никто не гарантирует, что связь по интернету между Санкт-Петербургом и докладчиком всегда будет идеальная. У нас много спикеров из США, а это страна с самой печальной репутацией в плане интернета. Что будет, если скорость деградирует настолько, что от одного взгляда на мыльные слайды пойдет кровь из глаз?


    Мы перепробовали множество вариантов и пока что остановились на следующем. Слайды мы показываем на нашем собственном компьютере, стоящем в студии. Докладчик подключается к нему либо через наш специальный софт в личном кабинете докладчика, либо через инструменты удалённого управления (TeamViewer, VNC, RDP, …) и переключает слайды удалённо. Это позволяет участникам конференции всегда видеть идеальную картинку, вне зависимости от желания левой пятки американских провайдеров.


    Для митапов мы открывали слайды вот на этом неказистом ноутбуке, но на конференциях там будет топовый мак, на которым можно открыть и Microsoft Office, и PowerPoint, и всё, что душа пожелает.



    Внутри пультовой


    Самое сложное и интересное в техническом плане происходит внутри пультовой. Именно здесь работает всё железо и люди, которые им дирижируют как оркестром.


    Роли



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


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


    Когда у нас есть достаточно обученных людей на все роли, в идеале, можно делать бесконечный эфир с десятками параллельных треков. В реальности, мы всё-таки не Центральное телевидение, и проверять себя такими экстремальными сценариями мы не будем и другим не советуем.


    Давайте рассмотрим все роли по списку.


    Координатор эфира


    Вначале нам нужно откуда-то достать докладчиков. Их поставляет нам координатор эфира.


    Он делает примерно то же самое, что «программный координатор» во время офлайн-конференции, только теперь — онлайн:


    • Помогает подключать удаленных спикеров и партнеров;
    • Передает ссылки, помогает с переводом и так далее;
    • Пингует спикеров и партнеров;
    • Отвечает за появление локальных спикеров в нужное время в студиях.

    Без этого человека всё развалится на уровне координации людей. На случай проблем он должен показывать чудеса переговорных и организационных навыков.


    Если вы бывали как докладчик на наших конференциях, то уже знакомы с командой программных координаторов :-)


    Инженер эфира



    После того, как докладчик виртуально пришел в студию, нужно его подключить к оборудованию. На инженера эфира падает самая большая нагрузка, ведь он:


    • Подключает удаленных спикеров: как видео, так и слайды;
    • Контролирует удаленные подключения;
    • Контролирует уровни звука;
    • Собирает нужные лэйауты для монтажера эфира;
    • Собирает видео-толкбэк для спикеров и ведущих.

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


    Лэйауты — это термин из программ вроде vMix или OBS. Вы можете взять источники вроде видео с вебки и слайдов и показать их на экране разными способами: в каких-то случаях нужно лицо спикера крупным планом, в каких-то нужно увеличить слайды и так далее. Каждый такой набор настроек сохраняется в видеостриминговом софте и называется «лэйаут».


    В идеале, инженер эфира — максимально технически грамотный профессионал, который очень хорошо знает весь софт, участвующий в трансляции. Например, во время трансляции PiterJS инженеру пришлось на лету изменить дизайн слайдов и научиться в нужный момент показывать QR-код. Человек, увидивший vMix вчера, с этим не справится.


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


    Монтажер эфира



    Монтажер эфира делает, казалось бы, очень простые вещи:


    • Выбирает, какой план или лэйаут пойдет в эфир;
    • Постоянно мониторит изображение и звук, и в случае неполадок просит инженера эфира их починить.

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


    В нашей команде это Илья Федин. Конечно, он не справится в одиночку, и ему придется учить своих падаванов: например, если у нас будет 8 студий, то потребуется 16 монтажеров.


    Тут всегда задают вопрос: а почему не совместить роли инженера и монтажера? Слежение за трансляцией требует предельной концентрации. Если случится какая-то сложная инженерная проблема и человек уйдет в неё с головой, он не сможет адекватно переключать планы, и случится что-нибудь вроде: докладчик переключился на лайвкодинг, а на экране всё ещё висят слайды — привет «кухонным вебинарам»! Поэтому на наших конференциях эти роли будут четко разделяться.



    Внимание, лайфхак



    Несмотря на то, что инженер и монтажёр — это два разных человека, у нас они сидят за одним и тем же компьютером (хоть и в двух метрах друг от друга). Зачем это нужно, и как это стало возможно?


    Процесс построен так, что инженер готовит лэйауты, а монтажер их выводит в трансляцию. Но ведь лэйауты — это одни и те же данные. Да, их можно перебрасывать между разными рабочими станциями, но смысла в этом — никакого. Можно взять видеостриминговый софт (мы используем vMix) и разложить разные окна по разным мониторам. На одном мониторе отображается основной интерфейс программы, на втором — превью трансляции с выбором всевозможных планов.


    «Но ведь так не работает! Нельзя так просто подключить две клавиатуры и две мышки, люди мгновенно запутаются в них!». Всё так! Поэтому нам на помощь спешит MIDI-контроллер:



    MIDI-контроллер — основное оружие монтажера. Он работает совершенно независимо с основной клавиатурой и мышкой, и весь адекватный видеостриминговый софт понимает его команды.


    Если интересно, мы используем Behringer X-Touch Mini. Это один из самых удобных контроллеров для видео: у него два ряда клавиш, повторяющих по функциональности переключение превью и эфира в программах вроде vMix и OBS. У этих контроллеров есть один важный минус — их выкупают из музыкальных магазинов сразу же, как они появляются. У нас их на складе лежит десяток штук.


    Второй лайфхак: переключение и отказоустойчивость


    Вы, наверное, заметили, что в самом верху было указано по два инженера и монтажера в одной пультовой. Почему два? Девать людей некуда?


    И студий тоже две на одну пультовую.


    Дело в том, что доклад имеет свойство заканчиваться. Дальше нужно подключать следующего спикера.


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


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


    Поэтому у нас всегда дежурят два поста. В то время, как первый пост ведет трансляцию, второй пост принимает новых гостей — подключает их, проверяет оборудование. В момент окончания доклада на центральном концентраторе видеопоток переключается между этими двумя постами.


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


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


    Последняя роль: продюсер эфира



    А ещё кто-то за всё это должен отвечать и решать проблемы, которые не укладываются во все предыдущие роли. Для этого у нас есть продюсер:


    • Главный на треке;
    • Несет ответственность за верную верстку эфира и сам эфир трека;
    • Дает голосовые команды ведущим и спикерам по ходу эфира;
    • Управляет коллегами по треку;
    • Принимает решения в случае, если что-то идет не так.

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


    В реальности, может произойти всё, что угодно, и он это «всё, что угодно» обязан решить. В нашей команде этим могут заниматься Product Marketing Manager-ы соответствующих конференций (вроде green_hippo, vbrekelov или меня), либо специально обученные члены программных комитетов.


    Если интересны технические подробности, то видео сводится воедино не с помощью vMix, а уже с помощью OBS Studio. На этом технические подробности заканчиваются. Здесь должно работать максимально простое решение, в котором нечему ломаться, а если сломалось — легко починить, и это OBS.


    Используй всё, что есть



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


    Конечно же, в бой пошли ПТС — передвижные телевизионные станции. Название пафосное, а по факту — это просто очень мощные компьютеры, которые ездят в кейсах между городами. Микшерные пульты пригодятся для подключения студий, там же пригодятся все эти микрофоны, радиостанции и вообще всё, что есть на складе.


    Только всегда надо помнить, что у подключения любого дополнительного оборудования есть своя цена. Всё это нужно аккуратно мониторить и вовремя реагировать: у микрофонов заканчиваются батарейки, в железе и софте бывают баги и так далее. Возможно, мы расскажем это в какой-то отдельной статье.


    Никогда не останавливайся


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


    Кажется, что в этой статье описан какой-то готовый рецепт создания большого онлайна. В реальности это скорее «моментальный снимок» сложной и непрерывно улучшающейся конструкции.



    Мы постараемся держать вас в курсе дела. Впереди ещё множество интересных статей. Мы постараемся рассказать о том:



    Как вы уже поняли, мы делаем конференции. В ближайшее время их будет целых восемь, все в онлайне. Важно: у нас появился специальный тип билета, позволяющий пойти сразу на все конференции одновременно. Например, вы берете Full Pass на JPoint и спокойно идете с ним на Heisenbug и DevOops.
    JUG Ru Group
    Конференции для программистов и сочувствующих. 18+

    Комментарии 9

      0
      Только все-таки не MIDI-клавиатура, а контроллер, клавиатура мне казалось всегда это что-то вроде синтезатора
        +7

        Поправил! Кстати, у меня на самоизоляционном рабочем месте за спиной есть и MIDI-клавиатура тоже, и с помощью неё можно рулить vMix или OBS… если хочешь страдать до конца дней :)


          +1
          Спасибо, даже не казалось, а точно знаю ) у самого был синтезатор )
          +2
          MIDI-клавиатура — это клавиатура с пианинными клавишами, которая не играет сама по себе а отправляет сигналы нажатия/отпускания клавиш через MIDI-интерфейс.

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

          Технически любая MIDI-клавиатура — это тоже MIDI-контроллер, но называют их отдельно MIDI-клавиатурами для удоства, т. к. этот класс устройств очень востребован аранжировщиками и композиторами в студиях именно для записи нот с последующей конвертацией в звук с помощию софта (DAW/VST-планиты и т. п.). Часто в MIDI-клавиатуры встроены дополнительные кнопки/ручки/крутилки, которые тоже отправляют сигнал через MIDI-интерфейс.
            0
            Огромное спасибо за развернутый ответ
          +4
          Если не секрет, какой ещё софт кроме Zoom и vMix пробовали и чем он не подошёл?

          p.s. Привет из Miro! приятно, что используете ;-)
            +6

            По сути, есть два типа решений — браузерные и нативные. В целом, у всех WebRTC-решений (TamTam/Одноклассники, Google Meet, vMix Call, StreamYard, Tokbox ) одни и те же проблемы, связанные с тем, что сам WebRTC ещё сырой. Есть некоторая надежда, что Google сейчас за него плотно возьмётся, чтобы лучше продавать Meet, который поверх него сделан. Об этом говорит некоторая активность в логе их разработки и выкатка новых фич типа захвата экрана без установки дополнительных плагинов для браузера.


            При этом нативные решения на WebRTC на мобильниках умеют использовать аппаратные возможности мобилок и по качеству нравятся нам больше. На хороших телефонах WebRTC клиенты работают лучше, чем браузерные, а на плохих телефонах — хуже.


            Большинство готовых решений на WebRTC даёт некоторый неуправляемый баланс между качеством и надёжностью. В конференционном мире нам нужно:


            1. первым приоритетом выдавать голос
            2. дальше захват спикеров в камере оптимизировать по FPS, жертвуя качеством картинки
            3. наконец, слайды оптимизировать по разрешению, жертвуя FPS

            И мы не нашли простых WebRTC-решений, которые умеют это делать, а тем более сочетать одновременно все эти типы настроек.


            Кроме того, браузерные версии WebRTC-решений неплохо работают на Chrome (именно на Хроме, а не на Хромиуме) и более-менее работает на Safari. Но с остальными браузерами — полный швах.


            А вот Zoom умеет выбирать между качеством картинки и фреймами в секунду. Но через Zoom не собрать отдельные звуковые дорожки от участников. А Skype и vMix Call это умеют, этим можно управлять на host-стороне.


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

              +1

              О, привет, Сергей!

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое