Як ми робили танцювальний бал онлайн

Як ми робили танцювальний бал онлайн

Великий Севастопольський Офіцерський Бал традиційно відбувається у червні, але цього разу підготовка не задалася. Організатори вирішили запустити «Севастопольський Бал Онлайн». Оскільки ми робимо трансляцію заходу вже кілька років поспіль, відступати не було куди. Глядачі у фейсбуці, вконтакті та на ютубі, 35 пар танцюють у себе вдома.

Взагалі, якийсь час займаючись онлайн-трансляціями, ми помітили тенденцію, що майже кожен проект вимагає (чи ми від себе вимагаємо) якогось нововведення. То ми вперше використовуємо SDI, то відеосендер, то передаємо сигнал за допомогою кількох 4G-модемів із моря, новий пульт, матриця сигналів, забрати відео з коптера, рестрім на 25 груп ВК тощо. Кожен новий проект змушує поринути у світ стриму ще глибше. Ми розповідаємо про це на ютубі VidMK, вирішили написати і на Хабр.

Отже, завдання…

Танцювальний бал через епідемію проводиться онлайн. Є ведуча пара, решта учасників танцює, повторюючи за ними, тобто має бачити і чути головну пару разом із музикою.

Як ми робили танцювальний бал онлайн

Спочатку підключається губернатор Севастополя, щоб відкрити бал. Готова зрежисована трансляція йде на ютуб, фейсбук та вк.

Як ми робили танцювальний бал онлайн

Найочевидніший спосіб був - зателефонувати всім у відеочаті. Першим спало на думку Zoom, але я зазвичай намагаюся не хапатися відразу за те, що на слуху, а шукаю альтернативи. Можливо, вони мають класний маркетинг, і навіть якщо інструмент хороший, напевно, є щось ще. У чаті AVstream говорили кілька разів про TrueConf, вирішив спробувати.

Тут важливо сказати, що ми у Криму і багато популярних сервісів тут не працюють. Доводиться шукати, і нерідко альтернативи виявляються кращими. Наприклад, замість заблокованого Trello ми почали використовувати потужний Planfix.

TrueConf одразу підкупив можливістю підняти свій сервер. Теоретично це означало б, що ми не залежимо від загального зростання навантаження на дата-центри в період самоізоляції, сидимо собі тихо в Севастополі, підключаємо в основному місцевих користувачів і кілька з інших міст, і все працює стабільно. До того ж використання свого сервера було вигіднішим по грошах. А у випадку із нашими замовниками його ще й дали безкоштовно, бо в організаторів балу НКО.

Загалом ми протестували продукт і зрозуміли, що він нам підходить. Хоча повне навантаження в 35 чоловік на тестах не робили, трохи було страшнувато, як поведеться старенький комп'ютер у ролі сервера. Вимоги до системника досить високі за такого навантаження, тому притягли комп'ютер на базі AMD Ryzen 7 2700, з ним стало спокійніше.

Сервер фізично знаходився там, де відбувалася трансляція балу. Головна програма для відеозв'язку підключали в одній мережі з сервером. Це додавало впевненості, що картинка до сервера точно добереться, а вже потім піде онлайн до інших учасників. До речі, інтернет має бути хорошим. Для наших 35 учасників швидкість віддачі сягала 120 Мбіт, тобто звичайного інтернету в 100 Мбіт буде недостатньо. Загалом сервер працює, йдемо займатися ефіром.

Сигнал із камери

Будь-який відеочат пропонує вибрати веб-камеру як джерело зображення та мікрофон для звуку. Як бути, якщо нам треба завести професійну відеокамеру та звук із двох мікрофонів із фонограмою? Якщо коротко, ми використовували NDI.

Весь ефір нам треба було режисувати та стримати у соцмережі. Для цього ми мали головний комп'ютер у ролі міні-ПТС (пересувна телевізійна студія). Вся робота проходила за допомогою програми vMix. Це досить потужний софт для організації трансляцій різного типу та рівня складності.

Як ми робили танцювальний бал онлайн

Нашу танцювальну пару знімала одна камера, просто не потрібно було. Сигнал із камери ми захопили за допомогою внутрішньої картки BlackMagic Intensity Pro. На мою думку, це актуальна карта для захоплення одного HDMI-сигналу. Цей сигнал і потрібно було відправити у вигляді веб-сайту в TrueConf. Можна було відразу сконвертувати потік на веб-камеру за допомогою vMix, але не хотілося нагромаджувати все на одному комп'ютері. Тому для труконф-дзвінка використовували окремий ноутбук.

Як отримати сигнал із камери на ноутбуці? Можна створити віртуальний відеосигнал на одному комп'ютері і ловити його на будь-якому іншому комп'ютері в локальній мережі скільки завгодно разів. Це і є NDI (Network Device Interface). Насправді якийсь віртуальний кабель, який не потрібно особливо ніяк хитро адмінити. Ширина одного потоку для 1080p25 майже 100 Мбіт, тому для стабільної роботи обов'язково потрібна мережа 1 Гбіт або вайфай більше 150 Мбіт. Але найкраще саме кабель. Таких NDI-сигналів може бути багато в одній локальній мережі, аби ширини каналу вистачило.

Отже, на головному комп'ютері vMix ми бачимо сигнал з камери, відправляємо його в мережу як NDI сигнал. На ноуті-хребті ловимо цей сигнал за допомогою програми NDI Virtual Input з пакету NDI Tools (він безкоштовний). Ця міні-програма створює віртуальну веб-камеру, до якої ви включаєте потрібний NDI-сигнал. По суті, наша HDMI-камера через NDI з'явилася в TrueConf.

Що за звуком?

Як ми робили танцювальний бал онлайн

Звук із двох радіомікрофонів та фонограму ми збираємо за допомогою гарного аудіопульту та заводимо зовнішньою аудіокартою в vMix. Саме цю аудіосуму відправляємо в ефір і наш NDI-потік для труконфу. Там замість мікрофона ноутбука вибираємо NewTek NDI Audio. Тепер усі наші танцюристи бачать і чують у дзвоні нашу гарну картинку та якісний звук.

Ефірна картинка

У TrueConf вибрали звичайний режим дзвінка, коли всі бачать усіх. Ще був варіант, коли ми бачимо всіх, а всі бачать лише ведучих. Це ефективніше, але тоді не було б ефекту масовості.

Як ми робили танцювальний бал онлайн

У форматі дзвінка "всі бачать всіх" можна вибирати будь-яке вікно, яке треба зробити більшим. Так учасники бачили ведучу пару, а ми створили ще одного користувача, з облікового запису якого виводили зображення в ефір і перемикалися між парами. Ми клацали на потрібну пару і збільшували їхній екран, інші пари були дрібними внизу. Іноді виводили всі екранчики, щоб показати, як багато людей танцюють синхронно.

Тепер про синхронність

Ви, напевно, задалися питанням про затримку. Так, вона була, близько 1-2 секунд в обидві сторони. Тут у нас грає музика, до учасників звук приходить пізніше, вони танцюють під цей ритм, а до нас їхнє зображення повертається ще пізніше. Ми вирішили знехтувати це в рамках формату, і все одно це виглядало масштабно та цікаво.

Вирішити питання синхронізації для глядачів можна шляхом штучної затримки звуку у нашому ефірі для соцмереж. Тоді глядач стриму бачив би, як учасники танцюють точно в ритм музики. Але не факт, що зображення з усіх приходить з однаковою затримкою. Це чергове ускладнення схеми ефіру, що обов'язково зробимо так наступного разу.

До речі, у пакеті NDI Tools є ще одна міні-програма Scan Converter. Вона створює NDI-сигнал, захоплюючи ваш екран або веб-сайт. Саме так легко можна організувати ефір, наприклад, кіберзмагання всередині локальної мережі, маючи лише цю мережу та веб-камери. Більше ніяких аксесуарів не потрібно.

Як ми робили танцювальний бал онлайн

Для нас це був черговий проект, де потрібно було випробувати нові рішення, з якими ще не стикалися в бойових стримах. Я із задоволенням відповім на всі ваші коментарі, уважно та з цікавістю вивчу побажання та рекомендації, якщо ви знаєте, як можна було зробити краще. Світ стриму нескінченний, багато технологій з'являються на наших очах і вчитися разом можна швидше. Нижче можна переглянути оглядове відео з майданчика.



Джерело: habr.com

Додати коментар або відгук