Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Dépannage d'une latence élevée dans RTS

Dernière mise à jour :Aug 19, 2026

Découvrez les causes de la latence dans Real-Time Streaming (RTS) et comment la réduire.

Causes courantes de la latence RTS

Étape

Causes courantes

Ingestion de flux

  • L'intervalle entre les images clés du flux source est trop grand ou le flux contient des images B.

  • Le processeur du dispositif de capture vidéo est surchargé.

  • Configuration sous-optimale du SDK Push.

Transmission réseau

  • Mauvaises conditions réseau lors de l'ingestion du flux.

  • Mauvaises conditions réseau lors de la lecture.

  • Mauvaises conditions réseau au niveau des points de présence (POP) d'Alibaba Cloud ou sur les liaisons internes.

Transcodage

  • Le transcodage ajoute généralement une latence de 300 à 500 ms.

  • L'utilisation du transcodage déclenché introduit une latence supplémentaire.

Lecture

  • Configuration sous-optimale du SDK ApsaraVideo Player pour Native.

  • Une latence se produit lorsque le SDK ApsaraVideo Player pour Web lit des flux audio uniquement ou vidéo uniquement.

    Remarque

    Si un flux source est audio uniquement ou vidéo uniquement, le temps d'attente par défaut de 5 secondes pour la piste manquante introduit une latence.

Ingestion de flux

Paramètres OBS Studio

Configurez OBS Studio comme suit :

Dans OBS Studio, accédez à la page Settings > Output. Définissez Output Mode sur Advanced et sélectionnez l'onglet Streaming. Définissez Encoder sur x264, Rate Control sur CBR et Bitrate sur 2500 Kbps. Définissez Keyframe Interval sur 1 seconde, CPU Usage Preset sur ultrafast, Profile sur baseline et Tune sur zerolatency.

Paramètres vMix

Configurez vMix comme suit :

Dans la boîte de dialogue Streaming Quality, définissez Video Bit Rates sur 1500, Encode Size sur 1920 x 1080 et Audio Bit Rate sur 128. Dans la section Video, définissez Profile sur Baseline, Level sur 3,1 et Preset sur ultrafast. Ensuite, définissez Keyframe Frequency sur 1 seconde, Threads sur 4 et Network Buffer sur 20 secondes. Paramètres clés : Level, Preset, Threads et Network Buffer.

Configuration du SDK Push

Définissez le GOP vidéo sur 1 et conservez les autres paramètres par défaut :

Android

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

iOS

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

Web

Le SDK Push pour Web est optimisé par défaut.

Réseau d'ingestion

Un réseau d'ingestion stable est essentiel. Pour isoler les problèmes réseau, changez de réseau et réingérez le flux depuis le même appareil. Si la latence diminue, le réseau d'origine était la cause.

Charge de l'appareil

Une utilisation élevée du processeur ou de la mémoire sur l'appareil d'ingestion réduit l'efficacité de la capture et de l'encodage, ce qui augmente la latence. Pour isoler ce problème, testez avec un autre appareil en utilisant le même réseau et la même configuration.

Lecture

Configuration du SDK Native Player

RTS utilise le protocole WebRTC, qui gère bien la perte de paquets et la gigue. Pour réduire davantage la latence, optimisez la stratégie de mise en tampon du lecteur.

Remarque

ApsaraVideo Player SDK v5.5.6.0 et versions ultérieures, ou la démo du lecteur, applique la configuration de latence optimale par défaut. Aucun ajustement n'est nécessaire.

Si la latence persiste, analysez les journaux du SDK RTS :

  • Latence du flux : activez la journalisation pour le SDK ApsaraVideo Player pour Android ou le SDK ApsaraVideo Player pour iOS. Recherchez l'entrée code=154 pour vérifier la latence de bout en bout (ms) :

    • gd (globalDelayMS) : la latence de bout en bout.

    • td (transDelayMS) : somme de la latence d'ingestion et de transmission CDN. Des valeurs supérieures à 800 ms suggèrent une latence d'ingestion ou CDN élevée.

    • nd (network delay) : latence réseau du CDN au lecteur. Des valeurs supérieures à 800 ms suggèrent un problème réseau.

    • jd (jitterDelayMS) : latence du tampon anti-gigue. Des valeurs supérieures à 800 ms suggèrent un problème réseau.

    • ud (user buffer length) : longueur du tampon utilisateur. Généralement 0 ; peut être ignoré.

    • dd (decoder delay) : latence de décodage. Des valeurs supérieures à 800 ms suggèrent un problème de décodage du lecteur.

    • rd (render delay) : latence de rendu. Des valeurs supérieures à 800 ms suggèrent un problème de rendu du lecteur.

    • ut : ce champ peut être ignoré.

  • Latence de la première image : recherchez l'entrée code=161 dans le journal du 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

    Si sum diffère considérablement de la latence mesurée de la première image, suspectez un problème de décodage ou de rendu. Si sum est proche de la valeur mesurée, vérifiez les champs individuels pour trouver le goulot d'étranglement. Des valeurs élevées de ced, frsp ou ffc indiquent généralement un problème réseau.

Configuration du SDK Web Player

Le SDK ApsaraVideo Player pour Web s'appuie sur la politique de tampon par défaut du navigateur et ne nécessite aucune configuration supplémentaire. Pour diagnostiquer une latence élevée, ouvrez chrome://webrtc-internals dans Chrome.

image.png

Métriques clés :

  • inbound-rtp (kind=audio) et inbound-rtp (kind=video) : affiche l'état de réception et de décodage des données en temps réel. Une valeur élevée de framesDropped ou des valeurs inattendues de framesDecoded/s indiquent un problème de décodage — vérifiez les paramètres d'ingestion et de transcodage.

  • candidate-pair : affiche l'état de la connexion. Une valeur élevée de currentRoundTripTime ou un nombre élevé de packetsLost dans inbound-rtp indique un problème réseau.

Latence des flux audio uniquement et vidéo uniquement

Si un flux source est audio uniquement ou vidéo uniquement, Alibaba Cloud attend par défaut 5 secondes pour la piste manquante. Ce délai peut provoquer un écran noir ou un silence au début de la lecture. Pour éviter ce délai, désabonnez-vous de la piste manquante en ajoutant @subvideo=no ou @subaudio=no à l'URL de streaming.

  • Pour un flux vidéo uniquement avec l'URL artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}, modifiez l'URL en artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}@subaudio=no.

  • Pour un flux audio uniquement avec l'URL artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}, modifiez l'URL en artc://example.aliyundoc.com/app/stream?auth_key={your_auth_key}@subvideo=no.

Réseau de lecture

Assurez-vous que le réseau de lecture est stable. Sur les réseaux instables, le SDK ApsaraVideo Player augmente le tampon local pour maintenir une lecture fluide, ce qui ajoute de la latence.

Transcodage

Le transcodage ajoute 300 à 500 ms de latence à votre flux en direct. RTS prend en charge deux types de transcodage :

  • Transcodage automatique H5 : s'applique lorsqu'un flux RTMP est ingéré pour la lecture web. La latence ajoutée est minime et inévitable.

  • Modèles de transcodage personnalisés : la lecture d'un flux transcodé peut introduire de la latence de deux manières :

    • Latence de traitement : ajoute 300 à 500 ms de latence inévitable aux flux transcodés.

    • Latence d'initialisation : avec le triggered transcoding activé, le transcodage ne démarre que lorsque le premier spectateur demande le flux, ajoutant environ 200 ms de latence de démarrage.

    Remarque

    Le transcodage déclenché est configuré lors de la création d'un modèle de transcodage. Pour le désactiver, créez un nouveau modèle, redémarrez l'ingestion du flux et retestez la latence.

Nous contacter

Si une latence élevée persiste après ces étapes de dépannage, soumettez un ticket. Incluez les informations suivantes :

  • Les URL d'ingestion et de streaming utilisées pour les tests.

  • Les outils d'ingestion et de lecture utilisés (par exemple, OBS Studio et SDK ApsaraVideo Player pour Web).

  • Un résumé des étapes de dépannage que vous avez effectuées.