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.
ハイライト
ソースロードの検出後、loadstart 時に MediaTailor SSAI トラッカーの初期化を追加しました。
stream-manager イベントを通じて DAI ストリームマネージャーのサポートを追加しました。
以下によるビットレートレポートの改善:
- 再生ビットレート(
AVERAGE-BANDWIDTH/BANDWIDTH) - マニフェスト最大ビットレート
- セグメントダウンロードビットレート
- ネットワークスループットビットレート
- 再生ビットレート(
改良点
以下のイベントについて、広告がアクティブな間に重複または誤ったコンテンツイベントを回避するため、広告およびコンテンツイベントの処理を改善しました:
- 一時停止/再開
- シーク開始/終了
- バッファ開始
IMAおよびFreewheelのシナリオにおいて、広告が有効な再生パスでのコンテンツ終了時の処理を改善しました。
VHSでビットレートデータが利用できない場合のテックラッパー(
Hls.js、Shaka、contrib-hls)のより安全なフォールバックロジックを追加しました。
テクニカルノート
トラッカーのメタデータと再生コンテキストメソッドは、引き続きVideo.js/Brightcoveとの整合性を保っています。インテグレーション:
- 利用可能な場合、
mediainfoからタイトル、ID、および期間を取得します。 - 利用可能な場合、アクティブな技術コンポーネントからソースおよびレンディションデータを取得します。
- 利用可能な場合、
広告およびストリームマネージャーのライフサイクルイベントを含めるように、リスナーの登録および登録解除を更新しました。
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.
このリリースでは、Shaka 4.xとの下位互換性を維持しながら、詳細な再生オブザーバビリティのための3つの新しいビットレートメトリクス、QoE(Quality of Experience)サポート、およびShaka Player 5.xとの互換性を導入しています。
新しいビットレートメトリクス
ストリーミングのパフォーマンスに関するより深いインサイトを提供するため、3つの新しい属性が利用可能になりました:
属性 | ソース | 説明 |
|---|---|---|
|
| マニフェストで宣言されている合計バリアントビットレート(ビデオ+オーディオ)(Indicated Bitrate)。 |
|
| ShakaのABRアルゴリズムによって測定された推定ネットワーク帯域幅(Observed Bitrate)。 |
|
| ダウンロードされたすべてのメディアにおける実効ダウンロードスループット。 |
さらに、contentBitrateは、ビデオとオーディオの合計帯域幅を報告する他のメトリクスと区別するために、track.videoBandwidth(ビデオのみのビットレート)を使用します。
Quality of Experience(QoE)サポート
QoE集計イベントがvideo-core経由でサポートされるようになりました。コンフィグでqoeAggregate: trueを設定して有効にします:
const options = { info: { beacon: 'xxxxxxxxxx', applicationID: 'xxxxxxx', licenseKey: 'xxxxxxxxxxx', }, config: { qoeAggregate: true, qoeIntervalFactor: 2, },};
const tracker = new ShakaTracker(player, options);以下のKPIは自動的に追跡されます:
KPI | 説明 |
|---|---|
| コンテンツリクエストからコンテンツ開始までの時間(ms)。 |
| 再生中に観測された最大 |
| セッション全体の加重平均ビットレート。 |
|
|
|
|
| リバッファリングに費やした合計時間(ms)。 |
| 総再生時間に占めるリバッファリング時間の割合。 |
| コンテンツの合計再生時間(ms)。 |
| セッション中のエラーの総数。 |
Shaka Player 5.x との互換性
トラッカーは、Shaka Player 4.xおよび5.xの両方に対応するようになりました:
getPlayerVersion()両方のメジャーバージョンにわたってバージョンを解決します。onError()Shaka playerエラー(e.detail)とHTML video要素エラー(e.target.error)の両方を処理します。- Shaka 5.x 用にサンプルファイルを更新しました(非推奨の
shaka.polyfill.installAll()を削除し、プレーヤーのインスタンス化を更新しました)。
アップグレードガイド
更新するには、以下を実行します:
$npm install @newrelic/video-shaka@4.0.3QoEを有効にするには、上記のように設定オプションにqoeAggregate: trueを追加します。
依存関係
QoEサポートには、@newrelic/video-core v4.1.1以降が必要です。
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
バグ修正
contentBitrate計算の改善
問題: contentBitrate属性は、再生中に実際に測定されたスループットではなく、マニフェストからのターゲットビットレートを報告していました。
修正: dash.jsのgetAverageThroughput()を使用するようにビットレート計算方法を更新しました。これにより、測定された平均スループットがキャプチャされ、再生中のコンテンツ消費率のより正確でリアルタイムな表現が提供されます。
実装の詳細
プライマリロジック:
player.getAverageThroughput('video')を使用して測定されたスループットを取得しますフォールバックロジック:
- スループット測定が利用できない場合は、マニフェストのビットレートを使用します。
- ビデオ品質の監視と分析の精度を向上させます。
影響:
- New Relicビデオ監視におけるより正確なビットレートレポート
- 実際のネットワーク状況とビデオ品質の可視性の向上
- 再生に関する問題のデバッグ機能の改善
バグ修正
ストリームビットレートを正確に報告するようにcontentBitrateを修正しました
問題:contentBitrate属性はestimatedBandwidth(ネットワーク容量の推定値)を主要なソースとして使用していましたが、これは再生中のビデオストリームの実際のビットレートを正確に表していませんでした。
解決策: Shaka Playerの統計情報から、マニフェストで定義されている現在のビデオバリアントの実際のコンテンツビットレートを提供するstreamBandwidthを優先するようにビットレートの計算を更新しました。
影響: contentBitrate属性は、推定ネットワーク帯域幅ではなく、再生中のビデオストリームのビットレート(ビット/秒)を正しく報告します。これにより、ビデオ品質の監視および分析のための、より正確なテレメトリーデータが提供されます。
技術的詳細
getContentBitratePlayback()メソッドの優先順位を変更しました- コンテンツビットレートの主要なソースとして
stats.streamBandwidthを使用します。 - 正確な定義を反映するように
DATAMODEL.mdのドキュメントを更新しました。
新機能
このリリースでは、MPEG-DASHストリーミングの包括的な品質分析を提供する3つの新しいビットレートメトリクスが導入されるとともに、既存のビットレート計算およびdash.js v4/v5互換性に対する重要な改善が行われています。
新機能
新しいビットレートメトリクス
contentManifestBitrate: MPDマニフェストからの最大合計(ビデオ+オーディオ)ビットレート。利用可能な最高のストリームバリアントを表します。contentMeasuredBitrate: 測定されたダウンロードスループットに基づいて、プレーヤーのAdaptive BitRate(ABR)アルゴリズムによって推定されたネットワーク。このメトリクスを使用して、ABRの意思決定を分析します。contentDownloadBitrate: ビデオセグメントのリクエストデータ(bytesDownloaded × 8 / downloadTime)から計算された有効なダウンロードスループット。これはリアルタイムのネットワークパフォーマンス監視を提供します。
変更点
更新されたビットレートの計算
contentBitrate: アクティブなトラックからビデオのみのビットレートを返し、オーディオを除外します。以前のバージョンには結合ビットレートが含まれていました。contentRenditionBitrate: 完全な品質の全体像を提供するために、アクティブなレンディションのビデオおよびオーディオ帯域幅の合計を返します。
互換性の向上
getDashBitrate(): v4の互換性の問題を修正しました。v5専用APIを呼び出す前にバージョンチェックが行われるようになり、dash.js v4.xのインストレーションでのエラーを防ぎます。getManifestBitrate(): dash.js v5+ではgetRepresentationsByType()を使用し、v4.xではgetBitrateInfoListFor()にフォールバックするスマートなバージョン検出を導入しました。
バグ修正
- 重複した
getPlayhead()メソッド定義を削除しました getTrack()エラーハンドラーからconsole.logステートメントを削除しました
ビットレートメトリクスの概要
属性 | タイプ | 説明 |
|---|---|---|
| ビデオのみ | 現在アクティブなビデオトラックのビットレート |
| 結合 | アクティブなレンディションのビデオ+オーディオ帯域幅 |
| 最大 | MPDマニフェストの最高品質バリアント |
| 推定 | ABRアルゴリズムの帯域幅推定 |
| リアルタイム | 実効ダウンロードスループット |