Esta versión introduce tres nuevas métricas de bitrate para una observabilidad granular de la reproducción, soporte para QoE (calidad de experiencia) y compatibilidad con Shaka Player 5.x, al tiempo que mantiene la compatibilidad retroactiva con Shaka 4.x.
Nuevas métricas de tasa de bits
Tres nuevos atributos ya están disponibles para proporcionar información valiosa más detallada sobre el rendimiento del streaming:
Atributo | Fuente | Descripción |
|---|---|---|
|
| Tasa de bits total de la variante (video + audio) según lo declarado en el manifiesto (Tasa de bits indicada). |
|
| Ancho de banda de red estimado medido por el algoritmo ABR de Shaka (tasa de bits observada). |
|
| Rendimiento de descarga efectivo en todos los medios descargados. |
Además, contentBitrate utiliza track.videoBandwidth (tasa de bits de solo video) para diferenciarla de otras métricas que reportan el ancho de banda combinado de video y audio.
Soporte de calidad de la experiencia (QoE)
Los eventos agregados de QoE ahora se admiten a través de video-core. Habilítelos estableciendo qoeAggregate: true en la configuración:
const options = { info: { beacon: 'xxxxxxxxxx', applicationID: 'xxxxxxx', licenseKey: 'xxxxxxxxxxx', }, config: { qoeAggregate: true, qoeIntervalFactor: 2, },};
const tracker = new ShakaTracker(player, options);Los siguientes KPI se rastrean automáticamente:
KPI | Descripción |
|---|---|
| Tiempo desde la solicitud de contenido hasta el inicio del contenido (ms). |
| Máximo |
| Tasa de bits promedio ponderada en toda la sesión. |
|
|
|
|
| Tiempo total dedicado a la recarga del búfer (ms). |
| Tiempo de recarga de búfer como porcentaje del tiempo total de reproducción. |
| Tiempo total de reproducción de contenido (ms). |
| Número total de errores durante la sesión. |
Compatibilidad con Shaka Player 5.x
El rastreador ahora es compatible con Shaka Player 4.x y 5.x:
getPlayerVersion()resuelve la versión en ambas versiones principales.onError()maneja tanto los errores del reproductor Shaka (e.detail) como los errores del elemento de video HTML (e.target.error).- Archivos de ejemplo actualizados para Shaka 5.x (se eliminó
shaka.polyfill.installAll()obsoleto, se actualizó la instanciación del reproductor).
Guía de actualización
Ejecute lo siguiente para actualizar:
$npm install @newrelic/video-shaka@4.0.3Para habilitar QoE, agregue qoeAggregate: true a sus opciones de configuración como se muestra arriba.
Dependencia
Requiere @newrelic/video-core v4.1.1 o posterior para el soporte de QoE.
What's new
This release introduces three new bitrate metrics providing comprehensive quality analysis for MPEG-DASH streaming, along with important improvements to existing bitrate calculations and dash.js v4/v5 compatibility.
New features
New bitrate metrics
contentManifestBitrate: Maximum combined (video + audio) bitrate from the MPD manifest. Represents the highest possible stream variant available.contentMeasuredBitrate: Network estimated by the player's Adaptive BitRate (ABR) algorithm, based on measured download throughput. Use this metric to analyze ABR decision-making.contentDownloadBitrate: Effective download throughput calculated from video segment request data (bytesDownloaded × 8 / downloadTime). This Provides real-time network performance monitoring.
Changes
Updated bitrate calculations
contentBitrate: Returns the video-only bitrate from the active track and excludes audio. Previous versions included combined bitrate.contentRenditionBitrate: Returns the combined video and audio bandwidth of the active rendition to provide a complete quality picture.
Compatibility improvements
getDashBitrate(): Fixed v4 compatibility issue. Version check now occurs before calling v5-only APIs, preventing errors on dash.js v4.x installations.getManifestBitrate(): Introduced a smart version detection that usesgetRepresentationsByType()on dash.js v5+ and falls back togetBitrateInfoListFor()on v4.x.
Bug fixes
- Removed duplicate
getPlayhead()method definition - Removed
console.logstatement fromgetTrack()error handler
Bitrate metrics overview
Attribute | Type | Description |
|---|---|---|
| Video-only | Bitrate of the currently active video track |
| Combined | Video + audio bandwidth of active rendition |
| Maximum | Highest quality variant from MPD manifest |
| Estimated | ABR algorithm bandwidth estimate |
| Real-time | Effective download throughput |
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 |
Bug fixes
Fixed contentBitrate to accurately report stream bitrate
Issue: The contentBitrate attribute used estimatedBandwidth (the network capacity estimate) as its primary source, which didn't accurately represent the actual bitrate of the playing video stream.
Solution: Updated the bitrate calculation to prioritize streamBandwidth from Shaka Player statistics, which provides the actual content bitrate of the current video variant as defined in the manifest.
Impact: The contentBitrate attribute correctly reports the bitrate (in bits per second) of playing video stream rather than the estimated network bandwidth. This provides more accurate telemetry data for video quality monitoring and analytics.
Technical details
- Changed the priority order in
getContentBitratePlayback()method - Uses the
stats.streamBandwidthas the primary source for content bitrate - Updated the
DATAMODEL.mddocumentation to reflect the accurate definition
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
Improved contentBitrate calculation
Issue: The contentBitrate attribute reported the target bitrate from the manifest instead of the actual measured throughput during playback.
Fix: Updated the bitrate calculation method to use getAverageThroughput() from dash.js. This captures the measured average throughput, providing a more accurate, real-time representation of the content consumption rate during playback.
Implementation details
- Primary logic: Uses
player.getAverageThroughput('video')to retrieve measured throughput - Fallback logic:
- Uses manifest bitrate if throughput measurement is unavailable
- Improves accuracy of video quality monitoring and analytics
- Impact:
- More accurate bitrate reporting in New Relic video monitoring
- Better visibility into actual network conditions and video quality
- Improved debugging capabilities for playback issues
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
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.