Русский
Русский
English
Статистика
Реклама

Facecast

Как организовать трансляцию на 5 суток (почти) без разрывов?

07.06.2021 16:20:09 | Автор: admin
Недавно закончился наш слегка безумный спецпроект с роялем, падающим на танцующего котика. Пять суток подряд мы показывали с трёх камер висящий рояль и его клавиши с помощью сервиса потоковых трансляций Facecast и устройств Evacoder One. Хотим рассказать вам, как это всё было организовано, и поделиться своими впечатлениями.

Почему мы решили не использовать Youtube?


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

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

И третьим аргументом было то, что вся связка (как минимум та, что будет закреплена на рояле) должна работать все 5 суток как часы, чтобы не приходилось ставить стремянку и что-то там химичить. Во-первых, это нарушило бы сценарий (что это вообще за мужик в квартире у девушки?), а во-вторых, доступ к транслирующему оборудованию был бы невозможен, потому что оно размещено внутри рояля, а крышку после подвешивания рояля уже не поднять, она крепко прижималась бы тросами:


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

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

Так выглядела октава рояля на сайте:


А это вид с камеры GoPro, закрепленной на рояле и транслирующей игру участников квеста:


Кроме того, каждый день в 12:00 наша девушка должна была перерезать очередной трос, и это тоже должно быть видно без задержек и с высоким качеством, ведь с каждым перерезанным тросом вероятность того, что рояль упадёт, будет всё выше.

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

Схема работы сервиса выглядит так:


Ключевых компонента два: облачный сервис и устройство-энкодер. К одному или нескольким энкодерам мы подключаем камеры, а сами энкодеры подключаем к сети по проводу, Wi-Fi или через сотовый модем и можно всем показывать. Для просмотра трансляции достаточно браузера, никаких специальных приложений не нужно. Плеер подберёт наилучшие разрешение и битрейт для конкретного устройства, чтобы и качество картинки было наилучшим, и чтобы тормозов не было. Можно также встроить видеопоток в свою страницу, например, страницу митапа или лендинга.


За бесперебойность трансляции отвечают аппаратные энкодеры, который берут сигнал с камер, преобразуют его и через облачный сервис передают его зрителям. Компания предлагает несколько моделей энкодеров, мы взяли самую простую Evacoder One, небольшой плоский кирпичик из цельного алюминия, весь покрытый рёбрами охлаждения.


Эта модель предназначена для стационарных трансляций из помещений. К такому энкодеру можно подключить через HDMI или SDI одну камеру. Аппарат поддерживает современные видеокодеки Н.264 и Н.265 и передаёт видео с частотой 30 кадров в секунду и разрешением до 4К.

Самое интересное, что к сети Evacoder One можно подключить не только проводом или через Wi-Fi, но и одновременно до 16 сотовых модемов. Устройство объединяет их пропускную способность, и таким образом можно передавать тяжёлые 4К-потоки. При подключении через один 4G-модем с момента поступления сигнала в энкодер до его появления на сервисе проходит 10-30 секунд. Но конечная задержка зависит от интернета у конкретного зрителя. Ещё одна фишка связки сервиса и энкодером буферизация потока: даже если интернет-подключение энкодера временно прервётся, трансляция будет идти непрерывно, и после восстановления подключения произойдёт бесшовное восстановление потока.

На стороне облачного сервиса тоже много интересного. Например, есть restream-сервер и функции разграничения доступа зрителей, чтобы предотвратить пиратские ретрансляции с одного аккаунта. Есть богатые средства аналитики аудитории. Через сервис можно даже продавать билеты на трансляции.

У нас было три вещательные камеры, подключённые к трём Evacoder One: одна камера снимала общий план рояля, вторая снимала его со стороны тросов, а третья камера снимала крупным планом клавиши рояля:





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




Общее впечатления и факапы


Первый факап случился через 20 часов после начала трансляции. Изображение с двух камер GoPro стало дергаться. Мы быстро сообразили, что дело в стабилизаторе камер GoPro 7, который перегрелся и устал. Камеры были установлены на штативах, поэтому стабилизатор там вообще не нужен был и мы его выключили, после чего изображение снова стало стабильным (и, кстати, задержка тоже стала меньше, потому что теперь камерам не приходилось обрабатывать видео для стабилизации и они сразу отдавали его в HDMI).

А второй факап произошел в самый неподходящий момент

Как мы уже писали, Evacoder One поддерживает не только два независимых проводных Ethernet-соединения с интернетом, но и до 16 сотовых модемов. В качестве основного канала у нас была выделенная линия от местного провайдера, стабильно отдающего 250 мегабит в секунду. Второй проводной Ethernet протянуть было нельзя, потому что в здании интернет захватил монополист, не пускающий других провайдеров (думаю, ситуация знакомая для многих организаций). Поэтому в качестве резервного интернет-канала у нас был LTE-модем от Yota. Студия расположена рядом с оборонным предприятием, которое глушит сигналы сотовой связи и LTE-соединение периодически отваливалось. Но через 2-3 минуты сигнал восстанавливался и последующие 4-5 часов вёл себя хорошо, отдавая стабильно 50 мегабит в секунду.

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

Оцените иронию: пять суток трансляция велась без сбоев, и в самый кульминационный момент примерно на 12 секунд подвисло изображение с одной из камер (общего вида, спасибоBuzzardDoc за запись). На записи, которая пришла на сервер, сбоя нет, но, вероятно был небольшой дисконнект между Evacoder One и сервером Facecast из-за сбоя в интернет-соединении, что и вызвало задержку.


Однако это стало предметом для шуток в чате квеста про то, что это был фотошоп и рояль на самом деле не стали ронять, а аккуратно опустили. Хорошо, что мы вели запись еще с 5 камер, и момент падения выложили через пару часов.


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

Поэтому совет: не пренебрегайте резервными интернет-каналами для своей трансляции, создатели Evacoder One не зря предусмотрели их аж 18 штук.

И напоследок немного скриншотов и статистики:


Пики максимума зрителей приходились на 12:00. Всем было интересно посмотреть, как девушка перерезает болгаркой очередной трос.


По статистике трансляции мы отслеживали динамику интереса аудитории:


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





Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru