Descripción del parámetro SRT

1. Opción de tiempo de espera

connect_timeout
tiempo de espera de conexión, en milisegundos, el valor predeterminado es 3 segundos.
SRT no se puede conectar cuando RTT > 1500 ms (2 intercambios de protocolo de enlace). Esta opción está disponible en los modos de llamada y cita.
listening_timeout
tiempo de espera de escucha, en milisegundos
timeout
establece el tiempo de espera de error para operaciones de lectura, escritura y conexión, en milisegundos. Tenga en cuenta que la biblioteca SRT tiene tiempos de espera internos que se pueden controlar individualmente y el valor establecido aquí es solo un límite superior de estos tiempos de espera.

2. Opciones relacionadas con la caché

Tamaño de la ventana FFS
en bytes, el valor predeterminado es 25600.
FFS es en realidad un parámetro interno y debe establecerse en nada menos que recv_buffer_size y mss. El valor predeterminado es relativamente grande, por lo que no es necesario cambiar esta opción a menos que configure un búfer de receptor muy grande.
mss
tamaño máximo de segmento, en bytes, valor predeterminado 1500, que es la longitud máxima de los paquetes UDP. El valor predeterminado de Internet es 1500 y, por lo general, solo se reducirá a menos que tenga alguna configuración de red privada inusual.
recv_buffer_size
Tamaño del búfer de recepción UDP, en bytes.
send_buffer_size
Tamaño del búfer de envío UDP, en bytes.
sndbuf
establece el tamaño del búfer de envío en bytes.
rcvbuf
establece el tamaño del búfer de recepción en bytes. El búfer de recepción no puede ser mayor que ffs.

3. Opciones relacionadas con el ancho de banda o la tasa de código

La velocidad de entrada del remitente inputbw
, en bytes/segundo, el valor predeterminado es 0.
Se utiliza con oheadbw, cuando maxbw se establece en relativo (0), para calcular la velocidad de envío máxima al enviar paquetes de recuperación con el flujo de medios principal: inputbw * (100 + oheadbw) / 100. Si inputbw no está configurado y maxbw está establecido en relativo (0), la tasa de entrada real se calcula en la biblioteca.
La sobrecarga del ancho de banda de recuperación de oheadbw
es mayor que la velocidad de entrada (inputbw), expresada como porcentaje, el valor predeterminado es 25%
maxbw
ancho de banda de envío máximo, en bytes/segundo, el valor predeterminado es 0. -1 significa sin límite (el límite de CSRTCC es 30mbps); 0 significa que depende de la velocidad de entrada;

4. Opciones relacionadas con el retraso

La latencia
es el retraso en el envío de paquetes según la marca de tiempo, en milisegundos. Se utiliza para manejar emergencias de retransmisión de paquetes de datos. Este indicador establece rcvlatency y peerlatency en el mismo valor. Tenga en cuenta que antes de la versión 1.3.0, este era el único indicador para establecer la latencia; sin embargo, esto en realidad equivale a configurar la latencia entre pares (cuando el lado es el remitente) y la rcvlatency (cuando el lado es el receptor), y no se admite el envío de transmisión bidireccional. . El remitente establece
el valor de retardo de latencia entre pares (como se describe en rcvlatency) en el valor mínimo del receptor, en milisegundos. rcvlatency El tiempo que debe transcurrir antes de que el paquete de datos se envíe al receptor, en milisegundos. Este tiempo debe ser un tiempo de búfer lo suficientemente grande como para cubrir el tiempo que lleva enviar, los tiempos de RTT inesperadamente extendidos y el tiempo necesario para retransmitir paquetes UDP perdidos. El valor de latencia efectiva será el máximo del valor de esta opción y el valor de latencia del par establecido por el par.


snddropdelay
Retraso adicional antes de que el remitente descarte el paquete, que se agrega al valor de intervalo de retraso predeterminado. Valor especial -1: no descartar paquetes, la unidad es milisegundos.

5. Opciones relacionadas con el modo

modo
modo de conexión, los valores posibles son llamador, oyente y encuentro, el valor predeterminado es llamador.

messageapi
Cuando se establece, el socket usa la API de mensajes; de lo contrario, se usa la API de búfer.
Tenga en cuenta que en el modo en vivo, solo se puede utilizar la API de mensajes.
En el modo de archivo, puede optar por utilizar uno de dos modos:
Stream API (predeterminado, cuando esta opción es falsa). Puede enviar tantos datos como desee en un solo comando de envío e incluso puede leer directamente desde un archivo utilizando funciones dedicadas. Las instalaciones internas serán responsables del control de velocidad y congestión. Al recibir, puede recibir tantos datos como necesite y los datos no leídos esperarán hasta la siguiente llamada. En el modo Stream, no hay límites entre las partes de datos.
API de mensajes. En este modo, un único comando de envío solo transfiere un dato limitado (mensaje). A diferencia del modo en vivo, este mensaje puede abarcar múltiples paquetes UDP, el único límite de tamaño es que debe caber en el búfer de envío en su totalidad. El receptor debe utilizar un búfer lo más grande posible para recibir mensajes, de modo que los mensajes no se pierdan. Cuando un mensaje está incompleto (no se reciben todos los paquetes o se pierden), no se abandonará.

transtype=live|file
El tipo de transmisión del socket, que puede tomar los valores live y file. Vale la pena señalar que esta opción establece varios otros parámetros en los valores predeterminados requeridos para el tipo de transferencia específico.
en vivo: el tipo de transmisión está configurado para transmisión en tiempo real. En este modo, un comando de envío solo envía un paquete de datos UDP adecuado. No hay control de velocidad en el modo de transmisión en tiempo real, solo control de ancho de banda. Si se configura control de ancho de banda, tampoco se debe exceder el ancho de banda (paquetes de retransmisión y control).
archivo: configure la opción para transmisión no en tiempo real. Ver API de mensajes

Tipo más fluido de transmisión de socket más fluida
, que es responsable de la transmisión y el control de la congestión, y puede tomar los valores en vivo y archivarlos. El tipo de suavizado en ambos lados de la conexión debe ser exactamente el mismo; de lo contrario, se rechazará la conexión.

6. Opciones relacionadas con el cifrado

La longitud de la clave de cifrado del remitente pbkeylen
, byte unitario, solo se puede configurar en 0, 16, 24, 32, el valor predeterminado es 0. Si es distinto de cero, el cifrado del remitente está habilitado. No requerido por el receptor (establecido en 0), el tamaño de clave obtenido del remitente en el protocolo de enlace HaiCrypt.
frase de contraseña
HaiCrypt cifra/descifra cadenas de contraseña con una longitud de 10 ~ 79 caracteres. Los caracteres cifrados son un secreto compartido entre el remitente y el receptor. Para generar claves de cifrado utilizando PBKDF2. Sólo tiene efecto si pbkeylen es distinto de cero. Sólo si los datos recibidos están cifrados, se utilizarán en el receptor. Los caracteres de contraseña configurados no se pueden recuperar (solo escritura).
Si enforced_encryption
es 1, ambas partes de la conexión deben establecer la misma contraseña (incluida una contraseña vacía, es decir, sin cifrado). Si las contraseñas no coinciden o solo un lado no está cifrado, se rechaza la conexión. El valor predeterminado es 1.

kmrefreshrate
El número de paquetes de datos que se transmitirán después de que la clave de cifrado se convierta en una nueva clave. El valor predeterminado es -1. El rango de valores es un número entero de 0 a INT_MAX. -1 significa automático.

El intervalo de tiempo entre kmpreannounce
envía una nueva clave de cifrado y la entrega. El valor predeterminado es -1 y el rango de valores es de 0 a INT_MAX. Este valor también se aplica a los intervalos posteriores entre el cambio y la retirada de la antigua clave de cifrado.

7. Opciones de paquetes

payload_size
En modo en vivo, el tamaño máximo de paquete para una sola transmisión. El valor predeterminado es -1 (automático), que normalmente significa MPEG-TS. Si no se utiliza este valor, se utiliza 0 (el valor predeterminado en el modo de archivo). Si planea usar SRT para enviar cualquier tipo diferente de carga útil, por ejemplo, encapsular una transmisión en vivo en cuadros muy pequeños, entonces puede usar un tamaño máximo de cuadro mayor, pero no mayor a 1456 bytes.
pkt_size
Alias ​​de 'payload_size'.

tlpktdrop
descarta paquetes demasiado tarde. Cuando se habilita en el extremo receptor, los paquetes perdidos que no se entregan a tiempo se omitirán y los paquetes posteriores se entregarán a la aplicación cuando llegue el momento de la reproducción. También enviará un ACK falso al remitente. Si está habilitado tanto en el remitente como en el receptor, el remitente descarta los mensajes antiguos que no tienen posibilidades de enviarse a tiempo. Si el receptor lo admite, se habilita automáticamente en el remitente.

8. Otras opciones

Tipo de servicio IP de iptos
, el valor predeterminado es 0xB8. Se aplica únicamente al remitente.

ipttl=ttl
tiempo de supervivencia de IP, el valor predeterminado es 64. Se aplica únicamente al remitente.

Si nakreport
envía mensajes 'UMSG_LOSSREPORT' periódicamente, valor predeterminado 1. Si se establece en 1, el extremo receptor enviará mensajes 'UMSG_LOSSREPORT' periódicamente hasta que el paquete perdido se retransmita o se elimine intencionalmente.

lossmaxttl
Cuando se alcanza el valor de lossmaxttl, la tolerancia de reordenamiento puede aumentar. Cuando Tolerancia de reordenamiento > 0, el informe de pérdida de paquetes se retrasará hasta que llegue esta cantidad de paquetes. La tolerancia de reordenamiento aumentará cada vez que llegue un paquete "retrasado", pero esto no se debe a las retransmisiones (más bien, los paquetes UDP tienden a estar desordenados), la última secuencia no diferirá más que esta secuencia de paquetes El valor de la opción. De forma predeterminada, es 0, lo que significa que con el mecanismo desactivado, se enviará un informe de pérdida inmediatamente cuando se encuentre un "espacio" en la secuencia.

minversion
requiere la versión SRT mínima proporcionada por el par. Se rechazarán las conexiones con pares que no cumplan con los requisitos mínimos de versión. El formato de la versión es hexadecimal (0xXXYYZZ).

Streamid
es una cadena de no más de 512 caracteres y debe configurarse en el socket antes de conectarse. Se puede usar en escenarios de monitoreo y respuesta a múltiples solicitudes, similar a APPPATH de RTMP.

Cuando el socket persistente
está cerrado, la cantidad de segundos que se deben esperar los datos no enviados, el valor predeterminado es -1 y el rango de valores es un número entero de 0 a INT_MAX. -1 significa automático (apagado a los 0 segundos en modo de tiempo real, encendido a los 180 segundos en modo de archivo). de esta opción.

tsbpd=1|0
Cuando es verdadero, utiliza el modo de transmisión de paquetes basado en marca de tiempo. El comportamiento predeterminado depende del tipo de transferencia: habilitado en modo en vivo, deshabilitado en modo archivo.

Supongo que te gusta

Origin blog.csdn.net/weixin_35804181/article/details/132718040
Recomendado
Clasificación