Corrección de errores
Cálculo mejorado de contentBitrate
Problema: el atributo contentBitrate reportó la tasa de bits objetivo del manifiesto en lugar del rendimiento real medido durante la reproducción.
Corrección: se actualizó el método de cálculo de la tasa de bits para usar getAverageThroughput() de dash.js. Esto captura el rendimiento promedio medido, proporcionando una representación en tiempo real más precisa de la tasa de consumo de contenido durante la reproducción.
Detalles de implementación
Lógica principal: utiliza
player.getAverageThroughput('video')para recuperar el rendimiento medidoLógica de respaldo:
- Utiliza la tasa de bits del manifiesto si la medición del rendimiento no está disponible.
- Mejora la precisión del monitoreo y el análisis de la calidad de video
Impacto:
- Reportes de bitrate más precisos en el monitoreo de video de New Relic
- Mejor visibilidad de las condiciones reales de la red y la calidad del video
- Capacidades de depuración mejoradas para problemas de reproducción
Novedades
Esta versión introduce tres nuevas métricas de tasa de bits que proporcionan un análisis de calidad exhaustivo para el streaming MPEG-DASH, junto con importantes mejoras en los cálculos de tasa de bits existentes y la compatibilidad con dash.js v4/v5.
Nueva característica
Nuevas métricas de tasa de bits
contentManifestBitrate: tasa de bits máxima combinada (video + audio) del manifiesto MPD. Representa la variante de flujo más alta posible disponible.contentMeasuredBitrate: red estimada por el algoritmo de tasa de bits adaptativa (ABR) del reproductor, basada en el rendimiento de descarga medido. Utilice esta métrica para analizar la toma de decisiones de ABR.contentDownloadBitrate: Rendimiento de descarga efectivo calculado a partir de los datos de solicitud de segmentos de video (bytesDownloaded × 8 / downloadTime). Esto proporciona monitoreo de rendimiento de red en tiempo real.
Cambios
Cálculos de tasa de bits actualizados
contentBitrate: devuelve la tasa de bits solo de video de la pista activa y excluye el audio. Las versiones anteriores incluían la tasa de bits combinada.contentRenditionBitrate: devuelve el ancho de banda de video y audio combinado de la representación activa para ofrecer un panorama completo de la calidad.
Mejoras de compatibilidad
getDashBitrate(): Se solucionó el problema de compatibilidad con v4. La verificación de versión ahora se realiza antes de llamar a las API exclusivas de v5, lo que evita errores en las instalaciones de dash.js v4.x.getManifestBitrate(): Se introdujo una detección inteligente de versiones que usagetRepresentationsByType()en dash.js v5+ y recurre agetBitrateInfoListFor()en v4.x.
Corrección de errores
- Se eliminó la definición duplicada del método
getPlayhead() - Se eliminó la sentencia
console.logdel controlador de erroresgetTrack()
Descripción general de las métricas de tasa de bits
Atributo | Tipo | Descripción |
|---|---|---|
| Solo video | Tasa de bits de la pista de video actualmente activa |
| Combinado | Ancho de banda de video + audio de la representación activa |
| Máximo | Variante de mayor calidad del manifiesto MPD |
| Estimado | Estimación del ancho de banda del algoritmo ABR |
| Tiempo real | Rendimiento de descarga efectivo |
Corrección de errores
Se corrigió contentBitrate para reportar con precisión la tasa de bits de la transmisión
Problema: el atributo contentBitrate utilizaba estimatedBandwidth (la estimación de la capacidad de la red) como su fuente principal, lo que no representaba con precisión la tasa de bits real del flujo de video en reproducción.
Solución: se actualizó el cálculo de la tasa de bits para priorizar streamBandwidth de las estadísticas de Shaka Player, que proporciona la tasa de bits real del contenido de la variante de video actual tal como se define en el manifiesto.
Impacto: el atributo contentBitrate reporta correctamente la tasa de bits (en bits por segundo) del flujo de video en reproducción en lugar del ancho de banda de red estimado. Esto proporciona telemetry data de mayor precisión para el monitoreo y análisis de la calidad de video.
Detalles técnicos
- Se cambió el orden de prioridad en el método
getContentBitratePlayback() - Usa el
stats.streamBandwidthcomo fuente principal para la tasa de bits del contenido - Se actualizó la documentación de
DATAMODEL.mdpara reflejar la definición exacta
Bug fixes
- Removed github token (f5f9ade)
Corrección de errores
- Se eliminó el token de GitHub (f5f9ade)
Enhancements
Improved error logging
Improved error logging by mapping Shaka errors to the following attributes: errorCode, errorPlatformCode, errorMessage, errorStackTrace, errorSeverity.
This enhancement ensures cleaner, more structured error data in New Relic by extracting only the essential error attributes from Shaka Player errors, removing unwanted properties like the data array.
Updates
Fixed CONTENT_ERROR Event
Attached the error EventListener to the player instead of its tag, following Shaka's specifications, to fix the CONTENT_ERROR event.
Mejoras
Logging de errores mejorado
Se mejoró el logging de errores al mapear los errores de Shaka a los siguientes atributos: errorCode, errorPlatformCode, errorMessage, errorStackTrace, errorSeverity.
Esta mejora garantiza datos de errores más limpios y estructurados en New Relic al extraer solo los atributos de error esenciales de los errores de Shaka Player, eliminando propiedades no deseadas como el arreglo data.
Actualizaciones
Se corrigió el evento CONTENT_ERROR
Se adjuntó el error EventListener al reproductor en lugar de a su etiqueta, siguiendo las especificaciones de Shaka, para corregir el evento CONTENT_ERROR.
Bug fixes
Content Bitrate detection enhancement
We've significantly improved the getBitrate() method with comprehensive Video.js technology support:
Key improvements
- VHS (Video HTTP Streaming) API support: Added native support for HLS and DASH content bitrate detection
- Enhanced bandwidth calculation: Implemented audio + video bitrate combination for accurate total bandwidth reporting
- Extended tech support: Added fallback support for popular streaming libraries:
- Shaka Player
- HLS.js
- DASH.js
- Improved reliability: Enhanced bitrate detection accuracy across different streaming technologies
- Dynamic bitrate updates: Fixed issue where bitrate values remained static throughout video playback
Corrección de errores
Mejora en la detección de la tasa de bits del contenido
Hemos mejorado significativamente el método getBitrate() con soporte integral para la tecnología Video.js:
Mejoras clave
Soporte de la API de VHS (Video HTTP Streaming): Se agregó soporte nativo para la detección de tasa de bits de contenido HLS y DASH
Cálculo mejorado del ancho de banda: Se implementó la combinación de tasas de bits de audio + video para un reporte preciso del ancho de banda total
Soporte técnico extendido: Se agregó soporte de reserva para bibliotecas de streaming populares:
- Shaka Player
- HLS.js
- DASH.js
Confiabilidad mejorada: Mayor precisión en la detección de la tasa de bits en diferentes tecnologías de streaming
Actualizaciones dinámicas de tasa de bits: Se corrigió un problema en el que los valores de tasa de bits permanecían estáticos durante la reproducción del video
Feature
Added IMA Ad tracking capability
- Improved Ad tracking capability for the agent with IMA ad tracking.