Observabilidad del cliente
Los SDK de OpenTok ofrecen funciones para acceder a estadísticas de red y de medios en tiempo real durante una sesión de vídeo, incluidas las estadísticas del lado del emisor.
La observabilidad del cliente proporciona métricas detalladas sobre la calidad de la transmisión —como la pérdida de paquetes, los datos recibidos y el ancho de banda estimado— y puede utilizarse en cualquier transmisión publicada o a la que se esté suscrito.
Se puede acceder a las estadísticas a través de dos mecanismos principales:
- API de estadísticas de alto nivel: el mecanismo preferido en la mayoría de los casos. Esta API proporciona métricas de rendimiento de audio, vídeo y red, y tiene en cuenta las transiciones de conexión entre pares y otros ajustes internos. El SDK agrega estos detalles para que los datos se asignen limpiamente a una abstracción de editor o suscriptor. Siempre que sea posible, utilice esta API, ya que ofrece una representación más precisa y estable del rendimiento real de la sesión.
- Informe de estadísticas WebRTC de bajo nivel, que expone el informe WebRTC RTCStatsReport sin procesar para la conexión de pares subyacente. Estos datos no se ajustan para transiciones de conexión entre pares u optimizaciones internas y sólo reflejan las estadísticas WebRTC directas. Es útil para depuración avanzada o cuando se requieren explícitamente datos WebRTC sin procesar.
Esta guía incluye las siguientes secciones:
- API de estadísticas de enlaces de audio, vídeo y contenidos multimedia
- Supervisión de la calidad de las llamadas
- Estadísticas del remitente
- Estado de la red
- Informe estadístico de RTC
- Permitir la recopilación de estadísticas de audio y vídeo
API de estadísticas de enlaces de audio, vídeo y contenidos multimedia
La API de estadísticas de audio y vídeo ofrece información periódica y detallada sobre el rendimiento de los contenidos multimedia, tanto para los editores como para los suscriptores. Estas estadísticas permiten a las aplicaciones supervisar la calidad del audio y el vídeo en tiempo real, comprender el comportamiento de la red, detectar problemas en los dispositivos y responder de forma proactiva a los cambios en el ancho de banda o el rendimiento. La Video API está disponible en todos los SDK de cliente de vídeo y ofrece llamadas de retorno o eventos independientes para las métricas del lado del emisor y del lado del suscriptor.
Entre los principales tipos de datos y eventos que se facilitan figuran:
-
Estadísticas de audio y vídeo - como velocidad de fotogramas, resolución, velocidad de bits y recuento de paquetes, entregados periódicamente a través de llamadas de retorno o eventos.
-
Estadísticas de enlaces multimedia - proporcionan métricas unificadas a nivel de transporte que complementan las estadísticas periódicas de audio y vídeo, incluida la puntuación del estado de la red y la estimación del ancho de banda. Para los abonados, estas métricas ofrecen además visibilidad sobre el rendimiento del transporte del editor remoto y la atribución de la degradación de la red, lo que permite a las aplicaciones diagnosticar los problemas de conexión con precisión y ofrecer a los usuarios información significativa y procesable.
-
Eventos relacionados con cambios en la calidad del vídeo - se activa cada vez que cambia la calidad de un flujo de vídeo, proporcionando métricas actualizadas junto con la razón de cualquier degradación o mejora.
-
Eventos de cambio en el estado de la red – Se activan cuando se detecta un cambio significativo en el estado de la red de un emisor o un receptor. Estos eventos informan de cambios en el estado general de la red e incluyen una instantánea completa de las estadísticas de audio y vídeo, junto con métricas a nivel de transporte, como la puntuación del estado de la red y el motivo de dicho estado. En el caso de los receptores, también incluyen el origen de la degradación de la red. Véase Estado de la red Para más información.
Estadísticas del editor
Las funciones de devolución de llamada de los editores permiten conocer la calidad de los contenidos multimedia que se están enviado a cada abonado (o al Vonage Video Media Router en sesiones enrutadas). Estas métricas ayudan a comprender las condiciones de la red de salida, a supervisar el rendimiento de la codificación y a diagnosticar problemas como la pérdida de paquetes o las caídas de la tasa de bits.
Nota: En las sesiones enrutadas, es posible que las métricas del editor no se correspondan con los valores reales de los medios, ya que el Vonage Video Media Router puede limitar el ancho de banda para optimizar los recursos. En tales casos, no te fíes de las métricas del editor hasta que haya al menos un suscriptor conectado. Puede ignorar los motivos de limitación de calidad relacionados con el ancho de banda del emisor hasta que haya un suscriptor presente. En las sesiones retransmitidas, no se facilitan estadísticas hasta que haya al menos un suscriptor conectado.
Tenga en cuenta que cuando el editor está en una sesión retransmitida, envía un flujo de medios independiente a cada suscriptor. Por ello, los eventos estadísticos pueden incluir varios objetos estadísticos, uno por suscriptor. Para cada objeto estadístico en una sesión retransmitida, se incluyen dos campos de identificación:
- ID de conexión: El ID único de la conexión del suscriptor. Coincide con la propiedad ID del objeto de conexión entregado en el evento de conexión creada para ese cliente.
- Número de abonado: El ID único del objeto suscriptor que recibe el flujo de este editor. Coincide con la propiedad ID del suscriptor en la aplicación del cliente suscriptor.
Estos campos te permiten determinar a qué suscriptor pertenece cada objeto de estadísticas.
En una sesión enrutada (que utiliza el Vonage Video Media Router), solo hay un flujo multimedia saliente, por lo que la matriz de estadísticas contiene un único objeto, y tanto el ID de conexión como el ID de suscriptor están sin definir.
Métricas de audio
- Paquetes perdidos: Número total de paquetes de audio que no han llegado al abonado.
- Paquetes enviados: Número total de paquetes de audio transmitidos al abonado o al router multimedia.
- Bytes enviados: Tamaño acumulado de todos los datos de audio enviados, incluyendo la carga útil de audio, los encabezados y el relleno.
- Nivel de audio: Nivel de volumen actual de la señal de audio, normalizado entre 0 y 1.
- Marca de tiempo: Indica cuándo se realizó cada medición.
Las métricas de transporte y estado de la red del editor están disponibles a través de las estadísticas de enlaces multimedia del editor. Véase Estadísticas de enlaces multimedia Para más información.
Métricas de vídeo
- Paquetes perdidos: Número de paquetes de vídeo que no llegaron a su destino.
- Paquetes enviados: Número total de paquetes de vídeo transmitidos al abonado o al router multimedia.
- Bytes enviados: Número total de bytes transmitidos al abonado o al router multimedia, incluida la carga útil de vídeo, las cabeceras y el relleno.
- Marca de tiempo: Indica los puntos de medición inicial y actual.
- Capas de vídeo: Información por capas para la emisión simultánea o la codificación de vídeo escalable (SVC). En una configuración simulcast, cada objeto corresponde a una codificación de vídeo independiente (por ejemplo, flujos de baja, media y alta resolución enviados en paralelo). En el caso de SVC (Scalable Video Coding), el editor suele enviar una única codificación de vídeo, con escalabilidad (temporal, espacial o ambas) codificada internamente y descrita mediante el campo de modo de escalabilidad. Incluye:
- Ancho de fotograma codificado: Ancho de los fotogramas de vídeo codificados para esta capa. Puede diferir de la resolución de captura de la cámara si se aplica escalado o adaptación.
- Altura de los fotogramas codificados: Altura de los fotogramas de vídeo codificados para esta capa. Al igual que ocurre con la anchura, el codificador puede reducir la resolución de los fotogramas en función del ancho de banda, la CPU o la configuración de la capa de emisión simultánea o SVC.
- Frecuencia de fotogramas de salida del codificador: frecuencia de fotogramas real a la que se codifican correctamente los fotogramas de vídeo. Esta puede diferir de la frecuencia de captura de la cámara (pueden omitirse fotogramas antes de la codificación) y de la frecuencia de fotogramas realmente transmitida (los fotogramas codificados pueden descartarse antes de su envío).
- Bitrate (sólo carga de vídeo): Tasa de bits estimada de la carga útil de vídeo codificada. No incluye la sobrecarga RTP y puede variar en función de las decisiones de control de velocidad del codificador.
- Tasa de bits total (incluidos los gastos generales): Tasa de bits que incluye cabeceras RTP, relleno y otros gastos generales de transporte. Refleja mejor el uso real de la red que la tasa de bits de la carga útil por sí sola.
- Modo de escalabilidad: Indica la estructura de escalabilidad espacial/temporal (por ejemplo, "L3T3").
- Códec: El códec utilizado para codificar esta capa (por ejemplo, VP8, VP9, H.264, AV1).
- Motivo de limitación de calidad: Indica por qué el codificador limitó la calidad (ancho de banda, CPU, otros). Ayuda a diagnosticar si la adaptación se debe a las condiciones de la red o a limitaciones del dispositivo.
Estadísticas de enlaces a medios de los editores
Las estadísticas de enlaces a medios de comunicación de los editores incluyen:
- Estadísticas de transporte: Estadísticas de transporte local y redes del editor, incluidas:
- Ancho de banda disponible estimado de la conexión de enlace ascendente.
- Puntuación del estado de la red. Véase Estado de la red Para más información.
- Motivo del estado de la red. Véase Estado de la red Para más información.
Estas métricas se entregan a través de:
- Evento de estadísticas de enlaces en los medios: Un evento específico que se activa periódicamente para generar informes sobre las estadísticas de enlaces multimedia.
- Evento de cambio de estado de la red: Se activa cuando se detecta un cambio significativo en el estado de la red, y proporciona las estadísticas actuales del enlace de datos junto con el motivo del cambio.
Las estadísticas de enlace de medios del editor describen el enlace ascendente del propio editor. Las estadísticas de enlace de medios del suscriptor informan, además, sobre el transporte del editor remoto y el origen de la degradación de la red. Consulte [Condición de la red por editor y suscriptor](#network_condition_by_publisher and_subscriber) para saber cómo se relacionan ambas perspectivas y cómo evaluar la experiencia de un suscriptor concreto.
Estadísticas de abonados
Las respuestas de los suscriptores proporcionan información sobre los medios que se están recibido y procesados, lo que ayuda a las aplicaciones a detectar problemas de reproducción, evaluar el rendimiento posterior y tomar decisiones adaptativas.
Métricas de audio
- Paquetes recibidos: Cuántos paquetes de audio se han recibido correctamente.
- Paquetes perdidos: Cuántos paquetes de audio no se han recibido correctamente.
- Bytes recibidos: Total de datos de audio recibidos del editor o del Media Router de la Video API.
- Nivel de audio: Volumen del audio del mando a distancia.
- Marca de tiempo: Cuándo se recogieron las métricas.
- Estadísticas del remitente: Estimaciones de ancho de banda comunicadas por el remitente.
Las métricas sobre el transporte de los abonados y el estado de la red, incluidas las estadísticas de transporte de los editores remotos y la información sobre el origen de la degradación de la red, están disponibles a través de las estadísticas del enlace de medios de los abonados. Véase Estadísticas de enlaces multimedia Para más información.
Métricas de vídeo
- Paquetes recibidos: ¿Cuántos paquetes de vídeo se han recibido correctamente?
- Paquetes perdidos: ¿Cuántos paquetes de vídeo no se han recibido correctamente?
- Bytes recibidos: Total de datos de vídeo recibidos del editor o del Media Router de la Video API.
- Resolución descodificada: Anchura y altura de los fotogramas tras la descodificación.
- Frecuencia de fotogramas decodificada: Frecuencia de imagen real producida por el descodificador. Puede diferir del número de fotogramas recibidos (algunos pueden eliminarse antes de la descodificación) y del número de fotogramas renderizados (algunos fotogramas descodificados pueden no mostrarse en función de las condiciones de renderización).
- Velocidad de bits: Rendimiento actual de los medios recibidos, considerando sólo la carga útil de vídeo.
- Velocidad de bits total: Rendimiento actual de los medios recibidos, incluidas las cabeceras y el relleno.
- Numbers of video freezes: Numbers of video freezes, as defined in WebRTC's Statistics API (Número de congelaciones de vídeo, como se define en la API de estadísticas de WebRTC) freezeCount.
- Duración total de las congelaciones de vídeo: Duración total de las congelaciones de vídeo.
- Número de pausas en el vídeo: Numbers of interruptions longer than 5 seconds, including intentional pauses (such as when the publisher disables the video track) and cases where video is turned off due to publisher or subscriber audio fallback.
- Duración total de las pausas de vídeo: Duración total de las pausas en el vídeo.
- Codec: Códec que se está utilizando actualmente para la transmisión de vídeo.
- Estadísticas del remitente: Estimaciones de ancho de banda comunicadas por el remitente.
Estadísticas de enlaces multimedia de los suscriptores
Las estadísticas de enlaces multimedia de los abonados incluyen:
-
Estadísticas de transporte local: Estadísticas de transporte y red para la conexión de enlace descendente del abonado, incluyendo:
- Ancho de banda disponible estimado de la conexión de enlace descendente.
- Puntuación del estado de la red. Véase Estado de la red Para más información.
- Motivo del estado de la red. Véase Estado de la red Para más información.
-
Estadísticas de transporte del editor remoto: Estadísticas de transporte y red para la conexión de enlace ascendente del editor remoto, con los mismos campos que las estadísticas de transporte local. Estas estadísticas pueden estar limitadas si las estadísticas del lado del emisor no están activadas.
-
Fuente de degradación de la red: Identifica qué lado de la conexión es el principal responsable de la degradación observada:
- Ninguno: No se ha detectado degradación de la red.
- Local: La red de abonados locales es la causa principal.
- A distancia: La red del editor remoto es la causa principal.
- Ambas cosas o no está claro: No se puede atribuir claramente la causa de la degradación a una de las partes.
Las estadísticas de enlaces multimedia de los abonados se entregan a través de:
- Evento de estadísticas de enlaces en los medios: Un evento específico que se activa periódicamente para generar informes sobre las estadísticas de enlaces multimedia.
- Evento de cambio de estado de la red: Se activa cuando se detecta un cambio significativo en el estado de la red, y proporciona las estadísticas actuales del enlace de datos junto con el motivo del cambio.
La calidad del vídeo cambió eventos
El SDK proporciona eventos de cambio de calidad de vídeo para ofrecer a las aplicaciones información detallada sobre el flujo de vídeo de un editor o un abonado. Estos eventos complementan las estadísticas periódicas de las redes proporcionadas para la observabilidad del cliente y permiten a las aplicaciones reaccionar tanto a las métricas continuas como a los cambios de calidad significativos.
Puede adjuntar un controlador a un editor o a un suscriptor para acceder a los eventos de cambio de calidad. Los eventos proporcionan métricas actualizadas junto con la razón de cualquier degradación o mejora. Este mecanismo permite a su aplicación supervisar el rendimiento del vídeo y adaptar la interfaz de usuario o el comportamiento en consecuencia, independientemente de cómo se proporcionen internamente las métricas.
Los motivos de los eventos de calidad se activan según un orden de prioridad definido. Por ejemplo, una limitación de calidad causada por el ancho de banda tiene prioridad sobre un cambio de resolución. Si necesita realizar un seguimiento de todos los cambios en las métricas, inspeccione las estadísticas detalladas incluidas en cada evento. Consulte la documentación de referencia del SDK para obtener todos los detalles.
Para un editor, los motivos se consideran en el siguiente orden de prioridad:
- Deterioro debido a la limitación del ancho de banda
- Degradación debida a la limitación de la CPU
- Otros motivos de degradación de la calidad
- Cambios en los códecs
- Cambios de resolución o de capa de vídeo
En el caso de un suscriptor, los motivos se tienen en cuenta según el siguiente orden de prioridad:
- Interrupción del vídeo
- Cambios en los códecs
- Cambios en la resolución
Supervisión de la calidad de las llamadas
Además de las API estadísticas básicas, el SDK de OpenTok.js ofrece funciones adicionales para supervisar y responder a los cambios en la calidad de las llamadas en tiempo real. Estas funciones ayudan a las aplicaciones a optimizar su rendimiento adaptándose a las limitaciones de los dispositivos y a las condiciones de la red.
Nota: Las funciones de supervisión de la calidad de las llamadas, entre las que se incluyen la supervisión del rendimiento de la CPU y el seguimiento de la puntuación media de opinión (MOS), solo están disponibles actualmente en el SDK de OpenTok.js para aplicaciones web.
Capacidades clave
Supervisión del rendimiento de la CPU - Detecte los cambios en la carga de la CPU del dispositivo y adapte su aplicación en consecuencia. Applications can respond to CPU stress by disabling computationally expensive features or reducing video quality to maintain call stability.
Puntuación media de opinión (MOS) - Evalúa la calidad de la experiencia que los usuarios perciben con tu servicio utilizando la escala MOS, estándar del sector (1-5). El algoritmo MOS tiene en cuenta la pérdida de paquetes, la velocidad de transmisión, la latencia de la red y otros factores que influyen en la calidad multimedia.
Optimización combinada - Cree aplicaciones robustas que respondan tanto al rendimiento de la CPU como a las métricas de calidad de la red, ajustando dinámicamente la resolución de vídeo, la velocidad de fotogramas y otros parámetros para ofrecer la mejor experiencia de usuario posible en condiciones variables.
Pruebas previas a la llamada - Utiliza el Prueba de red de la Video API de Vonage biblioteca para evaluar si un cliente es compatible con la publicación de audio y vídeo y calcular las puntuaciones MOS antes de que los usuarios se unan a una sesión.
Para obtener orientación detallada sobre la implementación, ejemplos de código y buenas prácticas para la supervisión de la calidad de las llamadas en aplicaciones web, consulta el Documentación del SDK de OpenTok.js.
Estadísticas del remitente
Durante una llamada, el emisor transmite un flujo multimedia a uno o varios destinatarios. El contenido multimedia puede retransmitirse directamente o procesarse a través del Router multimedia de vídeo de Vonage. Aunque los abonados pueden observar la tasa de bits del flujo que reciben, normalmente carecen de visibilidad sobre su capacidad total de enlace descendente. La API de estadísticas del lado del emisor aborda esta limitación proporcionando métricas que ayudan a los abonados a evaluar el ancho de banda disponible para recibir contenidos y optimizar la calidad del flujo.
Un remitente puede ser un editor o el Router multimedia de vídeo de Vonage, dependiendo de si el flujo de datos se realiza de punto a punto o a través del enrutador de medios. La API se denomina «Estadísticas del lado del remitente» porque el remitente es la fuente de las métricas comunicadas, que se envían al destinatario, que es el suscriptor.
La API proporciona dos métricas clave por paquete (par de audio y vídeo): la tasa de bits máxima que el remitente puede estimar y la estimación actual del ancho de banda. La tasa de bits máxima es un límite máximo de lo que se puede estimar debido a las limitaciones de la plataforma. La estimación del ancho de banda actual es el ancho de banda de bajada estimado de la capacidad del canal de conexión entre pares de WebRTC disponible para los medios, independientemente de la tasa de bits de la transmisión.
Por ejemplo, un editor puede enviar un flujo VGA usando menos de 1 Mbps, mientras que el enrutador de medios de video de Vonage, que proporciona las estadísticas del lado del remitente, puede estimar el ancho de banda actual en 8 Mbps, lo que indica una capacidad adicional del canal. La aplicación puede usar esta información para ajustar los diseños de video o activar acciones basadas en políticas, como Vonage Quality on Demand (QoD).
Obsérvese que su interpretación difiere cuando un sesión de conexión entre pares única se crea. En una sesión de conexión entre pares, varios paquetes de audio y vídeo comparten la misma conexión, por lo que la estimación del ancho de banda total debe calcularse sumando las estimaciones de cada paquete. En otras palabras, el ancho de banda total se comparte entre todos los abonados de la conexión entre pares.
Activación de las estadísticas del remitente
Para habilitar las estadísticas del remitente, utiliza el método correspondiente del Client SDK para activar el seguimiento de las estadísticas del remitente en el editor. Una vez activadas, se incluirán las siguientes métricas en los eventos habituales de estadísticas de audio y vídeo de los suscriptores:
- El bitrate máximo que se puede estimar para la conexión.
- La estimación actual del ancho de banda de la conexión.
Casos de uso
-
Optimización de la disposición de los abonados: Utilice el ancho de banda estimado de la API del remitente junto con las estadísticas RTC del punto final local para mostrar un elevado número de abonados con una buena calidad de vídeo.
-
Modo multimedia adaptable: Un abonado puede utilizar las estadísticas del remitente para determinar si el ancho de banda estimado del remitente supera un umbral definido (por ejemplo, 500 kbps) para decidir si se suscribe en modo sólo vídeo o sólo audio.
-
Escala de carga: Utilice las estadísticas del lado del remitente para comprobar si un abonado puede gestionar de forma óptima un aumento de la carga, como el cambio de compartir pantalla a baja velocidad de bits a vídeo en directo a alta velocidad de bits.
-
Advertencias de umbral: Utiliza las estadísticas del lado del remitente para activar alertas a los suscriptores si el ancho de banda estimado de la conexión de un remitente desciende por debajo de un umbral predefinido.
-
Activadores de calidad bajo demanda (QoD): Utilice las estadísticas del lado del remitente para que se activen cuando la capacidad de red estimada para un flujo suscrito caiga por debajo de un umbral determinado en la red móvil.
Notas
- Dependiendo del SDK, las estadísticas del lado del emisor pueden no estar disponibles inmediatamente la primera vez que se solicitan las estadísticas o en el primer evento de estadísticas después de la suscripción, debido a la latencia de la red.
- Si usted crear una única sesión de conexión entre paresel ancho de banda de la conexión par se comparte entre todos los abonados. La tasa de bits máxima representa la tasa de bits más alta que la conexión entre iguales puede estimar, mientras que la tasa de bits actual refleja la tasa de bits de cada paquete de audio y vídeo. Todos los abonados de la conexión entre pares comparten esta tasa de bits máxima. Al evaluar el ancho de banda disponible del remitente, hay que tener esto en cuenta. Por ejemplo, una tasa de bits actual de 2 Mbps puede indicar una buena calidad si varios abonados comparten la misma conexión entre iguales.
Problemas conocidos
En algunos casos, cuando la sesión se retransmite -o en determinadas configuraciones enrutadas con sólo dos participantes- y el Editor utiliza Firefox, es posible que las estadísticas del lado del remitente no estén disponibles debido a las limitaciones del navegador.
Estado de la red
La API de estado de la red proporciona visibilidad en tiempo real del estado de la conexión de red tanto para editores como para abonados. Expone una puntuación del estado de la red que refleja la calidad general de la conexión, la razón principal que impulsa esa puntuación y, para los abonados, información sobre qué lado de la conexión está causando cualquier degradación observada.
Las métricas sobre el estado de la red se incluyen en las estadísticas del enlace de medios y se transmiten a través de dos canales:
- Estadísticas periódicas: Los campos relativos al estado de la red se incluyen en las estadísticas de enlaces de medios que se facilitan mediante eventos periódicos de estadísticas de enlaces de medios. Véase Estadísticas de enlaces multimedia Para más información.
- Eventos relacionados con cambios en el estado de la red: Cada vez que se detecta un cambio significativo en el estado de la red, se activa una llamada de retorno o un evento específico. Este evento es distinto de los eventos de activación o desactivación del vídeo o de los eventos de recambio de audio, e informa de cambios en el estado de la red, en lugar de cambios en el estado de la pista multimedia. Las aplicaciones pueden utilizar este evento para responder a problemas de red, como actualizar los indicadores de la interfaz de usuario, registrar datos de telemetría o activar un comportamiento adaptativo. El evento incluye las estadísticas actuales del enlace multimedia, junto con el motivo del cambio.
Puntuación del estado de la red
El estado de la red es una puntuación que refleja el estado general de la conexión de red para un transporte determinado (local o remoto). La puntuación se obtiene a partir de métricas como la pérdida de paquetes y el ancho de banda disponible estimado. Los valores más altos indican mejores condiciones de la red.
| Puntuación | Descripción |
|---|---|
| Desconocido | No se ha podido determinar el estado de la red. |
| Excelente | Las condiciones de la red son excelentes. La calidad del vídeo es óptima y el ancho de banda estimado permite alcanzar la tasa de bits máxima para la resolución actual. |
| Bien | Buenas condiciones de la red. Pueden producirse problemas menores o temporales. |
| Feria | Condiciones de red moderadas. La calidad de vídeo puede estar restringida por el emisor. |
| Advertencia | Malas condiciones de la red. La calidad de vídeo se ve muy afectada y se activa una advertencia de desactivación de vídeo si está activada la función de audio fallback. |
| Crítica | Problemas graves de red. Si la función de recambio de audio está activada, el SDK desactiva el vídeo para mantener la estabilidad de la llamada. |
Nota: La puntuación de la calidad de la red es relativa a la configuración actual de los medios y a las demandas de ancho de banda. Refleja lo bien que la red soporta los requisitos activos (por ejemplo, resolución de vídeo, velocidad de bits, frecuencia de imagen). Por ejemplo, si la aplicación está configurada para utilizar una resolución de cámara baja o una tasa de bits baja, la red puede calificarse como excelente porque la demanda de ancho de banda es mínima. Las resoluciones o tasas de bits más altas requerirán más capacidad de red y pueden dar lugar a puntuaciones de calidad diferentes en las mismas condiciones de red.
Motivo relacionado con el estado de la red
Cada puntuación del estado de la red va acompañada de un motivo que indica el factor principal que ha motivado la evaluación:
- Ninguno: Ninguna razón destacable.
- Ancho de banda: El estado de la red depende del ancho de banda disponible.
- Pérdida de paquetes: Estado de la red afectado por la pérdida de paquetes.
Origen de la degradación de la red
El origen de la degradación de la red identifica qué lado de la conexión es el principal responsable de cualquier degradación de la red observada. Esta métrica está disponible para los abonados y proporciona información crítica sobre si los problemas de rendimiento se originan en el enlace descendente del abonado o en el enlace ascendente del editor remoto.
La fuente de degradación de la red ayuda a las aplicaciones a localizar la causa raíz de los problemas de red, lo que permite la resolución de problemas específicos y la comunicación con los usuarios. En lugar de informar únicamente de que las condiciones de la red son deficientes, indica si el problema radica en la calidad de la conexión del abonado local o en la del editor remoto.
Valores posibles:
- Ninguno: No se ha detectado ningún deterioro de la red. Tanto las conexiones locales como las remotas funcionan correctamente.
- Local: La red local del abonado es la principal causa de degradación. Los problemas pueden incluir una señal WiFi deficiente, una elevada pérdida de paquetes en el enlace descendente o un ancho de banda disponible limitado en la conexión del abonado.
- A distancia: La red del editor remoto es la causa principal de la degradación. El editor está experimentando malas condiciones de red en su enlace ascendente, lo que afecta a la calidad de los medios recibidos por este abonado.
- Ambas cosas o no está claro: La degradación se produce en ambos lados de la conexión, o el origen no puede atribuirse claramente a un lado. Esto suele ocurrir cuando tanto el abonado como el editor experimentan problemas de red simultáneamente.
Estado de la red por emisor y receptor
Un emisor puede dar servicio a muchos suscriptores, mientras que cada suscriptor recibe una única transmisión de un emisor. Los informes sobre el estado de la red siguen este esquema: un emisor informa del estado de su propio enlace ascendente, y un suscriptor informa del estado de su enlace descendente, del enlace ascendente del emisor remoto y de qué parte es responsable de cualquier deterioro.
Una editorial informa sobre el enlace del que es propietaria. En una sesión enrutada, el editor solo mantiene una conexión entre pares con el Router multimedia de vídeo de Vonage, independientemente del número de suscriptores que reciban la transmisión. El Media Router da por terminada esa conexión y reenvía el contenido multimedia a cada suscriptor a través de conexiones independientes de las que es propietario. Por lo tanto, las métricas de transporte del editor describen el segmento de la ruta de medios entre el editor y el enrutador de medios —el segmento sobre el que el editor puede influir directamente mediante su propia codificación y control de velocidad—. Esta es también la razón por la que la matriz de estadísticas de un editor enrutado contiene un único objeto con el ID de conexión y el ID de suscriptor sin definir, tal y como se describe en Estadísticas editoriales. En sesiones con más de dos participantes, ampliar esas métricas a todos los suscriptores receptores no sería escalable y tendría un valor diagnóstico limitado: el enrutador multimedia reenvía la transmisión a un número indeterminado de suscriptores, por lo que los datos del lado del editor no podrían ni aislar un problema de red ni atribuir un fallo a un participante concreto.
La notificación del enlace local garantiza la transparencia de las transiciones de AMR. Aunque Enrutamiento adaptativo de medios (AMR) Aunque gestiona específicamente llamadas entre dos participantes en las que cada emisor tiene un único receptor, una ruta de medios retransmitida puede seguir migrando al enrutador de medios durante la llamada cuando se incorporan participantes adicionales o se activan determinadas funciones. Dado que las estadísticas de enlace multimedia del emisor describen el propio enlace de red del emisor —su enlace ascendente, independientemente de si dicho enlace termina en un suscriptor o en el enrutador multimedia—, su significado y estructura no varían durante dicha transición. Las aplicaciones pueden utilizar las estadísticas del emisor de forma coherente sin necesidad de realizar un seguimiento de la topología actual ni de adaptarse a ella durante la llamada. Esto se ajusta al objetivo de diseño expuesto al principio de esta guía, según el cual la API de estadísticas de alto nivel se corresponde claramente con las abstracciones de emisor y suscriptor y se mantiene estable durante las transiciones.
En el caso de las llamadas entre dos participantes, guíate por la perspectiva del abonado. Cuando cada participante publica un flujo y se suscribe a otro, las estadísticas de los suscriptores son suficientes para analizar ambas direcciones. Si un suscriptor informa de una fuente de degradación de Remote, el enlace de subida del participante remoto se ve limitado — y es probable que el propio abonado de ese participante también esté experimentando un deterioro de la calidad de la conexión, ya que las causas habituales (señal WiFi débil, red de acceso congestionada, mala cobertura móvil) afectan a ambos sentidos de un enlace. Considera esto como una deducción más que como una garantía.
Ver también Correlacionar las métricas del editor y del suscriptor para diagnosticar la causa raíz.
Relación con el audio fallback
La notificación del estado de la red está sincronizada con el mecanismo de recambio de audio. Cuando se activan eventos de recambio de audio en los niveles de advertencia o crítico, el estado de la red notificado refleja el mismo nivel de gravedad. El estado de la red indica el estado correspondiente de advertencia o crítico para el emisor, el suscriptor o ambos, lo que garantiza una señalización coherente entre las API de red y de recambio de medios.
También puede ocurrir lo contrario: el estado de la red puede indicar un nivel de advertencia o crítico sin que se active el sistema de respaldo de audio, lo cual ocurre cuando dicho sistema está desactivado.
Condiciones de conexión a la red
La generación de informes sobre el estado de la red se basa en la combinación de varias funciones. Cuantas más funciones se activen, más completos y precisos serán los datos sobre el estado de la red:
- Estadísticas del remitente: Habilite las estadísticas del lado del remitente en el editor para permitir que los abonados reciban métricas de transporte del editor remoto y una atribución más precisa de la fuente de degradación de la red.
- Retorno de audio del editor: Activa la alternativa de audio en el editor para mejorar la precisión de la evaluación del estado de la red por parte del editor.
- Fallback de audio del abonado: Habilitar el audio fallback en el abonado para mejorar la precisión de la puntuación de las condiciones de red del lado del abonado.
Si estas funciones no están activadas, es posible que algunos datos sobre el estado de la red sean limitados o no estén disponibles.
Para recibir eventos de cambio en el estado de la red, registra una función de devolución de llamada o un oyente para los cambios en el estado de la red en el editor o en el suscriptor. El evento incluye las estadísticas actuales del enlace de medios, que contienen métricas sobre el estado de la red y el transporte. Para obtener más información, consulta la guía para desarrolladores de cada Client SDK en la Permitir la recopilación de estadísticas de audio y vídeo sección.
Utilización de la información sobre la observabilidad de los clientes
Esta sección ofrece orientaciones prácticas sobre cómo poner en práctica esas señales de forma eficaz y los errores más comunes que hay que evitar.
Buenas prácticas
Deje que el SDK adapte la calidad automáticamente y actúe en consecuencia
El SDK ya gestiona la adaptación de la calidad automáticamente:
- Lado del editor: Cuando el ancho de banda o la CPU son limitados, el editor reduce automáticamente la resolución y la frecuencia de imagen. En configuraciones simulcast o SVC, esto significa que el codificador puede bajar a una capa espacial o temporal inferior.
- SFU (sesiones enrutadas): El enrutador de medios de video de Vonage selecciona la capa de transmisión simultánea adecuada para cada suscriptor según el ancho de banda de enlace descendente disponible de ese suscriptor. Un suscriptor con una conexión débil recibirá una capa de menor resolución sin intervención de la aplicación.
- Sesiones retransmitidas: El editor reduce la escala directamente para cada par, ya que envía flujos individuales a cada abonado.
No es necesario, y no debería, intentar replicar esta lógica en su aplicación. En su lugar, utilice los eventos de observabilidad para react al resultado: actualice su interfaz de usuario, registre la telemetría o active decisiones de política de nivel superior basadas en lo que el SDK ya ha informado.
Si observas un quality_limitation_reason de bandwidth En las métricas de vídeo del editor, el codificador ya está limitando la salida. Utiliza esta señal para orientar las decisiones relacionadas con la experiencia de usuario (como ocultar una vista previa en alta resolución), en lugar de aplicar modificaciones redundantes de la resolución. Del mismo modo, si el motivo es cpu, plantéate liberar recursos de la CPU en otras partes de tu aplicación —por ejemplo, pausando animaciones no esenciales, aplazando el procesamiento en segundo plano o reduciendo la complejidad del renderizado de la interfaz de usuario— para dar más margen al codificador.
Mostrar un indicador de calidad de la red en tiempo real
Utilice la puntuación del estado de la red de las estadísticas de enlaces multimedia para mostrar un indicador de calidad en su interfaz de usuario, por ejemplo, barras de intensidad de señal o un icono de color. Actualice el indicador sólo cuando el estado de la red cambios (utilizando el evento de cambio de estado de la red) en lugar de en cada actualización periódica de las estadísticas. De este modo se evitan actualizaciones innecesarias, al tiempo que se mantiene la capacidad de respuesta del indicador ante cambios significativos en la calidad.
Para los abonados, la fuente de degradación de la red le indica ¿qué lado? de la llamada. Inclúyalo en la interfaz de usuario para que los participantes reciban información específica y procesable (por ejemplo, "Su conexión es inestable" frente a "El participante remoto está experimentando problemas de red") en lugar de una advertencia de calidad genérica.
Utilice eventos para una experiencia de usuario adaptable, no sondeos
Prefiera las devoluciones de llamada basadas en eventos a la inspección de matrices de estadísticas periódicas para la lógica de umbral. El evento de cambio de condición de red y el evento de cambio de calidad de vídeo están diseñados para detectar transiciones significativas. El sondeo de las estadísticas periódicas para los cruces de umbral en cada tick introduce sobrecarga en la CPU.
Cuando tenga que actuar sobre estadísticas periódicas, rebotar su lógica sobre varias muestras consecutivas antes de activar cualquier cambio UX.
Utilizar las estadísticas de transporte en las decisiones políticas y de trazado
Las estadísticas de enlaces de medios de abonado exponen las métricas de transporte desde dos perspectivas simultáneamente:
- Estadísticas sobre el transporte local reflejan el ancho de banda que el remitente (el editor o el Vonage Video Media Router) estima que está disponible para la conexión con este abonado. Dado que en WebRTC la estimación del ancho de banda la realiza el remitente basándose en la información de retroalimentación de RTCP, esta cifra representa la visión que tiene el remitente de la capacidad del canal, y no una medición realizada por el propio abonado.
- Estadísticas de transporte del editor remoto reflejan las métricas de transporte de enlace ascendente propias del editor, tal y como las comunica este.
Juntas, estas dos vistas le permiten razonar sobre la ruta completa entre el editor y el suscriptor. Utilízalas para tomar decisiones proactivas sobre diseño y políticas:
- Limitar el número de mosaicos de vídeo visibles en un diseño en cuadrícula, cuando la capacidad estimada es baja, ocultando a los participantes de menor prioridad en lugar de mostrar un vídeo congelado o de baja calidad.
- Activar las políticas de «Calidad bajo demanda» (QoD) en redes móviles cuando la estimación del ancho de banda de transporte local cae por debajo de un umbral definido, por ejemplo, al pasar de flujos de alta definición a flujos de definición estándar.
- Mostrar un aviso de capacidad antes de añadir un nuevo flujo de alta tasa de bits (como la pantalla compartida) a una sesión cuando la estimación del ancho de banda de transporte local ya está limitada.
En una red multiparticipante, puede ampliar este enfoque utilizando estadísticas de transporte y señales de limitación de CPU para asignar un presupuesto de calidad entre los editores. El SDK adapta cada flujo de forma independiente y no tiene conocimiento de qué participantes son importantes en su distribución: esa priorización es una decisión a nivel de aplicación. Utilice setPreferredResolution y setPreferredFrameRate corresponde al editor configurarlo: asignar al mosaico destacado el límite máximo de resolución y limitar a los participantes de fondo a valores más bajos. Cuando cambie el interlocutor activo o varíen las condiciones, reequilibrar los límites máximos en consecuencia. Esto complementa la adaptación automática del SDK, que sigue funcionando dentro del límite máximo que haya establecido la aplicación.
Correlacionar las métricas del editor y del suscriptor para diagnosticar la causa raíz
Los problemas de red pueden originarse en cualquiera de los dos lados de la llamada. Utilice la combinación de las estadísticas de enlaces multimedia del editor y del suscriptor, junto con el origen de la degradación de la red, para determinar la causa raíz:
- Una advertencia o una condición de red crítica en el enlace ascendente del editor combinada con un
Remotefuente de degradación en el abonado apunta a un problema de red del lado del editor. - Una disminución del ancho de banda disponible en el enlace descendente del abonado, junto con una
LocalLa fuente de degradación apunta a la propia conexión del abonado. - Cuando ambos lados muestran degradación o la fuente es
Both or unclearTratar el problema como una cuestión compartida.
Estadísticas de registro para análisis y depuración posteriores a la llamada
Almacene estadísticas periódicas y eventos de cambio de estado de la red en un canal de análisis backend. Las métricas clave que vale la pena capturar incluyen:
- Puntuación del estado de la red y motivo a lo largo del tiempo, por emisor y suscriptor.
- Motivo de la limitación de la calidad del vídeo y capa activa (retransmisión simultánea/SVC).
- Ancho de banda disponible estimado a partir de las estadísticas del enlace multimedia.
- Numbers and total duration of video freezes and pauses.
- Puntuación MOS (SDK web) como indicador de la calidad percibida de la llamada.
El análisis posterior a la llamada de estos registros puede sacar a la luz patrones como la degradación recurrente a determinadas horas del día, en determinados tipos de red o para determinados modelos de dispositivos, lo que permite orientar las mejoras de la infraestructura y la experiencia del usuario.
Antipatrones
No anule la adaptación automática de calidad del SDK
El SDK ya reduce la resolución y la frecuencia de fotogramas cuando el ancho de banda o la CPU están limitados. Aplicar cambios manuales en la resolución en respuesta a cada evento de estadísticas suele entrar en conflicto con el control de velocidad del codificador y puede provocar oscilaciones —cambios rápidos entre niveles de calidad—, lo que degrada la calidad percibida más de lo que lo haría una reducción automática y fluida.
Si tienes requisitos de calidad específicos (por ejemplo, una resolución máxima permitida), configúralos de forma declarativa al iniciar la sesión, en lugar de reaccionar a los eventos de estadísticas durante la ejecución.
No activar manualmente el plan de contingencia de «solo audio» basándose en las estadísticas de transporte
Los SDK fallback de audio ya supervisa las condiciones de la red y desactiva automáticamente el vídeo cuando la conexión se deteriora hasta un nivel de advertencia o crítico. Implementar su propia lógica para cambiar a un abonado al modo de sólo audio basándose en la estimación del ancho de banda de transporte local duplica este comportamiento integrado y puede entrar en conflicto con él, por ejemplo, desactivando el vídeo prematuramente antes de que se alcancen los umbrales propios del SDK o volviendo a activarlo en un punto diferente al que lo haría el SDK. Si necesitas un comportamiento de audio fallback, utiliza la función de audio fallback del SDK en lugar de controlarlo directamente desde las estadísticas de transporte.
No active cambios en la interfaz de usuario en cada evento estadístico periódico
Las estadísticas periódicas se disparan a intervalos regulares (normalmente cada pocos segundos). Si se aplican actualizaciones de la interfaz de usuario o lógica empresarial en cada evento, especialmente comprobaciones de umbral en métricas ruidosas como la pérdida instantánea de paquetes, se producen indicadores parpadeantes y alertas espurias. Siempre suavice sus señales: requiera múltiples muestras consecutivas por debajo de un umbral, o utilice el evento dedicado de cambio de condición de red, antes de actualizar el estado de cara al usuario.
No confíe únicamente en las métricas del editor para diagnosticar la experiencia del abonado.
Las métricas de los editores reflejan la calidad de la transmisión ascendente. Un editor puede informar de unas condiciones de red excelentes, mientras que uno o más abonados experimentan una mala calidad del enlace descendente. Para evaluar la experiencia de un abonado concreto, combine siempre las estadísticas de enlace multimedia del editor con las métricas del abonado, incluida la fuente de degradación de la red.
No utilice contadores de bytes o paquetes sin procesar como señales de calidad.
Totales acumulados como bytesReceived o packetsLost crecen monotónicamente y no tienen significado inherente por sí mismos. Calcule siempre las tasas (delta sobre el intervalo entre muestras) o utilice los campos de nivel superior, como la tasa de bits estimada o la puntuación del estado de la red, que el SDK ya deriva de los contadores sin procesar.
No utilice estadísticas RTC de bajo nivel para medir la calidad de extremo a extremo
El informe estadístico de RTC refleja el estado de un solo conexión entre pares subyacente en un momento dado. El SDK puede migrar entre conexiones entre pares o cambiar de topología durante una sesión, por lo que las estadísticas RTC sin procesar no se agregan a lo largo de estas transiciones. Para la medición de la calidad de extremo a extremo y la supervisión de sesiones de larga duración, se recomienda utilizar siempre las API de estadísticas de alto nivel de audio, vídeo y enlaces multimedia, que tienen en cuenta estos cambios internos.
No pases por alto las diferencias entre las sesiones enrutadas y las retransmitidas
En una sesión enrutada, las estadísticas del lado del remitente son proporcionadas por el enrutador de medios de video de Vonage, y las estimaciones de ancho de banda del lado del suscriptor reflejan el enlace descendente del suscriptor al enrutador de medios, no una medición directa del enlace ascendente del editor. En una sesión retransmitida (entre pares), el editor envía secuencias individuales a cada abonado, y las estadísticas del editor representan mediciones directas entre pares. Al crear análisis o lógica adaptativa, tenga en cuenta el modo de sesión para evitar malinterpretar los números.
Informe estadístico de RTC
La API de informes de estadísticas RTC proporciona acceso a estadísticas WebRTC estandarizadas de bajo nivel para el flujo multimedia publicado y suscrito. Esto permite a las Applications recuperar métricas detalladas en el formato definido por la especificación WebRTC, lo que posibilita una supervisión y un análisis avanzados más allá de las métricas de observabilidad del cliente personalizadas.
Nota: Esta API proporciona estadísticas de bajo nivel sobre las conexiones entre pares. El SDK de vídeo puede optimizar las conexiones entre pares, realizar transiciones entre diferentes topologías o migrar a otro servidor de fondo. Estas estadísticas de bajo nivel no agregan las métricas de las diferentes conexiones entre pares que están en uso o desde las que se ha realizado la transición. Por lo tanto, es preferible recurrir a nuestra API de estadísticas de audio y vídeo para la supervisión de extremo a extremo.
Permitir la recopilación de estadísticas de audio y vídeo
Tanto en el editor como en el suscriptor, presta atención a los eventos de estadísticas correspondientes. Para obtener más información, consulta la guía para desarrolladores correspondiente a cada Client SDK: