Я собрал бюджетный набор для IRL-стриминга на Raspberry Pi. Часть первая — бондинг
Расскажу историю моего увлечения IRL-стримингом и Raspberry Pi. Это первая часть про идею и бондинг. Время чтения ~7 минут.
Пришла как-то мне в голову идея. Даже не идея, а сильное желание - стать стримером на твиче. Да не просто стримером-сычом, а IRL-стримером с желанием вести поток на свежем воздухе. В идеале, верхом на велосипеде. Я обожаю кататься, слушать музыку и вести беседы во время неспешной велопрогулки. Так почему бы не делать этого в онлайне? Такая вот навязчивая и очень бодрящая (на тот момент) идея.
Опыта в сфере стриминга не было никакого, разве что раньше раз в месяц я проводил получасовые эфиры в своём инстаграме. Мне казалось, что в целом всё будет также просто: нажал кнопку и ты в эфире! (конечно же нет)
Погружаясь детально, я выделил для себя несколько обязательных требований, чтобы моя трансляция на свежем воздухе была возможна:
1) Отсутствие проводов.
Я не хочу ехать на велосипеде и размахивать проводами по сторонам. Наверное, с проводами всё работает проще и стабильней, но мне просто не нравится.
2) Фишай камера.
Мне понравилась GoPro 9, но одинаково подойдут любые камеры с возможностью трансляций по RTMP. На выходе хочется видеть красивую, плавную картинку с широкого угла.
3) Длительность трансляции до 3 часов.
Кажется столько время я готов провести на потоке, крутить педали, общаться и всё в этом роде.
4) Стабильное подключение к интернету.
В особенности канал на отдачу. Для картинки 720p потребуется от 3 Мб/с upload, а для 1080 от 5 Мб/c.
5) Нужна компактность.
Я готов взять с собой лёгкий рюкзак. Хочется, чтобы всё оборудование весило не более 1,5 кг, помещалось за спиной не создавало неудобств во время пути.
6) Бюджетная сборка.
Хочется уложиться в нужный фунционал и не попасть на деньги. Мне надо пощупать эту идею изнутри и если понравится, то вкладываться большим бюджетом.
Погнали собирать.
Пункты 1, 2 и 3 закрываются одним девайсом — камерой GoPro 9 с тремя батареями. Подробно о выборе камеры, картинке с неё и возможностях для стриминга напишу в другой части рассказа.
Где взять стабильный интернет, находясь в пути?
Я начал тестировать раздачу с телефона. Достал свой старенький Samsung J5, который пылился в полке. С приёмом сигнала у этого телефона оказалось всё в порядке. Он отлично ловит 4G+ от Мегафона и выдаёт 30-50 Мб/с при хорошем сигнале. Опытным путём я обнаружил, что такая скорость в пути — это большая редкость. При движении вышки постоянно меняются, сигнал скачет с 3G на 4G. При переключениях соты скорость падает до нуля. Также во многих местах города сигнал только 3G, а на нём даже при 100% сигнале у меня не получалось достичь скорости более 5 Мб/с на отдачу. С таким каналом вести трансляцию невозможно. Картинка рассыпается, звук начинает трещать и стрим просто падает. Приходится снова его запускать, в общем отстой.
"Нужно каким-то образом сделать резервный канал, а лучше два", — сказал я себе. Это позволит уменьшить вероятность падения скорости в ноль и я всегда буду онлайн! Может использовать два мобильных оператора сразу? А может три?
Мне нужен бондинг!
Погуглил, покурил форумы, поспрашивал в чатиках и узнал о существовании бондинга (bonding). Интересная технология, я раньше о ней не слышал. Поэтому мне показалось, что она нишевая и редко кто ей пользуется в быту, а зря!
Бондинг, говоря простым языком, это слияние или сложение каналов. Например, у вас есть дома проводной интернет 50 Мб/с и вы раздали с телефона 4G+ на 50 Мб/c с iPhone. Используя бондинг, вы получите канал до 100 Мб/с. Плюсом к этому интернет будет доступен при отключении одного из каналов. (Заранее извиняюсь перед профи в этой теме! Я пишу про практическую часть бондинга, а как это работает технически и почему так происходит, я не касаюсь)
На рынке существуют гаджеты, которые позволяют делать бондинг и разработаны специально для IRL-стримеров. Вот это удача! Вставляете в них пару тройку usb-модемов и радуетесь. Например, LiveU Solo. Коробка умеет всё необходимое: здесь есть бондинг и сервис для стриминга по подписке и техподдержка персональная. Цена на этот гаджет начинается от 100.000 рублей, подписка от 13.000 рублей в месяц. (ВТФ?!)
В России найти LiveU Solo почти невозможно, да и вообще вы заголовок статьи видели? Наверное, его юзают телеканалы для включений в полях или блогеры милионники, которые давно в этой теме и могут себе позволить такие расходы. Есть аналоги от китайцев на Али, которые в половину дешевле. Тут классика: сложно понять за что ты платишь, отзывов нет, обзоров на гаджеты тоже. Ну и ценник 50.000 рублей всё равно кусачий.
Чудесная и компактная ягода Raspberry Pi 4.
Оказалось, что существует такая штука, как Raspberry Pi. У неё куча разъемов, в которые я смогу подключить мои модемы и не только. Одноплатный компьютер звучит скучно. А если так:
- Цена до 100$
- Вес с корпусом 100 грамм
- Питание от powerbank
- 4 USB порта + HDMI + Wi-Fi 2,4/5
- Шустрый процессор + графическое ядро + 4 Гб оперативки
- И полноценная операционная система Линукс?
По-моему просто великолепно и выглядит мило. Купить малину легко новую, так и б/у на авито. Я взял новую в комплекте с красным корпусом и кулером (да-да кулер нужен). Пришла красавица, замигала лампочками на передней панели и зажужжала кулером. Так я начал знакомиться с Линуксом, точнее с Raspbian.
Я считаю себя опытным юзером Windows и MacOS, но с Линуксом полный ноль. Малина позиционируется, как компьютер для обучения навыкам программирования и не только. Учиться придётся, без этого просто никак. Слава Линуксоидам, на малине есть графическая оболочка и это облегчает работу таким нубам как я. Без графики работать также можно, но я до сих пор не понимаю зачем смотреть только в командную строку и так себя ограничивать. Не буду сейчас рассказывать все детали настройки этого девайса, для этого также потребуется отдельная статья. Можете задать вопросы в комментарии по настройке, попробую помочь.
Делаем из малины точку доступа с бондингом.
Моя цель реализовать такую идею: все гаджеты, которые будут у меня с собой работают в одной сети по Wi-Fi. Эту сеть раздаёт малина, в которую подключены модемы разных операторов. Если один из них залагал, завис или потерял сеть, то второй резервирует его. Если работают оба, то скорость складывается. При домашнем использовании в неё можно подключить Lan кабель и защитить себя от разрывов интернета дома, принцип будет такой же — собираем интернет из двух и более источников и раздаём в сеть. Я нашёл два варианта бондинга на малине. Первый Open MTCP Router, а второй сервис Speedify VPN. Расскажу про каждый:
OpenWrt Router
По сути превращает малину в новое устройство: в роутер. Теперь ваша малинка стала роутером. Наверное самым умным и гибким роутером, который только может быть. Настройка производится через веб интерфейс, чем-то похоже на настройку домашнего роутера, но намного сложнее. У меня ушло 3 дня, чтобы запустить это чудо и мне помогали знатоки. В целом крутой опыт, но для меня это сложно и не подходит для стрима. Выводы такие:
- Бесплатно
- Сложность настройки 4/5
- Функционал 5/5
- Нужен дополнительный сервер VPS
- Нельзя использовать ничего, кроме роутера на малине (либо я не понял как это сделать)
Speedify VPN
Это полная противоложность OpenWrt. Готовое решение для обычных людей в виде симпатичной приложухи для Raspbian. Красивое меню с графиками и кнопочками, с анимацией и даже кнопкой шеринга в соцсети (это бред). Также есть версии для всех устройств ПК и мобильных. Покупаешь подписку за 14.99$ в месяц и одной кнопкой запускаешь бондинг. Мой вывод:
- Сложность настройки 1/5
- Функционал 3/5
- Можно юзать подписку на других устройствах
- Есть готовый режим для стримов, видео звонков
- Можно выбрать разные сервера, это ведь VPN
- Малина остаётся собой и можно запускать любой софт вместе с бондингом, а это нам пригодится дальше.
Выбор в пользу Speedify не так очевиден, ведь мне нужна бюджетная сборка, а 14.99$ в месяц совсем не лишние. Однако, подписку можно отключить в любой момент, плюс сервис мне реально понравился. Классная техподдержка, отличный подход к решению задачи и подробная справка, которая помогла узнать ньюансы и тонкости. Также у них есть видео, на основе которого я собирал свой сетап. Поэтому респектую ребятам из Speedify и едем дальше.
Покажи уже что получилось, ну!
Показываю! Напомню, что мне важна скорость отдачи и именно для увеличения канала upload я заморочился. Замеры в реальной среде с плохим сигналом, где я в 2 км от базовой станции плюс идёт дождь.
Что в итоге?
Теперь у меня есть точка доступа с резервированием каналов и возможностью апгрейда. При желании можно воткнуть 4 модема или телефона и получить скорость на уровне домашней сети (а зачем?).
В этой статье я рассказал о бюджетном бондинге для начинающих стримеров. Конечно, это только одна часть, которая необходима для стрима. Также понадобится камера, RTMP/SRT сервер, настройка OBS. Про это смогу рассказать в следующих статьях.
Это мой первый пост на vc.ru, поэтому буду рад адекватной критике, вашим комментариям с вопросами. Дайте знать была ли статья полезной. Желаю классного дня! Телеграм для связи @supagood