La casilla de latencia SRT no es un ajuste de velocidad. Es el tiempo que le das al protocolo para darse cuenta de que se ha perdido un paquete, pedirlo otra vez, y recibirlo antes de que la imagen lo necesite. Ponlo demasiado bajo y el stream se congela en cada mal segundo de cobertura móvil. Ponlo con sensatez y ese mismo mal segundo es invisible.
Para IRL el número sensato es mayor que el de estudio. Esto es lo que hace, lo que debes escribir, y cómo saber si es esto lo que hay que cambiar.
Qué es el número en realidad
SRT va sobre UDP. Cuando se pierde un paquete, el receptor detecta el hueco y le pide al emisor ese paquete otra vez. El valor de latencia es cuánto está dispuesto a esperar el receptor esa respuesta antes de tener que rendirse y reproducir lo que tiene. Todo lo que llega dentro de la ventana se recoloca en orden y el espectador nunca ve la pérdida. Todo lo que llega fuera de la ventana se descarta, y eso es la congelación o el manchón de bloques que ves en una conexión mala.
Así que la ventana tiene que ser más ancha que un viaje de ida y vuelta completo, con margen para más de un intento. Haivision, que escribió el protocolo, lo plantea como un múltiplo del tiempo de ida y vuelta: entre tres y cuatro veces en un enlace limpio, y más a medida que sube la pérdida de paquetes.
Lo que se suele pasar por alto es que es un ajuste de dos lados. Tu encoder declara una latencia, el relay declara otra, y el handshake usa la mayor de las dos. Bajar tu encoder por debajo del valor del relay no cambia nada, y subirlo siempre surte efecto.
Por qué el número de IRL es mayor
Un enlace de estudio por cable tiene un tiempo de ida y vuelta estable. Un móvil andando por una ciudad, no. La ida y vuelta media hasta un relay cercano puede estar por debajo de una décima de segundo, pero un cambio de antena, una celda congestionada, o un módem que se despierta pueden llevar una ida y vuelta más allá del medio segundo y encadenar varias seguidas. La ventana no se dimensiona para la media. Se dimensiona para el pico.
Con bonding SRTLA esa misma ventana tiene un segundo trabajo. SRTLA reparte tus paquetes entre todos los módems que tengas. Cuando un módem se apaga, los paquetes que iban en vuelo por él se pierden, y SRT los vuelve a pedir. SRTLA envía esos reintentos por los módems que siguen sanos. La ventana de latencia es el presupuesto de tiempo para ese redireccionamiento. Una ventana apretada significa que un módem caído te cuesta una congelación aunque tengas otros dos funcionando. Una ventana holgada significa que no te cuesta nada visible. Esa es la mayor parte del motivo por el que el bonding se siente mucho más suave que un único enlace SRT en el mismo móvil.
Qué poner
| Dónde | Ajuste | Notas |
|---|---|---|
| Belabox (SRTLA) | 2000 ms | El valor por defecto. Sube, no bajes, si un recorrido es malo. |
| Moblin en iPhone (SRTLA) | 3000 ms | El valor por defecto. Déjalo; ya va por el lado holgado. |
| IRL Pro en Android (SRTLA) | 2000 ms | El mismo campo que en Belabox, el mismo punto de partida. |
| LiveU Solo Pro (SRT) | 2500 ms | Lo que muestra el panel para este encoder. |
| Larix (SRT) | 2500 ms | Se pone automáticamente al abrir la conexión desde el panel. |
| Fuente multimedia de OBS recogiendo el relay | latency=2000000 | Microsegundos, no milisegundos. Esto son dos segundos. |
Si solo te llevas una cosa de la tabla: no hay ninguna buena razón para bajar de 2000 ms en un recorrido con cobertura móvil, y rara vez hay razón para pasar de 4000 ms. Entre medias, más alto es más seguro, y el precio son fracciones de segundo de retardo que nadie en el chat nota.
El lado de OBS cuenta en microsegundos
OBS lee SRT a través de FFmpeg, y la opción de latencia de FFmpeg va en microsegundos. Dos segundos son 2000000. Escribir 2000 te da dos milisegundos, que no es ninguna ventana de recuperación, y la recogida se entrecortará incluso con una conexión de casa perfecta. La URL de recogida completa está en la guía de configuración de OBS.
Leer los síntomas
La mayoría de las preguntas sobre latencia son en realidad "algo va mal, ¿es esta la palanca?". Normalmente es una de tres cosas y solo una de ellas es la latencia.
| Lo que ves | Qué significa | Qué cambiar |
|---|---|---|
| Congelaciones cortas o fotogramas con bloques mientras la gráfica de bitrate sigue sana | Los paquetes llegan fuera de la ventana | Sube la latencia SRT 500 ms y vuelve a probar |
| El bitrate baja y la imagen se ablanda, pero sigue moviéndose | El bitrate adaptativo está haciendo su trabajo en un enlace flojo | Nada de latencia. Este es el compromiso funcionando. |
| El stream termina del todo | Se murió la conexión, no el búfer | Protección ante cortes: tu propio OBS sosteniendo la emisión. Mira mantén tu stream en directo. |
La primera fila es la única que arregla el ajuste de latencia. La segunda fila es normal y la tercera es un problema completamente distinto. Subir la latencia para combatir una desconexión no hace nada, porque no queda conexión sobre la que recuperarse.
La latencia SRT no es el retardo de tu espectador
La ventana de tu encoder es un salto de una cadena. El relay entrega el stream a tu OBS por un segundo salto SRT con su propia ventana. OBS mantiene un búfer de red, codifica, y empuja a la plataforma. La plataforma ingesta, transcodifica, y el reproductor almacena en búfer encima de todo eso.
| Etapa | Aproximadamente |
|---|---|
| Ventana SRT del encoder | 2 a 3 s |
| Ventana SRT del relay a OBS | 2 s |
| Búfer de red y codificación de OBS | menos de 1 s |
| Ingest, transcodificación y reproductor de la plataforma | varios segundos |
Recortar la primera fila de 2500 a 1000 ahorra segundo y medio de una cadena bastante más larga, y ese segundo lo pagas con cada congelación que la ventana ya no puede absorber. La gente perdona un retardo corto. Se va cuando la imagen no para de detenerse. Si el timing del chat importa de verdad en un tramo, el modo de baja latencia de la plataforma mueve el total mucho más que el número SRT.
Cómo ajustarlo sin adivinar
- Pon el encoder en el número de la tabla y déjalo en paz.
- Transmite la peor parte de tu recorrido: el túnel, la multitud, el andén del tren. No tu salón.
- Si la imagen se congela mientras el bitrate aguanta, sube la latencia 500 ms y repite el mismo recorrido.
- Cambia una cosa cada vez. La latencia, el bitrate y la resolución mueven los mismos síntomas, y tocar dos a la vez no te dice nada.
- Guarda la grabación local. Revisa el movimiento y el audio en vez de fiarte de un número verde en un panel.
El relay es la otra mitad del ajuste
Tu encoder solo decide un lado. Nuestro relay corre por defecto con un perfil de latencia holgado, pensado para uplinks móviles con bonding en lugar de un enlace de estudio, así que un valor sensato en el encoder llega a un receptor que espera condiciones duras. Combínalo con meter el relay en tu propio OBS y la conexión de calle deja de ser lo que termina tu emisión.
¿Aún eligiendo protocolo? SRTLA vs RTMP cubre cuándo basta con SRT y cuándo necesitas bonding.
FAQ
- ¿Qué latencia SRT debería usar para streaming IRL?
- Empieza en 2000 a 2500 ms en el lado del encoder y déjalo ahí hasta que el stream demuestre ser estable en la peor parte de tu recorrido. Belabox trae 2000 ms por defecto y Moblin 3000 ms, y los dos están bien tal cual. Nuestro panel reparte 2500 ms para encoders SRT de una sola conexión, como la LiveU Solo Pro y Larix.
- ¿La latencia SRT tiene que coincidir en los dos extremos?
- No. Ambos extremos declaran un valor en el handshake y la conexión usa el mayor. Por eso poner tu encoder por debajo del valor que usa el relay no hace nada, y por eso la recogida en OBS se puede ajustar aparte del lado del encoder.
- ¿2500 ms hará que mi stream se sienta lento para el chat?
- No de forma perceptible. La ventana SRT es una pieza de una cadena que ya incluye un segundo salto SRT hacia OBS, el propio búfer de OBS, y el retardo de ingest y de reproductor de la plataforma. Reducir a la mitad la ventana del encoder ahorra alrededor de un segundo de una cadena bastante más larga.
- ¿Por qué la fuente multimedia de OBS quiere 2000000 en vez de 2000?
- OBS lee la URL SRT a través de FFmpeg, y FFmpeg toma la latencia en microsegundos. 2000000 son dos segundos. Escribir 2000 ahí te da dos milisegundos, que en la práctica no es ninguna ventana de recuperación.