La observabilidad del cliente proporciona métricas detalladas de la calidad del flujo -como pérdida de paquetes, datos recibidos y ancho de banda estimado- y puede utilizarse en cualquier flujo publicado o 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.

API de estadísticas de audio y vídeo

La API de estadísticas de audio y vídeo proporciona información periódica y detallada sobre el rendimiento de los medios, tanto para editores como para abonados. Estas estadísticas permiten a las Applications supervisar la calidad de audio y 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 API está disponible en todos los SDK de clientes de vídeo y ofrece llamadas de retorno o eventos independientes para las métricas del lado del editor 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 frecuencia de imagen, resolución, tasa de bits y recuento de paquetes, entregadas periódicamente a través de llamadas de retorno o eventos.

  • Eventos de cambio de calidad de vídeo: se activan 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.


Estadísticas del editor

Las devoluciones de llamada de los editores proporcionan visibilidad de la calidad de los medios que se están enviado a cada suscriptor (o al router de medios de video de Vonage en sesiones enrutadas). Estas métricas ayudan a comprender las condiciones de la red ascendente, observar el rendimiento de la codificación y diagnosticar problemas como la pérdida de paquetes o las caídas de velocidad de bits.

Nota: En las sesiones enrutadas, es posible que las métricas del editor no correspondan a los valores reales de los medios porque el enrutador de medios de video de Vonage puede estrangular el ancho de banda para optimizar los recursos. En tales casos, no confíes en las métricas del lado del editor hasta que haya al menos un suscriptor conectado. Puedes ignorar las razones de limitación de calidad relacionadas con el ancho de banda para el editor hasta que haya un suscriptor. En las sesiones retransmitidas, no se informa de ninguna estadística hasta que haya al menos un abonado 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 permiten determinar a qué abonado pertenece cada objeto estadístico.

En una sesión enrutada (que utiliza el enrutador de medios de video de Vonage), sólo hay un flujo de medios saliente, por lo que la matriz stats contiene un único objeto, y tanto el ID de conexión como el ID de suscriptor no están definidos.

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, incluida la carga útil de audio, las cabeceras y el relleno.
  • Nivel de audio: Intensidad actual de la señal de audio, normalizada entre 0 y 1.
  • Marca de tiempo: Indica cuándo se realizó cada medición.
  • Estadísticas de transporte: Estadísticas relacionadas con el transporte:
    • Ancho de banda disponible estimado de la conexión de enlace ascendente.

Métricas en vídeo

  • Paquetes perdidos: Numbers 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: Indican 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 fotograma codificado: Altura de los fotogramas de vídeo codificados para esta capa. Al igual que con la anchura, el codificador puede reducir la escala de los fotogramas en función del ancho de banda, la CPU o la configuración de la capa simulcast/SVC.
    • Velocidad de fotogramas de salida del codificador: Frecuencia de imagen real a la que se codifican correctamente los fotogramas de vídeo. Puede diferir de la frecuencia de imagen de captura de la cámara (los fotogramas pueden descartarse antes de la codificación) y de la frecuencia de imagen transmitida realmente (los fotogramas codificados pueden descartarse antes del 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 transporte: Estadísticas relacionadas con el transporte:
    • Ancho de banda disponible estimado de la conexión de enlace ascendente.

El audio y el vídeo comparten la misma conexión de transporte, por lo que las estadísticas de transporte son idénticas para ambos.


Estadísticas de abonados

Las retrollamadas de abonado proporcionan información sobre los medios que se están recibido y renderizado, lo que ayuda a las aplicaciones a detectar problemas de reproducción, evaluar el rendimiento descendente 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 remoto.
  • Marca de tiempo: Cuándo se recogieron las métricas.
  • Estadísticas del remitente: Estimaciones de ancho de banda comunicadas por el remitente.

Métricas en 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.
  • Velocidad de fotogramas descodificada: 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).
  • Bitrate: Rendimiento actual de los medios recibidos, considerando sólo la carga útil de vídeo.
  • Bitrate 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.
  • Numbers of video pauses: 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 de vídeo.
  • Codec: Códec actual utilizado para el flujo de vídeo.
  • Estadísticas del remitente: Estimaciones de ancho de banda comunicadas por el remitente.

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:

  1. Degradación debida a la limitación del ancho de banda
  2. Degradación debida a la limitación de la CPU
  3. Otros motivos de degradación de la calidad
  4. Cambios en los códecs
  5. Cambios de resolución o de capa de vídeo

Para un abonado, los motivos se consideran en el siguiente orden de prioridad:

  1. Interrupción del vídeo
  2. Cambios en los códecs
  3. Cambios en la resolución

Estadísticas del remitente

Durante una llamada, el editor transmite un flujo de medios a uno o más abonados. Los medios pueden 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 Vonagedependiendo de si los medios fluyen punto a punto o a través del enrutador de medios. La API se denomina Estadísticas del lado del emisor porque el emisor es la fuente de las métricas notificadas, que se entregan al receptor, que es el abonado.

La API informa de dos métricas clave por paquete (par audio-vídeo): la tasa de bits máxima que el remitente puede estimar y la estimación de ancho de banda actual. La tasa de bits máxima es un límite 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 enlace descendente estimado de la capacidad del canal de conexión WebRTC peer que está disponible para los medios, independientemente de la tasa de bits del flujo.

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 única, varios paquetes de audio+vídeo comparten la misma conexión, por lo que la estimación del ancho de banda total debe calcularse sumando las estimaciones de los paquetes individuales. En otras palabras, el ancho de banda total se comparte entre todos los abonados de la conexión entre iguales.

Activación de las estadísticas del remitente

Para activar las estadísticas del lado del remitente, utilice el método correspondiente en el Client SDK para activar las pistas de estadísticas del remitente en el editor. Una vez activadas, las métricas del lado del remitente se incluirán en los eventos habituales de estadísticas de audio y vídeo.

Estadísticas soportadas

Las estadísticas del lado del remitente incluyen los siguientes datos, que pueden utilizarse para determinar la estimación del enlace descendente de un abonado:

  • 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 prácticos

  • 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: Utilice las estadísticas del lado del remitente para activar avisos para los abonados si el ancho de banda estimado de una conexión de remitente cae 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.

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.

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.

Permitir la recopilación de estadísticas de audio y vídeo

En editor o suscriptor, escuche los eventos estadísticos correspondientes. Para obtener más información, consulte la guía del desarrollador correspondiente a cada Client SDK: