Protocolo SRT¶
Protocolo abierto desarrollado por Haivision. Basado en UDT; está ampliamente extendido y ofrece buenas características de compensación de pérdidas de paquetes.
Casos de uso:
Peer entre instancias de Perfect Streamer. En el transmisor — se configura en el output, modo listen (por defecto). En este modo se pueden conectar varios receptores. Para la autorización, deben registrarse en Peer los logins de los receptores. En el receptor — se configura en el input. Se indican el host y el puerto del transmisor, así como el login y la contraseña. Para transmitir el login y la contraseña, el streamer SRT usa el streamid en el formato
login|password.Peer entre Perfect Streamer y cualquier streamer SRT de terceros. En el transmisor se puede configurar el modo cliente SRT desactivando listen. El streamid SRT, si es necesario, se introduce en el campo login. Para el modo listen está disponible la autorización por dirección IP — se introduce en el campo login en Peer. En el receptor se puede activar el modo listen, definir el streamid SRT en el campo login y también indicar el host desde el que se permite la recepción.
Trabajo en modo Listener: recepción y transmisión del flujo del canal indicando el puerto de recepción.
Los puertos en modo listen deben ser únicos.
Hay cifrado de flujos disponible (Crypto protection) con AES-128. Para activarlo en ambos lados, introduzca Crypt Passphrase como clave compartida.
Si el transmisor usa el modo listen (predeterminado), la conexión la inicia el receptor, el transmisor exige autenticación y los receptores se registran en peer. Login y contraseña son obligatorios.
Las opciones del protocolo SRT siguen la descripción de API-socket-options.md
Reorder (SRTO_LOSSMAXTTL) — Valor hasta el cual puede aumentar la tolerancia de reordenamiento. La tolerancia de reordenamiento es el número de paquetes que deben seguir a un «hueco» detectado en los números de secuencia de los paquetes entrantes antes de que se envíe un informe de pérdida (con la esperanza de que el hueco se deba a un reordenamiento de paquetes y no a una pérdida). El valor de la tolerancia de reordenamiento comienza en 0 y aumenta cuando se detecta un reordenamiento de paquetes. Esto ocurre cuando se recibe un paquete «tardío» con un número de secuencia mayor que el del último recibido, pero sin el indicador de retransmisión. Ante tal detección, la tolerancia de reordenamiento se establece en el valor del intervalo entre el último número y el número de secuencia de dicho paquete, pero no superior al valor definido por el parámetro SRTO_LOSSMAXTTL. Por defecto, este valor es 0, lo que significa que este mecanismo está desactivado. SRTO_LOSSMAXTTL
Overhead (SRTO_OHEADBW, %) — Sobrecarga para la recuperación de ancho de banda por encima de la tasa de entrada (ver SRTO_INPUTBW), en porcentaje de la tasa de entrada. Efectivo solo si SRTO_MAXBW está en 0. Emisor: configurable por el usuario; predeterminado: 25 %.
Recomendaciones: la sobrecarga está destinada a proporcionar ancho de banda adicional en caso de que un paquete haya consumido parte del ancho de banda pero se haya perdido y deba ser retransmitido. Por tanto, el ancho de banda máximo efectivo debe ser suficientemente mayor que el bitrate de su flujo para dejar espacio para retransmisiones, pero limitado para que los paquetes retransmitidos no provoquen un aumento brusco del uso del ancho de banda al perderse grandes grupos de paquetes. No establezca un valor demasiado bajo y evite 0 si SRTO_INPUTBW está en 0 (automático). De lo contrario, su flujo se interrumpirá rápidamente ante cualquier aumento de las pérdidas. SRTO_OHEADBW
Max Band (SRTO_MAXBW, bps) — Esta opción es efectiva solo cuando SRTO_MAXBW está en 0 (relativo). Controla el ancho de banda máximo junto con SRTO_OHEADBW según la fórmula: MAXBW = INPUTBW * (100 + OHEADBW) / 100. Si esta opción está en 0 (automático), el valor real de INPUTBW se estimará a partir de la tasa del flujo de entrada (casos en los que la aplicación llama a la función srt_send*) durante la transmisión. El valor mínimo admisible de la estimación está limitado por SRTO_MININPUTBW, es decir, INPUTBW = MAX(INPUTBW_ESTIMATE; MININPUTBW).
Recomendaciones: establezca este parámetro en el bitrate esperado de su transmisión y mantenga el valor predeterminado de 25 % para SRTO_OHEADBW. SRTO_INPUTBW
Timeout (SRTO_CONNTIMEO, ms) — Valor del timeout de conexión en milisegundos. Es el tiempo durante el cual el objeto que se está conectando intentará establecer la conexión y esperará respuesta del extremo remoto antes de finalizar la conexión con un código de error. SRTO_CONNTIMEO