Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Solução de problemas de alta latência no RTS

Última atualização: Jun 30, 2026

Saiba por que a latência ocorre no Real-Time Streaming (RTS) e como reduzi-la.

Causas comuns de latência no RTS

Estágio

Causas comuns

Ingestão de stream

  • Intervalo de keyframes do stream de source muito grande ou stream com B-frames.

  • CPU do dispositivo de captura de vídeo sobrecarregada.

  • Configuração subotimizada do Push SDK.

Transmissão pela rede

  • Condições de rede desfavoráveis durante a ingestão do stream.

  • Condições de rede desfavoráveis durante a reprodução.

  • Condições de rede desfavoráveis nos POPs da Alibaba Cloud ou em links internos.

Transcodificação

  • A transcodificação geralmente adiciona de 300 ms a 500 ms de latência.

  • O uso de transcodificação acionada gera latência adicional.

Reprodução

  • Configuração subotimizada do ApsaraVideo Player SDK for Native.

  • Latência ao reproduzir streams apenas de áudio ou apenas de vídeo com o ApsaraVideo Player SDK for Web.

    Nota

    Se um stream de source for apenas de áudio ou apenas de vídeo, o tempo de espera padrão de 5 segundos para a faixa ausente causa latência.

Ingestão de stream

Configurações do OBS Studio

Configure o OBS Studio conforme as instruções abaixo:

No OBS Studio, acesse Settings > Output. Defina Output Mode como Advanced e selecione a aba Streaming. Configure Encoder como x264, Rate Control como CBR e Bitrate como 2500 Kbps. Ajuste Keyframe Interval para 1 segundo, CPU Usage Preset para ultrafast, Profile para baseline e Tune para zerolatency.

Configurações do vMix

Configure o vMix da seguinte maneira:

Na caixa de diálogo Streaming Quality, defina Video Bit Rates como 1500, Encode Size como 1920 x 1080 e Audio Bit Rate como 128. Na seção Video, configure Profile como Baseline, Level como 3.1 e Preset como ultrafast. Em seguida, ajuste Keyframe Frequency para 1 second, Threads para 4 e Network Buffer para 20 seconds. Parâmetros principais: Level, Preset, Threads e Network Buffer.

Configuração do Push SDK

Defina o GOP de vídeo como 1 e mantenha as demais configurações com os valores padrão:

Android

mAlivcLivePushConfig = new AlivcLivePushConfig();
mAlivcLivePushConfig.setVideoEncodeGop(AlivcVideoEncodeGopEnum.GOP_ONE);

iOS

AlivcLivePushConfig *pushConfig = [[AlivcLivePushConfig alloc] init];
pushConfig.videoEncodeGop = AlivcLivePushVideoEncodeGOP_1;

Web

O Push SDK for Web já vem otimizado por padrão.

Rede de ingestão

Uma rede de ingestão estável é essencial. Para isolar problemas de rede, troque de rede e reinicie a ingestão no mesmo dispositivo. Se a latência diminuir, a rede original era a causa.

Carga do dispositivo

O uso elevado de CPU ou memória no dispositivo de ingestão reduz a eficiência da captura e codificação, aumentando a latência. Para isolar esse fator, teste com outro dispositivo usando a mesma rede e configuração.

Reprodução

Configuração do Native Player SDK

O RTS usa o protocolo WebRTC, que lida bem com perda de pacotes e jitter. Para reduzir ainda mais a latência, otimize a estratégia de buffer do player.

Nota

O ApsaraVideo Player SDK v5.5.6.0 e versões posteriores, ou o demo do player, aplicam a configuração ideal de latência por padrão. Nenhum ajuste é necessário.

Se a latência persistir, analise os logs do RTS SDK:

  • Latência do stream: Ative o registro de logs no ApsaraVideo Player SDK for Android ou no ApsaraVideo Player SDK for iOS. Localize a entrada code=154 para verificar a latência de ponta a ponta (ms):

    • gd (globalDelayMS): Latência de ponta a ponta.

    • td (transDelayMS): Soma das latências de ingestão e transmissão via CDN. Valores acima de 800 ms indicam alta latência de ingestão ou da CDN.

    • nd (network delay): Latência de rede da CDN até o player. Valores acima de 800 ms sugerem problema de rede.

    • jd (jitterDelayMS): Latência do buffer de dejitter. Valores acima de 800 ms sugerem problema de rede.

    • ud (user buffer length): Tamanho do buffer do usuário. Geralmente é 0; pode ser ignorado.

    • dd (decoder delay): Latência de decodificação. Valores acima de 800 ms sugerem problema de decodificação no player.

    • rd (render delay): Latência de renderização. Valores acima de 800 ms sugerem problema de renderização no player.

    • ut: Campo ignorável.

  • Latência do primeiro frame: Localize a entrada code=161 no log do SDK:

    st:0,init:1,sdns:0,rdns:2,sc:0,ced:12,sub:5,frsp:309,si:8,fp:13,ffc:5,ffo:416,sum:763

    Se sum diferir significativamente da latência medida do primeiro frame, suspeite de problema de decodificação ou renderização. Caso sum esteja próximo do valor medido, verifique os campos individuais para identificar o gargalo. Valores altos de ced, frsp ou ffc geralmente indicam problema de rede.

Configuração do Web Player SDK

O ApsaraVideo Player SDK for Web usa a política de buffer padrão do navegador e não requer configuração extra. Para diagnosticar alta latência, abra chrome://webrtc-internals no Chrome.

image.png

Principais métricas:

  • inbound-rtp (kind=audio) e inbound-rtp (kind=video): Exibe o status de recepção e decodificação de dados em tempo real. Valores altos de framesDropped ou valores inesperados de framesDecoded/s indicam problema de decodificação — verifique as configurações de ingestão e transcodificação.

  • candidate-pair: Exibe o status da conexão. Um currentRoundTripTime alto ou packetsLost elevado em inbound-rtp indica problema de rede.

Latência em streams apenas de áudio e apenas de vídeo

Se um stream de source for apenas de áudio ou apenas de vídeo, a Alibaba Cloud aguarda 5 segundos por padrão pela faixa ausente. Esse atraso pode causar tela preta ou silêncio no início da reprodução. Para evitar esse atraso, cancele a assinatura da faixa ausente anexando @subvideo=no ou @subaudio=no à URL de streaming.

  • Para um stream apenas de vídeo com a URL artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}, modifique a URL para artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}@subaudio=no.

  • Para um stream apenas de áudio com a URL artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}, modifique a URL para artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}@subvideo=no.

Rede de reprodução

Garanta uma rede de reprodução estável. Em redes instáveis, o ApsaraVideo Player SDK aumenta o buffer local para manter a reprodução suave, o que adiciona latência.

Transcodificação

A transcodificação adiciona de 300 a 500 ms de latência ao stream ao vivo. O RTS suporta dois tipos de transcodificação:

  • Transcodificação automática H5: Aplicada quando um stream RTMP é ingerido para reprodução na web. A latência adicionada é mínima e inevitável.

  • Modelos de transcodificação personalizados: A reprodução de um stream transcodificado pode gerar latência de duas formas:

    • Latência de processamento: Adiciona de 300 a 500 ms de latência inevitável aos streams transcodificados.

    • Latência de iniciação: Com a triggered transcoding ativada, a transcodificação começa apenas quando o primeiro espectador solicita o stream, adicionando cerca de 200 ms de latência de inicialização.

    Nota

    A transcodificação acionada é configurada ao criar um modelo de transcodificação. Para desativá-la, crie um novo modelo, reinicie a ingestão do stream e teste a latência novamente.

Fale conosco

Se a alta latência persistir após estas etapas de solução de problemas, envie um ticket. Inclua as seguintes informações:

  • URLs de ingestão e streaming usadas para teste.

  • Ferramentas de ingestão e reprodução utilizadas (por exemplo, OBS Studio e ApsaraVideo Player SDK for Web).

  • Resumo das etapas de solução de problemas concluídas.