Вебкам рестриминг
Эту статью написал канал Just a model.
Привет! Извечны темы "а не забанят ли вебкам" и "а че делать если компьютер слабый, а я хочу стримить на все сайты"
И в том и в том случае нам может помочь рестриминг (в первом случае еще немного прокси/vpn/зеркал)
Что вообще такое рестриминг?
Смотри, когда ты стримишь чисто со своего компа на стопицот сайтов, то на все сайты трансляцию отправляет твой бедный комп, а чем больше сайтов - тем больше нагрузка (как на железо, так и на интернет).
Когда ты рестримишь, то твой комп отправляет трансляцию только на один сервер, который уже сам распределяем поток куда нужно, таким образом мы:
- Снимаем нагрузку с компьютера (видео кодируется всего один раз)
- Можем обойти блокировки (видео отправляется не напрямую на условный чатур, а на сервер в Париже или Горно-Урюпинске (смотря где расположен сервер), а уже этот сервер, расположенный в стране, которая не блокирует вебкам, отправляет стрим куда надо)
Относительно пункта один я думаю все понятно :D
Пункт два - рестриминг жестко выручал меня на стримах в поездках, когда в отеле или апартаментах Wi-Fi остался где-то в 2007
Относительно пункта три - когда я жил в России таких жестких блокировок не было (кроме одного локального провайдера, но судя по ощущениям он забанил чару чисто мне за количество сожранного трафика).
Всегда блочились только "оболочка" сайта, но это фиксилось зеркалом/впн/прокси. А вот сервера для стрима всегда оставались доступны (до есть, в принципе, стримить можно было и без ВПН, он нужен чисто чтобы чат читать).
Однако, как мы все знаем в сторону вебки (и не только) в РФ происходят ужесточения, так что никто не знает что будет.
И опять же - пункт три помогал мне в поездках, например на Бали почти у всех провайдеров блокнуты вебкам, причем прям сервера для стримов
Какие есть варианты рестриминга?
Вообще есть уже готовые сервисы, где вам нужно просто заплатить деньгу, указать ключи доступа и кайфовать, например Restream
Плюсы Resream.io - все готово, удобный интерфейс, можно менять сервера для стримов на ходу (например, на Бали рекомендую выбирать сервер в Сингапуре, так как Индонезия закупает самый дешевый трафик, который ужасно "ходит" в Европу, но хорошо "ходит" в Сингапур, у которого трафик уже намного лучше), а также сохраняет записи стримов в вашем аккаунте (можно потом скачивать и нарезать)
Минусы Restream.io - платный. Причем ценовая политика не то чтобы самая вкусная:
Бесплатную версию можно даже не рассматривать - ограничения по качеству, по вариантам куда стримить
$19/month - стрим максимум на 5 сайтов, сохраняет до 5 файлов (записи стримов или загруженные тобой), запись стримов до 6 часов, нет вотермарки
$49/month - все что выше, но до 8 сайтов, до 10 файлов, до 10 часов записи, стримить в Full HD можно прямо из браузера (без OBS) и еще пару не нужных в нашем контексте плюшек
Остальные тарифы - уже излишества
Кроме того, если мы параноик-пароноидальный, то мы никогда не можем доверять рандомный сервисам x)
Поэтому для нас остается вариант номер два - свой self-hosted рестрим-сервис
Схема проста - арендуем сервер, ставим софт, настраиваем, используем
Плюсы: работает. дешево. за нами точно не следят (никто не будет проверять данные тысяч серверов в огромном дата-центре. я серьезно, кто-то полезет только по прямой наводке, а если ваш дата-центр и его фирма-провайдер located где нибудь в стране с разрешенным порно, то всем вообще наплевать будет). вы почувствуете себя хакером при установке.
Минусы: вы почувствуете себя хакером при установке - на первый взгляд все может показаться дико-сложным, потому что мы все привыкли кнопочки нажимать и картинки лайкать, мало кто из нас видел "экран по ту сторону", но если вы будете тупо повторять эту статью шаг за шагом и строчка за строчкой, то у вас ТОЧНО все получится.
нет вообще ничего кроме рестриминга.
Переходим к делу, сейчас вам покажется, что вы ничего не понимаете
РЕГИСТРАЦИЯ СЕРВЕРА
Для начала нам нужен сервер на котором будет крутится наша шарманка
В принципе, вы можете сами найти где купить сервак, но тогда не удивляйтесь, если что-то будет не работать - я пишу статью основываясь на серверах, которые использую я
Моя рефералка на aeza.net (компания из UK, большая часть серверов в ЕС)
Регистрируемся и открываем слева раздел "Виртуальный сервер"
- Вводим любое название
- Выбираем любую локацию где будет находится наш сервер (не Москва)
- Тариф выбираем Shared
- Далее надо выбрать один из вариантов характеристик сервера
- Операционная система - Ubuntu 24.04
- Выбираем на сколько хотим арендовать сервак
- Снимаем галочку с "Подключить бэкапы"
К нам на почту приходит такое письмо:
В разделе "Подключение к серверу" вы найдете ip, логин и пароль от сервера
Сохраните их, они понадобятся для подключения к серверу и настройки
ПОДКЛЮЧАЕМСЯ К СЕРВЕРУ
Так, сразу оговорюсь - порядок действий для пользователей Windows немного другой, в отличии от пользователей компьютеров на Mac OS (макбуки, аймаки и прочие яблочные яблоки) и Linux (выкто?)
Так что давайте начнем с винда-водов, остальные могут скипать этот пункт
Для пользователей винды
я хотел написать тут другую инфу, но после ресерча выяснил, что она не актуальна начиная с 10-й версии винды. однако, инфа дальше не очень проверена, но проверить это я не могу - я яблокодрочер. если что-то не будет работать - пишите в ЛС или в комменты, разберемся.
Если версия вашей винды меньше 10-й, то чисто от души рекомендую уже обновится (если что 10-ка уже считается устаревшей)
- Откройте «Параметры» — «Приложения».
- Выберите подпункт «Дополнительные компоненты».
- Выберите подпункт «Дополнительные компоненты».
- После установки перезагрузите компьютер.
Продолжаем
Теперь открываем терминал или командную строку:
- Плачем (потому что у нас Linux)
- Плачем (потому что у нас Linux и мы не знаем как открыть терминал)
- Нажимаем Ctrl + Alt + T
- Плачем (для профилактики)
Далее смотрим на данные, которые были присланы нам в письме и вбиваем следующую команду по шаблону:
ssh <логин>@<ip>
например, если мой логин в письме diana-chaturbabes и мой IP 1337.228.0.147
то я вбиваю следующую команду:
ssh diana-chaturbabes@1337.228.0.147
то ручками вбиваем yes и нажимаем enter
Далее нам надо будет ввести пароль от сервера (нам его отправили в письме)
В качестве меры безопасности вы не будете видеть никакие символы, когда вводите пароль, но он вводится
Если получаем что-то такое (если что, то цвет текста и фона не важен, это так, если кто-то начет паниковать "А У МЕНЯ НЕ КАК В ХАКЕРСКИХ ФИЛЬМАХ" - я сделал зелено-черным все, чтобы вам видно удобнее было):
ПОДГОТОВКА СЕРВЕРА
Просто следуйте за мной и вводите команды одна за другой.
Команды я буду отмечать вот так:
это команда вводите ровно так как тут написано
Переписали команду - нажали Enter
На всякий случай - ВСЕГДА СМОТРИТЕ НА САМУЮ НИЖНЮЮ СТРОЧКУ В КОМАНДНОЙ СТРОКЕ/ТЕРМИНАЛЕ
Иногда там могут попросить сделать какое нибудь действие (типо "введите yes")
Плюс по ней вы можете понять если предыдущая команда выполнилась. Как?
Вот я выделил синим - если в начале строки написано
То сервер любезно приглашает вас ввести следующую команду
Приступаем к делу
sudo apt update
Видим бегущие строчки, ощущаем себя хакером, ждем выполнения
sudo apt upgrade
По ходу выполнения нас попросят согласится с установкой, вводим символ Y и нажимаем Enter
sudo apt install -y docker-compose-v2
Также как и в прошлой команде нас просят подтвердить установку - вбиваем символ Y и нажимаем Enter
НАСТРОЙКА ПРОГРАМКИ
Копирование кода
Дальше нам надо копировать мой код на ваш сервер
Не волнуйтесь, все безопасно (если тут есть яжпрограммисты, то они могут сами все посмотреть, так и кода толком то нет)
git clone https://github.com/herbalsomml/webcam-restreaming.git
Указываем ключи доступа
Теперь нам надо вбить наши ключи доступа, для этого:
Теперь нам надо вбить наши ключи доступа, для этого:
nano webcam-restreaming/.env
Двигаем курсором мы с помощью стрелочек на клавиатуре
У курсора есть одна особенность - когда он находится на каком-то символе, это значит он находится ПЕРЕД НИМ
Нам нужно вставить сюда свои ключи потока (CTRL + V на виндовс или COMMAND + V на Mac работают для вставки) от нужных сайтов (если вы не хотите использовать какой-то сайт, то просто не изменяйте строчку с ним)
Квик туториал где найти ключи потока
Переходим на страницу стрима и нажимаем
Ваш токен стрима - это и есть ключ потока
Стрипчат:
Открываем страницу стрима, кликаем сюда
Если этой кнопки нет, то сначала кликаем сюда
Ключ потока подписан как "Ключ потока (Token)"
Бонга:
Открываем страницу стрима и ищем Stream Key
Cam4:
Открываем страницу стрима, нажимаем на кнопку "Получить ключ трансляции"
Продолжаем
Вводим наши ключи в нужные строчки, без пробелов после равно:
На примере выше мы заполнили ключи чатура, стрипа, и кам4
А бонгу оставили пустой - мы не хотим туда стримить
Теперь надо сохранить этот файл, для этого нажимаем комбинацию клавиш
После ввидим внизу "блокнота" вот такую штуку:
Мы сохранили файл, теперь нажимаем
ЗАПУСКАЕМ РЕСТРИМИНГ
Когда все данные сохранены, нам надо запустить программу:
docker compose -f webcam-restreaming/docker-compose.yml up --build
Это значит, что наша программа запущена, можете закрывать командную строку/терминал - программа запущена не на вашем компьютере, а где нибудь в далеком Париже (или не далеком, если вы такой же счастливый эмигрант как и я)
Можем идти в OBS и указывать новый сервер для стрима
Настройка OBS
Открываем OBS -> настройки -> трансляция -> настраиваемый
rtmp://<ip-сервера>:1935/stream
IP-сервера вам в письме отсылали
Еще раз, но разделяя пробелами:
Поле ключ потока оставляем пустым
Сохраняем и можем запускать стрим - он автоматически будет отправлен на те сайты, ключи которых вы указали :D
Как поменять ключи/отключить рестриминг
Если по какой-то причине вам надо сменить ключи в программе/отключить программу (например, вы где-то спалили свой сервер и боитесь, что кто-то теперь запустит стрим/выследит вас/украдут инопланетяне), то делаем следующее:
docker compose -f webcam-restreaming/docker-compose.yml down
Такие строчки (с припиской removed) говорят нам о том, что мы остановили программу - теперь сколько бы вы не запускали стрим в обс, он не будет ретранслироваться
Чтобы поменять ключи листаем выше до пункта "НАСТРОЙКИ ПРОГРАМКИ" и под-пункта "Указываем ключи доступа"
После пере-запускаем программу (выше пункт "ЗАПУСКАЕМ РЕСТРИМИНГ")