Compartir tecnología

Registro de problemas de ancho de banda de transmisión de intranet de transmisión en vivo de SRS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Antecedentes del problema

señoresImplementado en un servidor en la nube, CPU de 32 núcleos, memoria de 64 G y ancho de banda de 300 M.
El cliente extrae la transmisión de SRS y descubre que el cliente de la red externa extrae la transmisión.UPC y el ancho de banda son normales. Sin embargo, si el cliente de la intranet extrae la transmisión y el número de personas que la realizan supera las 5, el ancho de banda se disparará.
Insertar descripción de la imagen aquí

solución de problemas

Utilice srs-bench para realizar pruebas de estrés SRS, transmisión SRS del reproductor vlc y transmisión SRS del cliente

Transmisión push

Para enviar la transmisión, seleccione ffmpeg para enviar la transmisión.

ffmpeg -re -i C:UserswDesktoptest.mp4 -vcodec copy -acodec copy -f flv -y rtmp://27.128.236.38/live/livestream
  • 1

Flujo de extracción de banco A.srs

./objs/srs_bench -sr webrtc://27.128.236.38/live/livestream -nn 10
  • 1

Artículos de referencia para la compilación e implementación de srs-bench:Prueba de estrés SRS – SRS-Bench

Corriente de extracción B.vlc

媒体->打开网络串流
输入url:https://ip:8088/live/livestream.flv
  • 1
  • 2

Se realizaron pruebas de estrés de srs-bench, client y vlc en Xi'an, Nanjing y Beijing, respectivamente.
Los registros de las pruebas son los siguientes:

ambiente1 persona5 personas6 personas10 personas30 personas
Segmento A de la red de prueba de estrés del servidor de Xi'annormalnormalanormalanormalanormal
Segmento B de la red de prueba de estrés del servidor de Xi'annormalnormalnormalinestableinestable
Cliente real de Xi'annormalnormalnormalanormalanormal
Prueba de presión del cliente de Xi'annormalnormalnormalanormalanormal
servidor de nanjingnormalnormalnormalnormalnormal
Cliente real de Nanjingnormalnormalnormalnormal/
Prueba de presión del cliente de Nanjingnormalnormalnormalnormal/
servidor de pekinnormalnormalanormalanormalanormal
Cliente real de Beijingnormalnormalnormalnormal/
Prueba de presión de la red externanormalnormalnormalnormalnormal
prueba de presión vlcnormalnormalnormalnormal/

Resultados de la validación

Prueba de estrés del entorno de red externa, el ancho de banda es normal, la CPU es normal
Prueba de estrés del entorno de intranet: si hay más de 5 personas, el ancho de banda aumentará a 10 veces

Comparación de captura de paquetes

Insertar descripción de la imagen aquí

analizar

La tasa de retraso en entornos anormales es mayor que en entornos normales y hay pérdida y retransmisión de paquetes.

Consulte el sitio web oficial de srs.sitio web oficial de srs
Protocolo central: configuración de la parte webrtc de la configuración en webrtc

La primera parte, rtc_server es la configuración global del servidor RTC. Algunas configuraciones clave incluyen:

enabled:是否开启RTC服务器,默认是off。
listen:侦听的RTC端口,注意是UDP协议。
candidate:服务器提供服务的IP地址,由于RTC的特殊性,必须配置这个地址。详细参考Config: Candidate
tcp.listen: 使用TCP传输WebRTC媒体数据,侦听的TCP端口。详细参考WebRTC over TCP
  • 1
  • 2
  • 3
  • 4

La segunda parte, configuración de RTC en cada vhost, algunas configuraciones clave incluyen:

rtc.enabled:是否开启RTC能力,默认是off。
rtc.rtmp_to_rtc:是否开启RTMP转RTC。
rtc.rtc_to_rtmp:是否开启RTC转RTMP。
rtc.stun_timeout:会话超时时间,单位秒。
rtc.nack:是否开启NACK的支持,即丢包重传,默认on。
rtc.twcc:是否开启TWCC的支持,即拥塞控制的反馈机制,默认on。
rtc.dtls_role:DTLS角色,active就是DTLS Client(主动发起),passive是DTLS Server(被动接受)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Se descubre que la configuración predeterminada de rtc.nack está activada, lo que significa que si SRS detecta la pérdida de paquetes, retransmitirá los datos continuamente.

en conclusión

Después de investigar el entorno de intranet de la empresa, descubrimos que el entorno de intranet tiene restricciones de ancho de banda. Cuando el ancho de banda de transmisión del cliente excede un cierto tamaño, la transmisión está restringida.
En este momento, SRS considera que la red es anormal y los paquetes se pierden y retransmiten, por lo que el ancho de banda continúa aumentando.

resolver

Opción 1: Relajar las restricciones de ancho de banda en el entorno de intranet

Ventajas: Garantizar la estabilidad de la transmisión en vivo.
Desventajas: las empresas no pueden monitorear el ancho de banda del cliente, lo que aumenta los costos

Escenario 2:

Ventajas: en circunstancias normales en las redes internas y externas, la transmisión en vivo es normal y el consumo de ancho de banda es pequeño.
Defecto: anomalía de la red, SRS no retransmite paquetes perdidos y pueden ocurrir problemas como mosaicos y retrasos.