Я собрал бюджетный набор для 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
Комментарий недоступен
Спасибо приятно, насчёт звука согласен)
Вроде такой штукой попроще реализуется, нет? Встроенный LTE-модем, батарея, есть USB-для подключения смартфона. Дополнительно может послужить файловым сервером (microSD).
Комментарий недоступен
Да, классный Гаджет наверное) Но там всего одна симка, а значит, что в пути обрывов не избежать
Прочтите внимательно, пожалуйста:
есть USB-для подключения смартфонаВ контексте данной статьи имеется ввиду смартфон в режиме модема, очевидно.
Прикольно, увидел 🔥
Нет. Основная задача сложить 2 и более канала в один для увеличения скорости.
В вашем устройстве 2 максимум канала и вроде их не объединить. Явной инфы нет.
Справедливо, ну так и use-case когда надо 3-4 LTE уже гораздо, гораздо более специфичный.
и вроде их не объединитьТам OpenWRT под капотом. Если достаточно балансировки и failover - то это наклацивается стандартным luci mwan3, а если нужно именно расщепление одного стрима по двум аплинкам - это тоже настраивается, хоть и значительно сложнее.
«Расщепление на 2 стрима» или «объединение 2х и более каналов в один» не позволит просматривать трафик, повысит скорость и отказоустойчивость. Супер функция для роутеров будущего, что технически уже можно реализовать. (Дома 2х провайдеров в один канал, сотовый и тп). Я бы Купил.
Откуда цитата в кавычках? Вы не знакомы с термином "аплинк" и выдумали что-то свое вместо него?
Супер функция для роутеров будущего, что технически уже можно реализовать.Уже черт знает сколько лет объединяю ТТК и Домру средствами mwan3.
не спортивно! а как же самому поковырять route и iptables? Сделать балансировку.... =)
воот когда речь заходит о таких вещах, я сразу пас) это уже будет статья для хабра, я так глубоко не разбираюсь
Это всё классно, но хотелось бы ещё и посмотреть чё там в итоге со стримом. Или это одна из тех историй, где важен путь, а не результат?)
Дойдём и до этого, а что именно хотите посмотреть? Какая картинка будет или про что-то другое рассказывать?
Еще из относительно простого pfSense софтовый рутер из коробки может все через мышкатыканье)
Wow, I'm making the exact same thing you're making, not using csi camera directly. I use tc358743 to capture 1080p 60fps hdmi input to my raspberry pi and stream it using rtmp rtsp or srt. I'm using openmtcprouter for internet.
https://www.bilibili.com/video/BV1mr4y1m7sL/
Great! But I'm don't want to use wires when riding on the bike. Good luck, Jakie!
I'm currently using https://github.com/porech/engarde for network aggregation, It's a a open source project can use in raspberry pi os directly rather than openmptcprouter need openwrt or paid solutions like speedify. But it only can provide redundant internet connection, can not add multiple internet's bandwidth together.(need a cloud server)
I really recommend engarde If you don't need very high upload bandwidth.
А где все скачать то?
Где исходники?
Николай хороший вопрос. Это первая статья, проба пера так сказать. Напиши, пожалуйста, что именно ты бы хотел скачать или установить, чтобы я понимал о чем написать дальше.
Думаю лучше сразу настоящую инструкцию для обычного пользователя.
Сами убедились, что информации в нормальном виде нет.
Понял, спасибо за обратную связь
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
К малине по WiFi цепляешься? Я просто не работал с этой программой. Да и хотелось бы, поробнее про оборудование, настройку, и прочее))))
Да, малина является точкой доступа WiFi. Спасибо за интерес, расскажу в следующей статье
Оооо спасибо! Жду с нетерпением!))
OpenMPTCP Router отличное решение. Удобно, то что можно самому выбрать хостинг для серверной части, исходя из наилучшего маршрута/скорости/ширины канала. Сделал для загорода стационарный вариант.
На даче уверенные 100 Мбит, и то похоже в пропускную способность Mesh системы Tenda упирается.
https://www.speedtest.net/result/i/4810683062
Красавчик! Для дачи это хороший вариант при наличии достаточного сигнала от хотя бы пары операторов!
Автор, на твиче сохранились повторы или клипы, глянуть как это в работе? Напишите ник пожалуйста.
Здравствуйте, novogen73. Интересует ваш опыт настройки OMPTCProuter. Не могли ли бы вы помочь советами в удобное для вас время?
К сожалению нет, но возможно появятся)
Буду ждать)
Можно ворвусь в беседу!? Тема интересная но на основе малины и сервера не получается пока корректно решить задачу стрима. В использовании как источник интернет да, 80-90мб на не дорогом сервере с белым ip на 4 свистках и телефоне не проблема получить практически в любой точки города. На прием и передачу. С учётом , что в современных телефонах стоят модемы с агрегацией сигнала 2х и более только на приём. Со стримом дела обстоят хуже.Видео сессия привязывается к 1 ip оператора сотовой связи и по этой причине сессия закрывается при переходе на другого оператора связи.Пока упёрся в эту проблему почему при приёме и передаче 80мб по спидастру (многозадачный тест)не могу получить стабильных хотя бы 4мб/с видео на свой принимающий сервер.
Михаил, смотри для этого уже придумали сервис Speedify, который является по сути VPN. Он решает проблему привязки сессии к ip, также там есть специальный режим для стриминга и видеозвонков. Я его тестировал и стрим не ломается даже при полном отключении одного из источников. Единственное, что у них не всегда были доступны сервера в мск и спб, поэтому пинг был достаточно большим.
Greeting
I have a few questions about the setup.
Where did you install the VPS and is it important to set up the LTE modem.
Milan
https://immers.cloud VPS
Modem settings are default