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와의 하위 호환성을 유지하면서 세밀한 재생 옵저버빌리티를 위한 세 가지 새로운 비트레이트 메트릭, QoE(Quality of Experience) 지원, Shaka Player 5.x 호환성을 도입합니다.
새로운 비트레이트 메트릭
스트리밍 성능에 대한 더 깊은 인사이트를 제공하는 세 가지 새로운 속성을 이제 사용할 수 있습니다:
기인하다 | 원천 | 설명 |
|---|---|---|
|
| 매니페스트에 선언된 총 변형 비트레이트(비디오+오디오)입니다(표시된 비트레이트). |
|
| Shaka의 ABR 알고리즘으로 측정한 추정 네트워크 대역폭(관측된 비트레이트). |
|
| 다운로드된 모든 미디어 전반의 유효 다운로드 처리량입니다. |
또한, contentBitrate 은(는) 결합된 비디오 및 오디오 대역폭을 보고하는 다른 메트릭과 구분하기 위해 track.videoBandwidth (비디오 전용 비트레이트)을(를) 사용합니다.
체감 품질(QoE) 지원
이제 video-core을(를) 통해 QoE 집계 이벤트가 지원됩니다. 구성에서 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 플레이어 오류(e.detail)와 HTML 비디오 요소 오류(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
새로워진 사항
이번 릴리스에서는 MPEG-DASH 스트리밍에 대한 포괄적인 품질 분석을 제공하는 세 가지 새로운 비트레이트 메트릭이 도입되었으며, 기존 비트레이트 계산 및 dash.js v4/v5 호환성에 대한 중요한 개선 사항도 포함되었습니다.
새로운 기능
새로운 비트레이트 메트릭
contentManifestBitrate: MPD 매니페스트의 최대 결합(비디오+오디오) 비트레이트입니다. 사용 가능한 가장 높은 스트림 변형을 나타냅니다.contentMeasuredBitrate: 측정된 다운로드 처리량을 기반으로 플레이어의 적응형 비트레이트(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 알고리즘 대역폭 추정치 |
| 실시간 | 유효 다운로드 처리량 |
버그 수정
contentBitrate 계산 개선
문제: contentBitrate 속성이 재생 중 실제 측정된 처리량 대신 매니페스트의 타겟 비트레이트를 보고했습니다.
수정: dash.js에서 getAverageThroughput() 을(를) 사용하도록 비트레이트 계산 방법을 업데이트했습니다. 이는 측정된 평균 처리량을 캡처하여, 재생 중 콘텐츠 소비율을 더 정확하게 실시간으로 나타냅니다.
구현 세부 사항
기본 로직:
player.getAverageThroughput('video')을(를) 사용하여 측정된 처리량을 가져옵니다.폴백 로직:
- 처리량 측정을 사용할 수 없는 경우 매니페스트 비트레이트를 사용합니다.
- 비디오 품질 모니터링 및 분석 정확도를 향상시킵니다.
영향:
- 뉴렐릭 비디오 모니터링의 더 정확한 비트레이트 보고
- 실제 네트워크 상태 및 비디오 품질에 대한 향상된 가시성
- 재생 문제에 대한 향상된 디버깅 기능
버그 수정
스트림 비트레이트를 정확하게 보고하도록 contentBitrate 을(를) 수정했습니다.
문제: contentBitrate 속성은 estimatedBandwidth (네트워크 용량 추정치)을(를) 주요 소스로 사용했는데, 이는 재생 중인 비디오 스트림의 실제 비트레이트를 정확하게 나타내지 않았습니다.
해결 방법: 매니페스트에 정의된 대로 현재 비디오 변형의 실제 콘텐츠 비트레이트를 제공하는 Shaka Player 통계의 streamBandwidth 을(를) 우선적으로 적용하도록 비트레이트 계산을 업데이트했습니다.
영향: contentBitrate 속성은 예상 네트워크 대역폭이 아닌 재생 중인 비디오 스트림의 비트 전송률(초당 비트 수)을 올바르게 보고합니다. 이는 비디오 품질 모니터링 및 분석을 위한 더 정확한 텔레메트리 데이터를 제공합니다.
기술적 세부 사항
getContentBitratePlayback()메서드에서 우선순위를 변경했습니다.stats.streamBandwidth을(를) 콘텐츠 비트레이트의 주요 소스로 사용합니다.- 정확한 정의를 반영하도록
DATAMODEL.md문서를 업데이트했습니다.