Highlights
- Added MediaTailor SSAI tracker initialization on loadstart after source load detection.
- Added DAI stream manager support through the stream-manager event.
- Improved bitrate reporting with:
- Playback bitrate (
AVERAGE-BANDWIDTH/BANDWIDTH) - Manifest max bitrate
- Segment download bitrate
- Network throughput bitrate
- Playback bitrate (
Improvements
- Refined ad and content event handling to avoid duplicate or incorrect content events while ads are active for following events:
- Pause/Resume
- Seek Start/End
- Buffer Start
- Improved end-of-content handling for ad-enabled playback paths during IMA and Freewheel scenarios.
- Added safer fallback logic for tech wrappers (
Hls.js,Shaka,contrib-hls) when bitrate data is unavailable in VHS.
Technical notes
- Tracker metadata and playback context methods remain aligned with Video.js/Brightcove integrations:
- Retrieves the title, ID, and duration from
mediainfowhen available. - Retrieves source and rendition data from the active tech component when available.
- Retrieves the title, ID, and duration from
- Updated the Listener registration and unregistration to include ad and stream manager lifecycle events.
Points forts
Ajout de l'initialisation du tracker SSAI MediaTailor lors du loadstart après la détection du chargement de la source.
Ajout de la prise en charge du gestionnaire de flux DAI via l’événement stream-manager.
Amélioration des rapports de débit binaire avec :
- Débit binaire de lecture (
AVERAGE-BANDWIDTH/BANDWIDTH) - Débit binaire max. du manifeste
- Débit binaire de téléchargement du segment
- Débit binaire du réseau
- Débit binaire de lecture (
Améliorations
Amélioration de la gestion des événements de publicité et de contenu pour éviter les événements de contenu en double ou incorrects lorsque les publicités sont actives pour les événements suivants :
- Pause/reprendre
- Début/fin de recherche
- Début du tampon
Amélioration de la gestion de la fin du contenu pour les chemins de lecture avec publicités lors des scénarios IMA et Freewheel.
Ajout d'une logique de repli plus sûre pour les wrappers techniques (
Hls.js,Shaka,contrib-hls) lorsque les données de débit binaire sont indisponibles dans VHS.
Notes techniques
Les métadonnées du tracker et les méthodes de contexte de lecture restent alignées avec Video.js/Brightcove intégrations :
- Récupère le titre, l'ID et la durée à partir de
mediainfolorsqu'ils sont disponibles. - Récupère les données sources et de rendu à partir du composant technique actif lorsqu'elles sont disponibles.
- Récupère le titre, l'ID et la durée à partir de
Mise à jour de l'enregistrement et de la désinscription du Listener pour inclure les événements de cycle de vie du gestionnaire d'annonces et de flux.
This release introduces three new bitrate metrics for granular playback observability, QoE (Quality of Experience) support, and Shaka Player 5.x compatibility while maintaining backward compatibility with Shaka 4.x.
New bitrate metrics
Three new attributes are now available to provide deeper insight into streaming performance:
Attribute | Source | Description |
|---|---|---|
|
| Total variant bitrate (video + audio) as declared in the manifest (Indicated Bitrate). |
|
| Estimated network bandwidth measured by Shaka's ABR algorithm (Observed Bitrate). |
|
| Effective download throughput across all downloaded media. |
Additionally, contentBitrate uses track.videoBandwidth (video-only bitrate) to differentiate it from other metrics that report combined video and audio bandwidth.
Quality of Experience (QoE) support
QoE aggregate events are now supported via video-core. Enable them by setting qoeAggregate: true in the config:
const options = { info: { beacon: 'xxxxxxxxxx', applicationID: 'xxxxxxx', licenseKey: 'xxxxxxxxxxx', }, config: { qoeAggregate: true, qoeIntervalFactor: 2, },};
const tracker = new ShakaTracker(player, options);The following KPIs are tracked automatically:
KPI | Description |
|---|---|
| Time from content request to content start (ms). |
| Maximum |
| Weighted average bitrate across the session. |
|
|
|
|
| Total time spent rebuffering (ms). |
| Rebuffering time as a percentage of total playtime. |
| Total content playtime (ms). |
| Total number of errors during the session. |
Shaka Player 5.x compatibility
The tracker is now compatible with both Shaka Player 4.x and 5.x:
getPlayerVersion()resolves version across both major versions.onError()handles both Shaka player errors (e.detail) and HTML video element errors (e.target.error).- Sample files updated for Shaka 5.x (removed deprecated
shaka.polyfill.installAll(), updated player instantiation).
Upgrade guide
Run the following following to update:
$npm install @newrelic/video-shaka@4.0.3To enable QoE, add qoeAggregate: true to your config options as shown above.
Dependencies
Requires @newrelic/video-core v4.1.1 or later for QoE support.
Cette sortie introduit trois nouvelles métriques de débit binaire pour une observabilité granulaire de la lecture, la prise en charge de la QoE (Quality of Experience), et la compatibilité avec Shaka Player 5.x, tout en maintenant la rétrocompatibilité avec Shaka 4.x.
Nouvelles métriques de débit binaire
Trois nouveaux attributs sont désormais disponibles pour fournir des informations détaillées plus approfondies sur les performances de streaming :
Attribut | Source | Description |
|---|---|---|
|
| Débit binaire total de la variante (vidéo + audio) tel que déclaré dans le manifeste (Débit binaire indiqué). |
|
| Bande passante réseau estimée mesurée par l'algorithme ABR de Shaka (débit binaire observé). |
|
| Débit de téléchargement effectif sur tous les médias téléchargés. |
De plus, contentBitrate utilise track.videoBandwidth (débit binaire vidéo uniquement) pour le différencier des autres métriques qui indiquent la bande passante vidéo et audio combinée.
Prise en charge de la qualité d'expérience (QoE)
Les événements agrégés de QoE sont désormais pris en charge via video-core. Activez-les en définissant qoeAggregate: true dans la configuration :
const options = { info: { beacon: 'xxxxxxxxxx', applicationID: 'xxxxxxx', licenseKey: 'xxxxxxxxxxx', }, config: { qoeAggregate: true, qoeIntervalFactor: 2, },};
const tracker = new ShakaTracker(player, options);Les KPI suivants sont suivis automatiquement :
Indicateurs de performance clés | Description |
|---|---|
| Temps entre la demande de contenu et le début du contenu (ms). |
|
|
| Débit binaire moyen pondéré sur l'ensemble de la session. |
|
|
|
|
| Temps total passé en rebuffering (ms). |
| Temps de re-mise en mémoire tampon en pourcentage du temps de lecture total. |
| Temps total de lecture du contenu (ms). |
| Nombre total d'erreurs pendant la session. |
Compatibilité Shaka Player 5.x
Le tracker est désormais compatible avec Shaka Player 4.x et 5.x :
getPlayerVersion()résout la version sur les deux versions majeures.onError()gère à la fois les erreurs du lecteur Shaka (e.detail) et les erreurs de l'élément vidéo HTML (e.target.error).- Fichiers d'exemple mis à jour pour Shaka 5.x (suppression de
shaka.polyfill.installAll()obsolète, mise à jour de l'instanciation du lecteur).
Guide de mise à niveau
Exécutez ce qui suit pour mettre à jour :
$npm install @newrelic/video-shaka@4.0.3Pour activer la QoE, ajoutez qoeAggregate: true à vos options de configuration comme indiqué ci-dessus.
Dépendances
Nécessite @newrelic/video-core v4.1.1 ou une version ultérieure pour la prise en charge de la QoE.
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
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 |
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
Débogage
Amélioration du calcul de contentBitrate
Problème: l'attribut contentBitrate a signalé le débit binaire cible du manifeste au lieu du débit réel mesuré pendant la lecture.
Correction: mise à jour de la méthode de calcul du débit binaire pour utiliser getAverageThroughput() de dash.js. Cela capture le débit moyen mesuré, fournissant une représentation plus précise et en temps réel du taux de consommation du contenu pendant la lecture.
Détails de l'implémentation
Logique principale: utilise
player.getAverageThroughput('video')pour récupérer le débit mesuréLogique de repli:
- Utilise le débit binaire du manifeste si la mesure du débit est indisponible
- Améliore la précision du monitoring et des analyses de la qualité vidéo
Impact:
- Rapports de débit binaire plus précis dans le monitoring vidéo de New Relic
- Meilleure visibilité sur les conditions réelles du réseau et la qualité vidéo
- Capacités de débogage améliorées pour les problèmes de lecture
Nouveautés
Cette sortie introduit trois nouvelles métriques de débit binaire fournissant une analyse complète de la qualité pour le streaming MPEG-DASH, ainsi que d’importantes améliorations aux calculs de débit binaire existants et à la compatibilité dash.js v4/v5.
Nouvelles fonctionnalités
Nouvelles métriques de débit binaire
contentManifestBitrate: débit binaire combiné maximal (vidéo + audio) du manifeste MPD. Représente la variante de flux la plus élevée disponible.contentMeasuredBitrate: réseau estimé par l'algorithme Adaptive BitRate (ABR) du lecteur, basé sur le débit de téléchargement mesuré. Utilisez cette métrique pour analyser la prise de décision ABR.contentDownloadBitrate: débit de téléchargement effectif calculé à partir des données de requête de segment vidéo (bytesDownloaded × 8 / downloadTime). Cela fournit un monitoring de la performance réseau en temps réel.
Changements
Calculs de débit binaire mis à jour
contentBitrate: renvoie le débit binaire vidéo uniquement de la piste active et exclut l'audio. Les versions précédentes incluaient le débit binaire combiné.contentRenditionBitrate: renvoie la bande passante vidéo et audio combinée du rendu actif pour fournir une image complète de la qualité.
Améliorations de compatibilité
getDashBitrate(): correction du problème de compatibilité v4. La vérification de la version s’effectue désormais avant d’appeler les API spécifiques à la v5, empêchant les erreurs sur les installations dash.js v4.x.getManifestBitrate(): Introduction d'une détection intelligente de version qui utilisegetRepresentationsByType()sur dash.js v5+ et se rabat surgetBitrateInfoListFor()sur la v4.x.
Débogage
- Définition de la méthode
getPlayhead()en double supprimée - Instruction
console.logsupprimée du gestionnaire d'erreursgetTrack()
Vue d'ensemble des métriques de débit binaire
Attribut | Type | Description |
|---|---|---|
| Vidéo uniquement | Débit binaire de la piste vidéo actuellement active |
| Combiné | Bande passante vidéo + audio du rendu actif |
| Maximum | Variante de la plus haute qualité du manifeste MPD |
| Estimé | Estimation de la bande passante de l'algorithme ABR |
| Temps réel | Débit de téléchargement effectif |
Débogage
Correction de contentBitrate pour indiquer avec précision le débit binaire du flux
Problème : l’attribut contentBitrate utilisait estimatedBandwidth (l’estimation de la capacité du réseau) comme source principale, ce qui ne représentait pas avec précision le débit binaire réel du flux vidéo en cours de lecture.
Solution : mise à jour du calcul du débit binaire pour prioriser streamBandwidth provenant des statistiques de Shaka Player, qui fournit le débit binaire réel du contenu de la variante vidéo actuelle tel que défini dans le manifeste.
Impact : l'attribut contentBitrate indique correctement le débit binaire (en bits par seconde) du flux vidéo en cours de lecture plutôt que la bande passante réseau estimée. Cela fournit des données télémétriques plus précises pour le monitoring et l'analyse de la qualité vidéo.
Détails techniques
- Modification de l'ordre de priorité dans la méthode
getContentBitratePlayback() - Utilise le
stats.streamBandwidthcomme source principale pour le débit binaire du contenu - Mise à jour de la documentation
DATAMODEL.mdpour refléter la définition exacte