Бондинг: Wi-Fi і мобільні дані в одному стримі за п'ять хвилин

Налаштуйте бондинг srtla в LOLS IRL, читайте індикатори кожного каналу під час стриму та знайте, чого чекати, коли мережа вперше відвалиться.

Бондинг (об'єднання каналів) відправляє ваш стрим через усі мережі, які є на телефоні, одночасно. Це різниця між стримом, що закінчується, коли пропадає Wi-Fi, і стримом, що йде далі через мобільні дані без вашої участі. Налаштуйте раз, і далі це просто ваш спосіб виходити в ефір.

Що потрібно спочатку

Як це налаштувати

  1. Візьміть дані свого приймача. Для безкоштовного релея це ключ з relay-auth.lols.gg, який уже приходить у вигляді stream id. Для власної машини це ім'я хоста, UDP-порт і той stream id, який чекає ваш сервер.
  2. Відкрийте Streams і додайте призначення. У застосунку зайдіть у Streams, натисніть + і виберіть SRTLA серед трьох протоколів. SRT дає одне з'єднання до вашого приймача, RTMP йде прямо на платформу, а SRTLA працює з бондингом.
  3. Заповніть хост і порт. З релеєм натисніть кнопку свого регіону, і хост, порт та назва підставляться самі. Найближчий регіон до країни вашої SIM-картки позначений зіркою. З власним приймачем введіть публічне ім'я хоста й UDP-порт, який він слухає.
  4. Вставте ключ у Stream id. Саме тут люди помиляються. Ключ релея вже містить префікс publish:, тож вставляйте його цілим у Stream id, а не в назву й не в кінець хоста.
  5. Для початку лишіть Latency на 2000 ms. Це значення за замовчуванням, і воно розумне. Більше витримує гірший сигнал, менше зменшує затримку, але лишає менше місця, щоб повторно надіслати загублений пакет. Коли ви в ефірі, застосунок показує виміряний час проходження туди й назад і радить значення, яке йому відповідає, тож підлаштуйте його потім за реальними цифрами, а не вгадуйте зараз.
  6. Збережіть і переконайтеся, що призначення ввімкнено. Найтихіший спосіб не вести стрим: призначення збережене, але не ввімкнене.
  7. Почніть стрим і розгорніть статистику. Торкніться оверлея статистики на екрані стриму, щоб розгорнути його. Ви маєте побачити по одному рядку на канал: wifi і cell, кожен зі своїм бітрейтом і часом проходження туди й назад. Два рядки означають, що бондинг працює. Один рядок означає, що ні, а чому, підкажуть помилки нижче.

Як читати індикатори

У згорнутому вигляді оверлей показує точку стану, ваш бітрейт, частоту кадрів енкодера, час проходження туди й назад і скільки ви вже в ефірі. Торкніться його, щоб відкрити деталі:

ПоказникЩо він каже
send bufferПровідний індикатор і той, за яким треба стежити. Буфер наповнюється раніше, ніж картинка починає смикатися, тож зростання цифри попереджає, що канал напружений, а не звітує, що він уже відмовив.
targetБітрейт, до якого зараз цілиться адаптивний бітрейт; він сам падає й піднімається назад, коли умови змінюються.
dropped і retransmitВтрачені й повторно надіслані пакети. Кілька retransmit у мобільній мережі нормальні, а кількість dropped, що зростає, ні.
По одному рядку на каналПідписані wifi, cell або eth, кожен зі своїм бітрейтом і часом проходження туди й назад, тож видно, яка мережа що несе.
Точка в рядку кожного каналуЗелена означає, що канал активний і несе трафік, жовта означає, що він підключається або завис, червона означає, що він мертвий. Червоний рядок, поки стрим іде: бондинг робить свою роботу.
По одному рядку на призначенняЗ назвами, тож якщо ви надсилаєте в кілька місць, видно, яке з них лежить, поки інші в порядку.

Що буває, коли канал падає

Нічого драматичного, у цьому й суть. Рядок каналу, що відмовив, червоніє, решта каналів підхоплюють трафік, а стрим лишається на зв'язку. Коли мережа повертається, цей канал заново реєструється на приймачі й сам приєднується до групи. Вам не треба зупиняти, перезапускати чи чіпати будь-що.

Два моменти, про які варто знати наперед. По-перше, канал, що вижив, має нести весь стрим, тож якщо ваш бітрейт розрахований тільки на хороший Wi-Fi, адаптивний бітрейт знизиться, поки працюють мобільні дані, і підніметься назад потім. По-друге, бондинг дає стійкість, а не додаткову швидкість: канали ніколи не складаються в ширшу трубу. Виставте бітрейт на рівні того, що тягне один хороший канал, і переходу ви майже не помітите.

Перевірте це навмисно, ще до того, як воно знадобиться. Почніть стрим із бондингом удома, дочекайтеся, поки статистика стане рівною, потім вимкніть Wi-Fi на хвилину й дивіться. Рядок wifi почервоніє, рядок cell візьме на себе стрим, а коли ви ввімкнете Wi-Fi, усе повернеться. Десять хвилин такого вартують більше, ніж будь-яке читання, і набагато краще з'ясувати це на кухні, ніж посеред стриму.

Помилки, через які люди провалюють першу спробу

Адреса у власній мережі

Це головна помилка. Приймач за адресою 192.168.1.50 доступний через ваш Wi-Fi і більше ніде, тож мобільний канал не може зареєструватися, і ви не з бондингом, а просто на Wi-Fi із зайвими кроками. Призначення має бути публічним ім'ям хоста або адресою, тобто релеєм, хостингом або пробросом UDP-порту на роутері до вашої машини з публічною адресою роутера. Те саме правило для ноутбука на вашому столі.

Порожній або наполовину вставлений stream id

Приймачі автентифікують паблішерів, тож порожній або обрізаний stream id дасть з'єднання, яке нікуди не веде. Вставте ключ цілим, разом із префіксом publish:, у поле Stream id.

Очікування більшого бітрейту

Два канали не складаються. Якщо ви виставили бітрейт, який тягне тільки ваш Wi-Fi, стрим виглядатиме гірше, щойно працюватимуть мобільні дані, і ви звинуватите бондинг у протилежному тому, що він зробив. Бондинг тримає вас в ефірі. Бітрейт обирається окремо.

VPN на телефоні

VPN перехоплює кожен сокет на пристрої, тож застосунок не може відкрити по одному на мережу, і об'єднувати нічого. Статистика прямо про це каже, коли так стається. Вимкніть VPN або виключіть LOLS IRL з нього в налаштуваннях самого VPN-застосунку.

Надсилання srtla на звичайний SRT-сервер

SRTLA потрібен приймач із srtla_rec, який і збирає канали докупи. Звичайний SRT-слухач не розуміє реєстрації групи. Скористайтеся релеєм або запустіть srtla_rec перед вашим SRT-сервером, як описано в посібнику з власного хостингу.

Релей на іншому кінці світу

Відстань коштує затримки, яку не повернеш, а достатньо довгий час проходження туди й назад може взагалі не дати з'єднанню встановитися. Обирайте найближчий регіон: застосунок позначає зіркою той, що збігається з країною вашої SIM-картки.

Коли все працює

Далі: використання безкоштовних релеїв