Autoalojar un receptor SRTLA

LOLS IRL habla srtla estándar compatible con BELABOX, así que tu propio receptor se comporta exactamente como nuestros relays alojados. Esto es lo que hay que ejecutar, qué puertos importan y el único error que impide que una conexión de datos móviles llegue nunca a tu máquina.

No tienes que alojar nada: los relays gratis de LOLS Cloud existen para que el bonding funcione nada más instalar, o puedes autoalojar tu propio receptor y no depender de nadie. Hay buenas razones para alojar. Quieres que la emisión caiga en infraestructura que controlas, quieres una máquina físicamente cerca de ti donde nosotros no tenemos relay, no quieres pensar en ningún límite, o simplemente prefieres ejecutar tus propias cosas. Nada en la app está atado a nuestros servidores, así que cambiar es cambiar un nombre de host y nada más.

Lo que vas a montar

móvil (wifi + datos móviles)
   |
   |  srtla, UDP, un socket por red
   v
srtla_rec          escucha en un puerto UDP público, reensambla las conexiones
   |
   |  SRT normal, UDP, en localhost
   v
servidor de medios MediaMTX o equivalente
   |
   +--> OBS, o una retransmisión a Twitch / Kick / YouTube

Son dos piezas, y cada una tiene un solo trabajo. srtla_rec, del proyecto BELABOX, es la parte que entiende el bonding: cada conexión que abre tu móvil se registra en ella como parte de un grupo, y ella devuelve ese grupo a un único stream SRT normal. Luego lo reenvía a un listener SRT, que es donde entra un servidor de medios. MediaMTX es la opción habitual y puede pasar el stream a OBS, republicarlo o grabarlo, pero vale cualquier cosa que acepte SRT.

Dónde ejecutarlo

El receptor tiene que ser accesible desde todas las redes por las que emite tu móvil, lo que en la práctica significa una dirección pública. Un VPS pequeño basta de sobra: esto es reenviar paquetes, no transcodificar, así que importan mucho más los megabits y una CPU modesta que los núcleos. Ponlo geográficamente cerca de donde emites, por la misma razón por la que eliges el relay más cercano: la distancia es retardo que no recuperas, y se paga otra vez en cada retransmisión.

El error que pilla a casi todo el mundo

Un receptor en tu LAN de casa, en algo como 192.168.1.50, es accesible desde tu Wi-Fi y desde nada más. Tu conexión de datos móviles no puede llegar a una dirección privada, así que nunca se registra y no haces bonding: emites por Wi-Fi con pasos de más, y las estadísticas te mostrarán una conexión en vez de dos.

O lo alojas en una máquina con dirección pública, o rediriges el puerto UDP de tu router a la máquina de tu LAN y apuntas la app a la dirección pública de tu router. Un nombre de DNS dinámico te ahorra reescribirla cada vez que cambie tu dirección.

Puertos

PuertoPara qué sirve
UDP, tu puerto srtla, entrante desde internetEl único puerto que toca el móvil. Lo habitual es el 5000. Cada conexión del bonding llega desde su propia dirección y puerto de origen, así que no hay nada por conexión que abrir ni configurar.
UDP, tu listener SRT, localDonde srtla_rec reenvía el stream reensamblado. MediaMTX escucha SRT por defecto en el 8890. No hace falta exponerlo a internet a menos que también quieras que publiquen en él clientes SRT normales.
Lo que sirva tu servidor de mediosRTMP, RTSP, HLS o WebRTC hacia OBS o hacia un espectador, a tu elección y fuera del camino del bonding.

UDP no es TCP

Los cortafuegos, los grupos de seguridad de la nube y las reglas de redirección del router suelen venir por defecto con TCP. Un registro srtla enviado a una regla solo TCP desaparece sin error en ningún sitio, y se ve igual que si el receptor estuviera caído. Si una conexión no se registra, comprueba el protocolo de la regla antes que nada.

Stream ids

srtla_rec pasa el stream id de SRT tal cual, así que lo que va en el campo Stream id de la app es lo que espere el servidor que tiene detrás. Con MediaMTX es la forma de publicar, una ruta y, si la autenticación está activada, también credenciales:

publish:mypath
publish:mypath:username:password

Activa la autenticación si el puerto está abierto a internet. Un punto de publicación sin autenticar en una dirección pública acabará encontrándolo alguien que no eres tú.

Apuntar la app hacia él

  1. En LOLS IRL: Streams → + → SRTLA.
  2. Host: tu nombre de host público. Port: el puerto UDP en el que escucha srtla_rec.
  3. Stream id: la cadena de publicación que espera tu servidor de medios.
  4. Latency: 2000 ms al principio. Cuando ya estés en directo, la app muestra el tiempo de ida y vuelta que mide y sugiere una cifra, que en una máquina cercana suele ser menor que la de por defecto.
  5. Guarda, actívalo, emite en directo y despliega el overlay de estadísticas. Una fila por conexión. Dos filas significan que se han registrado las dos redes.

Comprobar que funciona de verdad

Notas que conviene tener de antemano

¿Te has atascado en un paso, o quieres otro par de ojos sobre un receptor que no acepta la segunda conexión? Pregunta en Discord o escribe a support@lols.gg. Trae la región en la que estás, lo que muestra el overlay de estadísticas y lo que registró el receptor, y suele resolverse en dos mensajes.

Relacionado: bonding en cinco minutos para la parte de la app y cómo leer los indicadores, usar los relays gratis si prefieres no alojar, y todas las guías.