Observabilité du client : Vue d'ensemble
L'observabilité du client fournit des mesures détaillées de la qualité du flux, telles que la perte de paquets, les données reçues et la bande passante estimée, et peut être utilisée sur n'importe quel flux publié ou souscrit.
Les statistiques sont accessibles par le biais de deux mécanismes principaux :
- API de statistiques de haut niveau - le mécanisme préféré dans la plupart des cas. Cette API fournit des mesures de performances audio, vidéo et réseau et tient compte des transitions de connexion entre pairs et d'autres ajustements internes. Le SDK regroupe ces détails de manière à ce que les données s'inscrivent clairement dans une abstraction d'éditeur ou d'abonné. Dans la mesure du possible, utilisez cette API, car elle offre une représentation plus précise et plus stable des performances réelles de la session.
- Rapport de statistiques WebRTC de bas niveau, qui expose le rapport brut WebRTC RTCStatsReport pour la connexion pair sous-jacente. Ces données ne sont pas ajustées pour les transitions de connexion entre pairs ou les optimisations internes et ne reflètent que les statistiques WebRTC directes. Il est utile pour le débogage avancé ou lorsque des données WebRTC brutes sont explicitement requises.
API pour les statistiques audio et vidéo
L'API Statistiques audio et vidéo fournit des informations périodiques et détaillées sur les performances des médias, tant pour les éditeurs que pour les abonnés. Ces statistiques permettent aux Applications de surveiller la qualité audio et vidéo en temps réel, de comprendre le comportement du réseau, de détecter les problèmes liés aux appareils et de réagir de manière proactive aux changements de bande passante ou de performances. L'API est disponible dans tous les SDK Video Client et fournit des rappels ou des événements distincts pour les mesures côté éditeur et côté abonné.
Les principaux types de données et d'événements fournis sont les suivants :
Statistiques audio et vidéo - telles que la fréquence des images, la résolution, le débit binaire et le nombre de paquets, fournies périodiquement par le biais de rappels ou d'événements.
Événements de modification de la qualité vidéo - déclenchés chaque fois que la qualité d'un flux vidéo change, ils fournissent des mesures actualisées ainsi que la raison de la dégradation ou de l'amélioration.
Statistiques de l'éditeur
Les rappels de l'éditeur permettent de connaître la qualité des médias en cours de diffusion. envoyé à chaque abonné (ou au Video Media Router de Vonage pour les sessions routées). Ces mesures permettent de comprendre les conditions du réseau en amont, d'observer les performances d'encodage et de diagnostiquer les problèmes tels que la perte de paquets ou les chutes de débit.
Remarque : Dans les sessions acheminées, les mesures de l'éditeur peuvent ne pas correspondre aux valeurs réelles des médias, car le routeur vidéo de Vonage peut limiter la bande passante pour optimiser les ressources. Dans ce cas, ne vous fiez pas aux mesures côté éditeur tant qu'au moins un abonné n'est pas connecté. Vous pouvez ignorer les raisons de limitation de la qualité liées à la bande passante pour l'éditeur jusqu'à ce qu'un abonné soit présent. Dans les sessions relayées, aucune statistique n'est rapportée tant qu'au moins un abonné n'est pas connecté.
Notez que lorsque l'éditeur est dans une session relayée, il envoie un flux média distinct à chaque abonné. De ce fait, les événements statistiques peuvent inclure plusieurs objets statistiques, un par abonné. Pour chaque objet statistique dans une session relayée, deux champs d'identification sont inclus :
- ID de connexion: L'identifiant unique de la connexion de l'abonné. Il correspond à la propriété ID de l'objet de connexion fourni dans l'événement de création de connexion pour ce client.
- Identifiant de l'abonné: L'identifiant unique de l'objet Abonné recevant le flux de cet éditeur. Cela correspond à la propriété ID de l'abonné dans l'application du client qui s'abonne.
Ces champs permettent de déterminer à quel abonné appartient chaque objet de statistiques.
Dans une session routée (utilisant le routeur vidéo de Vonage), il n'y a qu'un seul flux média sortant, donc le tableau stats contient un seul objet, et l'identifiant de connexion et l'identifiant d'abonné sont indéfinis.
Mesures audio
- Paquets perdus : Nombre total de paquets audio qui n'ont pas réussi à atteindre l'abonné.
- Paquets envoyés : Nombre total de paquets audio transmis à l'abonné ou au routeur média.
- Octets envoyés : Taille cumulée de toutes les données audio envoyées, y compris la charge utile audio, les en-têtes et le remplissage.
- Niveau audio : Intensité sonore actuelle du signal audio, normalisée entre 0 et 1.
- Horodatage : Indique quand chaque mesure a été prise.
- Statistiques sur les transports : Statistiques relatives au transport, y compris :
- Estimation de la largeur de bande disponible de la connexion montante.
Mesures vidéo
- Paquets perdus : Nombre de paquets vidéo qui n'ont pas atteint leur destination.
- Paquets envoyés : Nombre total de paquets vidéo transmis à l'abonné ou au routeur média.
- Octets envoyés : Nombre total d'octets transmis à l'abonné ou au routeur média, y compris la charge utile vidéo, les en-têtes et le remplissage.
- Horodatage : Indique le point de départ et le point actuel de la mesure.
- Couches vidéo : Informations par couche pour la diffusion simultanée ou le codage vidéo évolutif (SVC). Dans une configuration de diffusion simultanée, chaque objet correspond à un encodage vidéo indépendant (par exemple, des flux à basse, moyenne et haute résolution envoyés en parallèle). Pour le SVC (Scalable Video Coding), l'éditeur envoie généralement un codage vidéo unique, avec une évolutivité (temporelle, spatiale ou les deux) codée en interne et décrite via le champ du mode d'évolutivité. Il comprend :
- Encoded frame width (largeur des images encodées) : largeur des images vidéo encodées pour cette couche. Cette largeur peut différer de la résolution de capture de la caméra si une mise à l'échelle ou une adaptation est appliquée.
- Encoded frame height (hauteur des images codées) : hauteur des images vidéo codées pour cette couche. Comme pour la largeur, l'encodeur peut réduire la taille des images en fonction de la bande passante, de l'unité centrale ou de la configuration de la couche simulcast/SVC.
- Taux de rafraîchissement de la sortie de l'encodeur : Fréquence d'images réelle à laquelle les images vidéo sont encodées avec succès. Elle peut être différente de la fréquence d'images de capture de la caméra (des images peuvent être supprimées avant l'encodage) et de la fréquence d'images effectivement transmise (des images encodées peuvent être supprimées avant l'envoi).
- Bitrate (charge utile vidéo uniquement) : Débit binaire estimé de la charge utile vidéo codée. Ce débit n'inclut pas les frais généraux RTP et peut varier en fonction des décisions de contrôle du débit de l'encodeur.
- Débit binaire total (y compris les frais généraux) : Débit binaire comprenant les en-têtes RTP, le rembourrage et les autres frais généraux de transport. Ce débit reflète mieux l'utilisation réelle du réseau que le débit binaire de la charge utile seule.
- Mode d'extensibilité : Indique la structure d'évolutivité spatiale/temporelle (par exemple, "L3T3").
- Codec : Le codec utilisé pour encoder cette couche (par exemple, VP8, VP9, H.264, AV1).
- Raison de la limitation de la qualité : indique pourquoi l'encodeur a limité la qualité (bande passante, CPU, autre). Aide à diagnostiquer si l'adaptation est due à des conditions de réseau ou à des contraintes liées à l'appareil.
- Statistiques sur les transports : Statistiques relatives au transport, y compris :
- Estimation de la largeur de bande disponible de la connexion montante.
L'audio et la vidéo partagent la même connexion de transport, de sorte que les statistiques de transport sont identiques pour les deux.
Statistiques sur les abonnés
Les rappels de l'abonné fournissent des informations sur le média en cours de traitement. reçu et rendus, ce qui permet aux Applications de détecter les problèmes de lecture, d'évaluer les performances en aval et de prendre des décisions adaptées.
Mesures audio
- Paquets reçus : Nombre de paquets audio reçus avec succès.
- Paquets perdus : Combien de paquets audio n'ont pas été reçus avec succès.
- Octets reçus : Total des données audio reçues de l'éditeur ou du routeur multimédia Video API.
- Niveau audio : Intensité sonore de l'audio de la télécommande.
- Horodatage : Quand les données ont-elles été collectées ?
- Statistiques côté expéditeur: Estimations de la largeur de bande communiquées par l'expéditeur.
Mesures vidéo
- Paquets reçus : Nombre de paquets vidéo reçus avec succès.
- Paquets perdus : Combien de paquets vidéo n'ont pas été reçus avec succès.
- Octets reçus : Total des données vidéo reçues de l'éditeur ou du routeur multimédia Video API.
- Résolution décodée : Largeur et hauteur des images après décodage.
- Taux de rafraîchissement décodé : Fréquence d'images réelle produite par le décodeur. Elle peut différer du nombre d'images reçues (certaines peuvent être supprimées avant le décodage) et du nombre d'images rendues (certaines images décodées peuvent ne pas être affichées en fonction des conditions de rendu).
- Bitrate : Débit actuel des médias reçus, en tenant compte uniquement de la charge utile vidéo.
- Débit total : Débit actuel du média reçu, y compris les en-têtes et le remplissage.
- Nombre d'arrêts sur image : Nombre d'arrêts de la vidéo, tel que défini dans l'API de statistiques de WebRTC. freezeCount.
- Durée totale de l'arrêt de la vidéo : Durée totale de l'arrêt de la vidéo.
- Nombre de pauses vidéo : Nombre d'interruptions de plus de 5 secondes, y compris les pauses intentionnelles (par exemple lorsque l'éditeur désactive la piste vidéo) et les cas où la vidéo est désactivée en raison d'un repli audio de l'éditeur ou de l'abonné.
- Durée totale des pauses vidéo : Durée totale des pauses vidéo.
- Codec : Codec actuellement utilisé pour le flux vidéo.
- Statistiques côté expéditeur: Estimations de la largeur de bande communiquées par l'expéditeur.
Qualité vidéo modifiée Événements
Le SDK fournit des événements de changement de qualité vidéo pour donner aux Applications un aperçu détaillé du flux vidéo d'un éditeur ou d'un abonné. Ces événements complètent les statistiques de réseau périodiques fournies pour l'observabilité du client et permettent aux Applications de réagir à la fois aux mesures continues et aux changements de qualité significatifs.
Vous pouvez attacher un gestionnaire à un éditeur ou à un abonné pour accéder aux événements de changement de qualité. Ces événements fournissent des mesures mises à jour ainsi que la raison de la dégradation ou de l'amélioration. Ce mécanisme permet à votre application de surveiller les performances de la vidéo et d'adapter l'interface utilisateur ou le comportement en conséquence, indépendamment de la manière dont les mesures sont fournies en interne.
Les motifs des événements de qualité sont déclenchés selon un ordre de priorité défini. Par exemple, une limitation de la qualité causée par la bande passante est prioritaire par rapport à un changement de résolution. Si vous souhaitez suivre tous les changements de métriques, consultez les statistiques détaillées incluses dans chaque événement. Reportez-vous à la documentation de référence du SDK pour plus de détails.
Pour un éditeur, les raisons sont considérées dans l'ordre de priorité suivant :
- Dégradation due à la limitation de la bande passante
- Dégradation due à la limitation de l'unité centrale
- Autres raisons de dégradation de la qualité
- Modifications du codec
- Changements de résolution ou de couche vidéo
Pour un abonné, les raisons sont considérées dans l'ordre de priorité suivant :
- Interruption de la vidéo
- Modifications du codec
- Modifications de la résolution
Contrôle de la qualité des appels
Au-delà des API statistiques de base, le SDK OpenTok.js offre des capacités supplémentaires pour surveiller et répondre aux changements de qualité des appels en temps réel. Ces fonctionnalités aident les Applications à optimiser les performances en s'adaptant aux contraintes des appareils et aux conditions du réseau.
Note: Les fonctionnalités de surveillance de la qualité des appels, notamment la surveillance des performances du processeur et le suivi du score d'opinion moyen (MOS), ne sont actuellement disponibles que dans le SDK OpenTok.js pour les applications web.
Capacités clés :
- Surveillance des performances de l'unité centrale - Détectez les changements dans la charge du processeur de l'appareil et adaptez votre application en conséquence. Les applications peuvent répondre à la sollicitation du processeur en désactivant les fonctions coûteuses en calcul ou en réduisant la qualité vidéo pour maintenir la stabilité de l'appel.
- Score d'opinion moyen (MOS) - Évaluez la qualité de l'expérience que les utilisateurs perçoivent de votre service en utilisant l'échelle MOS standard de l'industrie (1-5). L'algorithme MOS tient compte de la perte de paquets, du débit, de la latence du réseau et d'autres facteurs ayant un impact sur la qualité des médias.
- Optimisation combinée - Créez des applications robustes qui réagissent aux performances de l'unité centrale et aux mesures de la qualité du réseau, en ajustant dynamiquement la résolution vidéo, les fréquences d'images et d'autres paramètres pour offrir la meilleure expérience possible à l'utilisateur dans des conditions variables.
- Tests préalables à l'appel - Utilisez la bibliothèque de test du réseau vidéo de Vonage pour évaluer si un client peut prendre en charge la publication audio et vidéo et estimer les scores MOS avant que les utilisateurs ne se joignent à une session.
Pour des conseils de mise en œuvre détaillés, des exemples de code et des bonnes pratiques concernant le contrôle de la qualité des appels dans les applications web, voir le document Documentation du SDK OpenTok.js.
Statistiques côté expéditeur
Lors d'un appel, l'éditeur transmet un flux de médias à un ou plusieurs abonnés. Le média peut être relayé directement ou traité par l'intermédiaire de l'opérateur de téléphonie mobile. Routeur vidéo multimédia de Vonage. Si les abonnés peuvent observer le débit du flux qu'ils reçoivent, ils n'ont généralement pas de visibilité sur leur capacité totale de liaison descendante. L'API Statistiques côté émetteur remédie à cette limitation en fournissant des mesures qui aident les abonnés à évaluer la bande passante dont ils disposent pour recevoir des médias et optimiser la qualité du flux.
L'expéditeur peut être un éditeur ou le Routeur vidéo multimédia de VonageL'API est appelée "statistiques côté expéditeur" car l'expéditeur est la source des mesures rapportées, délivrées au destinataire qui est l'abonné. L'API est appelée "Sender-side Statistics" (statistiques côté émetteur) car l'émetteur est la source des mesures rapportées, transmises au récepteur qui est l'abonné.
L'API rapporte deux paramètres clés par bundle (paire audio-vidéo) : le débit maximum que l'expéditeur peut estimer et l'estimation de la bande passante actuelle. Le débit maximal est une limite à ce qui peut être estimé en raison des limitations de la plateforme. L'estimation de la bande passante actuelle est la bande passante descendante estimée de la capacité du canal de connexion de l'homologue WebRTC qui est disponible pour les médias, indépendamment du débit du flux.
Par exemple, un éditeur peut envoyer un flux VGA en utilisant moins de 1 Mbps, alors que le Video Media Router de Vonage, qui fournit les statistiques côté expéditeur, peut estimer la bande passante actuelle à 8 Mbps, ce qui indique une capacité de canal supplémentaire. Ces informations peuvent être utilisées par l'application pour ajuster les présentations vidéo ou déclencher des actions basées sur des politiques telles que la qualité à la demande (QoD) de Vonage.
Notez que son interprétation diffère lorsqu'un session de connexion à un seul homologue est créée. Dans une session de connexion entre pairs, plusieurs faisceaux audio+vidéo partagent la même connexion, de sorte que l'estimation de la largeur de bande totale doit être calculée en additionnant les estimations des faisceaux individuels. En d'autres termes, la bande passante totale est partagée entre tous les abonnés de la connexion unique.
Activation des statistiques côté expéditeur
Pour activer les statistiques côté expéditeur, utilisez la méthode correspondante dans le Client SDK pour activer les pistes de statistiques côté expéditeur sur l'éditeur. Une fois activées, les mesures côté expéditeur seront incluses dans les événements statistiques audio et vidéo habituels.
Statistiques prises en charge
Les statistiques côté émetteur comprennent les données suivantes, qui peuvent être utilisées pour déterminer l'estimation de la liaison descendante pour un abonné :
- Le débit maximum qui peut être estimé pour la connexion.
- Estimation actuelle de la largeur de bande pour la connexion.
Cas d'utilisation
- Optimisation de la mise en page pour les abonnés : Utilisez la bande passante estimée par l'API de l'expéditeur ainsi que les statistiques RTC du point d'extrémité local pour afficher un nombre élevé d'abonnés avec une bonne qualité vidéo.
- Mode média adaptatif : Un abonné peut utiliser les statistiques de l'expéditeur pour déterminer si la largeur de bande estimée de l'expéditeur dépasse un seuil défini (par exemple, 500 kbps) et décider de s'abonner en mode vidéo uniquement ou audio uniquement.
- Mise à l'échelle de la charge : Utilisez les statistiques côté expéditeur pour vérifier si un abonné peut gérer de manière optimale une augmentation de la charge, par exemple en passant d'un partage d'écran à faible débit à une vidéo en direct à débit élevé.
- Seuil d'alerte : Utilisez les statistiques côté émetteur pour déclencher des avertissements pour les abonnés si la largeur de bande estimée d'une connexion émetteur tombe en dessous d'un seuil prédéfini.
- Déclencheurs de qualité à la demande (QoD) : Utilisez les statistiques du côté de l'expéditeur pour déclencher une alerte lorsque la capacité estimée du réseau pour un flux souscrit tombe en dessous d'un seuil donné sur le réseau mobile.
Notes
- Selon le SDK, les statistiques côté émetteur peuvent ne pas être immédiatement disponibles lors de la première demande de statistiques ou lors du premier événement de statistiques après l'abonnement, en raison de la latence du réseau.
- Si vous créer une session de connexion avec un seul homologueLe débit maximum représente le débit le plus élevé que la connexion homologue peut estimer, tandis que le débit actuel reflète le débit de chaque paquet audio-vidéo. Le débit maximal représente le débit le plus élevé que la connexion homologue peut estimer, tandis que le débit actuel reflète le débit de chaque paquet audio-vidéo. Tous les abonnés de la connexion pair unique partagent ce débit maximal. Lors de l'évaluation de la bande passante disponible de l'expéditeur, il convient d'en tenir compte. Par exemple, un débit actuel de 2 Mbps peut indiquer une bonne qualité si plusieurs abonnés partagent la même connexion unique.
Problèmes connus
Dans certains cas, lorsque la session est relayée - ou dans certaines configurations routées avec seulement deux participants - et que l'éditeur utilise Firefox, les statistiques côté expéditeur peuvent ne pas être disponibles en raison des limitations du navigateur.
Rapport statistique RTC
L'API RTC stats report permet d'accéder à des statistiques WebRTC standardisées de bas niveau pour le flux de médias publié et souscrit. Les applications peuvent ainsi récupérer des métriques détaillées dans le format défini par la spécification WebRTC, ce qui permet une surveillance et une analyse avancées au-delà des métriques d'observabilité client personnalisées.
Note: This API provides low-level peer connection statistics. The Video SDK may optimize peer connections, transition between different topologies, or migrate to another backend server. These low-level stats do not aggregate the metrics of different peer connections in use or transitioned from. Therefore, it is preferable to rely on our audio and video statistics API for end-to-end monitoring.
Permettre la collecte de statistiques audio et vidéo
Dans l'éditeur ou l'abonné, écoutez les événements statistiques correspondants. Pour plus de détails, voir le guide du développeur correspondant pour chaque Client SDK :