Compartilhamento de tecnologia

Registro de problema de largura de banda de streaming de intranet de transmissão ao vivo SRS

2024-07-12

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

Histórico do problema

srsImplantado em um servidor em nuvem, CPU de 32 núcleos, memória de 64 G, largura de banda de 300 M.
O cliente extrai o fluxo do srs e descobre que o cliente da rede externa extrai o fluxo.CPU e largura de banda estão normais. No entanto, se o cliente da intranet extrair o fluxo e o número de pessoas que o puxam exceder 5, a largura de banda disparará.
Insira a descrição da imagem aqui

solução de problemas

Use srs-bench para realizar testes de estresse SRS, streaming SRS do player vlc e streaming SRS do cliente

Transmissão push

Para enviar o stream, selecione ffmpeg para enviar o stream.

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

Fluxo de tração de bancada A.srs

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

Artigos de referência para compilação e implantação do srs-bench:Teste de estresse SRS – SRS-Bench

Fluxo de extração B.vlc

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

Conduziu testes de estresse srs-bench, cliente e vlc em Xi'an, Nanjing e Pequim, respectivamente
Os registros de teste são os seguintes:

ambiente1 pessoa5 pessoas6 pessoas10 pessoas30 pessoas
Segmento A da rede de teste de estresse do servidor Xi'annormalnormalanormalanormalanormal
Segmento B da rede de teste de estresse do servidor Xi'annormalnormalnormalinstávelinstável
Cliente real de Xi'annormalnormalnormalanormalanormal
Teste de pressão do cliente de Xi'annormalnormalnormalanormalanormal
Servidor Nanjingnormalnormalnormalnormalnormal
Cliente real de Nanjingnormalnormalnormalnormal/
Teste de pressão do cliente de Nanjingnormalnormalnormalnormal/
Servidor de Pequimnormalnormalanormalanormalanormal
Cliente real de Pequimnormalnormalnormalnormal/
Teste de pressão de rede externanormalnormalnormalnormalnormal
teste de pressão vlcnormalnormalnormalnormal/

Resultados de validação

Teste de estresse do ambiente de rede externo, largura de banda normal, CPU normal
Teste de estresse do ambiente de intranet, se houver mais de 5 pessoas, a largura de banda aumentará até 10 vezes

Comparação de captura de pacotes

Insira a descrição da imagem aqui

analisar

A taxa de atraso em ambientes anormais é maior do que em ambientes normais e há perda e retransmissão de pacotes.

Verifique o site oficial do srssite oficial srs
Protocolo principal – configuração da parte webrtc da configuração em webrtc

A primeira parte, rtc_server, é a configuração global do servidor RTC. Algumas configurações principais incluem:

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

A segunda parte, configuração RTC em cada vhost, algumas configurações principais incluem:

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

Verifica-se que o padrão da configuração rtc.nack é ativado, o que significa que se o SRS detectar perda de pacotes, ele retransmitirá continuamente os dados.

para concluir

Depois de investigar o ambiente de intranet da empresa, descobrimos que o ambiente de intranet tem restrições de largura de banda. Quando a largura de banda de streaming do cliente excede um determinado tamanho, o streaming é restrito.
Neste momento, o SRS considera a rede como anormal e os pacotes são perdidos e retransmitidos, de modo que a largura de banda continua a aumentar.

resolver

Opção 1: relaxar as restrições de largura de banda no ambiente de intranet

Vantagens: Garanta a estabilidade da transmissão ao vivo
Desvantagens: As empresas não conseguem monitorar a largura de banda do cliente, aumentando os custos

Cenário 2:

Vantagens: Em circunstâncias normais nas redes internas e externas, a transmissão ao vivo é normal e o consumo de largura de banda é pequeno.
Defeito: Anormalidade na rede, o SRS não retransmite pacotes perdidos e podem ocorrer problemas como mosaicos e atrasos.