• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Streaming Video & Ads for Browser release notesRSS

June 19
Media agent for Video JS v4.2.0

Highlights

  • Explicit opt-in for AWS MediaTailor, with full support for custom CDN domains.
  • New config.ad.type API to choose between CSAI and SSAI (DAI, MT) ad tracking — no more URL-based guessing for SSAI.
  • End-to-end logging through nrvideo.Log, with active detection mode logged at startup.

Features

MediaTailor custom CDN support

Replaced URL-based auto-detection with explicit opt-in.

  • Enabled the tracker via mediatailor: true (or mediatailor: { trackingUrl, adSegmentPrefix }), supporting both default AWS hostnames and custom CDN domains.
  • Added MT_DEFAULT_AD_SEGMENT_PATH (/tm/) constant for AWS-recommended CDN ad-segment path; ad segments rewritten to a custom CDN domain under /tm/ are detected automatically.
  • Updated isMediaTailorSegment() to check the default AWS segments hostname, the /tm/ path, and an optional customer-supplied adSegmentPrefix.
  • Threaded adSegmentPrefix through HLS (VHS) and DASH manifest parsing.
  • Added explicit session initialization via mediatailor: { trackingUrl } for POST /v1/session/ flows.

Ad tracking configuration

Introduced config.ad.type to control ad tracker selection.

  • Exposed AD_TRACKING constant with CSAI (flat value covering IMA / Brightcove IMA / Freewheel / generic) and SSAI sub-types (DAI, MT).
  • Required an explicit sub-type for SSAI — each platform needs its own SDK and cannot be auto-detected.
  • Mapped SSAI.MT to imply mediatailor: true.
  • Added a fallback to CSAI auto-detection with a warning when config.ad.type is unset (backward compatible for v4.1.2 users).
  • Co-located segmentPrefix and trackingUrl under config.ad.
  • Added DaiAdsTracker to static exports.

Logging improvements

  • Exposed VideojsTracker.Log as a static so UMD callers can set log level.
  • Added logging of the active ad segment detection mode at tracker startup.
  • Added logging of the matched ad segment detection path on the first ad break (once per session).
  • Added logging of which CSAI framework was auto-detected (BrightcoveIma / IMA / Freewheel / generic).
  • Replaced console.log/warn/error with nrvideo.Log across MediaTailor files.

Bug fixes

  • Fixed buffer end handling in tracker.
  • Fixed register-plugin.js silently dropping the options object and not forwarding it to the TrackerJS constructor.

Documentation

  • Updated the README and SSAI docs for custom CDN support, clarified when trackingUrl and adSegmentPrefix overrides are needed, and cleaned up sessionId references.
  • Corrected adSegmentPrefix references to config.ad.segmentPrefix in the SSAI troubleshooting docs.

Upgrade from 4.1.x

  • No breaking changes for CSAI users. If config.ad.type is unset, the tracker still auto-detects CSAI frameworks (with a one-time warning).
  • MediaTailor users must opt in explicitly. Replace any URL-pattern reliance with one of:
    • mediatailor: true (default AWS hostnames + /tm/ path)
    • mediatailor: { trackingUrl, adSegmentPrefix } (custom CDN / explicit session init)
    • config.ad.type: AD_TRACKING.SSAI.MT
  • If you previously passed adSegmentPrefix at the top level, move it to config.ad.segmentPrefix.

June 19
Agente de mídia para Video JS v4.2.0

Destaques

  • Opt-in explícito para o AWS MediaTailor, com suporte total a domínios de CDN personalizados.
  • Nova API config.ad.type para escolher entre o rastreamento de anúncios CSAI e SSAI (DAI, MT) — sem mais adivinhações baseadas em URL para SSAI.
  • Logging de ponta a ponta por meio de nrvideo.Log, com o modo de detecção ativa registrado na inicialização.

Recurso

Suporte a CDN personalizada do MediaTailor

Substituída a detecção automática baseada em URL por opt-in explícito.

  • Habilitado o rastreador via mediatailor: true (ou mediatailor: { trackingUrl, adSegmentPrefix }), com suporte tanto a nomes de host padrão da AWS quanto a domínios de CDN personalizados.
  • Adicionada a constante MT_DEFAULT_AD_SEGMENT_PATH (/tm/) para o caminho de segmento de anúncio de CDN recomendado pela AWS; os segmentos de anúncio reescritos para um domínio de CDN personalizado em /tm/ são detectados automaticamente.
  • Atualizado isMediaTailorSegment() para verificar o nome do host de segmentos padrão da AWS, o caminho /tm/ e um adSegmentPrefix opcional fornecido pelo cliente.
  • adSegmentPrefix encadeado por meio da análise de manifesto HLS (VHS) e DASH.
  • Adicionada inicialização explícita de sessão via mediatailor: { trackingUrl } para fluxos POST /v1/session/.

Configuração de rastreamento de anúncios

Introduzido config.ad.type para controlar a seleção do rastreador de anúncios.

  • Exposta a constante AD_TRACKING com CSAI (valor fixo cobrindo IMA / Brightcove IMA / Freewheel / genérico) e subtipos de SSAI (DAI, MT).
  • Exigido um subtipo explícito para SSAI — cada plataforma precisa de seu próprio SDK e não pode ser detectada automaticamente.
  • Mapeado SSAI.MT para implicar mediatailor: true.
  • Adicionado um fallback para a detecção automática de CSAI com um aviso quando config.ad.type não está definido (compatível com versões anteriores para a v4.1.2 usuário).
  • Co-localizou segmentPrefix e trackingUrl em config.ad.
  • Adicionado DaiAdsTracker às exportações estáticas.

Melhorias de logging

  • Expôs VideojsTracker.Log como estático para que os chamadores UMD possam definir o nível de log.
  • Adicionado logging do modo de detecção de segmento de anúncio ativo na inicialização do rastreador.
  • Adicionado logging do caminho de detecção de segmento de anúncio correspondente no primeiro intervalo comercial (uma vez por sessão).
  • Adicionado logging de qual framework de CSAI foi detectado automaticamente (BrightcoveIma / IMA / Freewheel / genérico).
  • Substituído console.log/warn/error por nrvideo.Log em todos os arquivos do MediaTailor.

Correções de bugs

  • Corrigido o tratamento de fim de buffer no rastreador.
  • Corrigido register-plugin.js descartando silenciosamente o objeto de opções e não o encaminhando para o construtor TrackerJS.

Documentação

  • Atualizado o README e os documentos de SSAI para suporte a CDN personalizada, esclarecido quando as substituições trackingUrl e adSegmentPrefix são necessárias e limpas as referências a sessionId.
  • Corrigidas as referências de adSegmentPrefix para config.ad.segmentPrefix nos documentos de resolução de problemas de SSAI.

Atualização a partir da 4.1.x

  • Sem alterações incompatíveis para usuários de CSAI. Se config.ad.type não estiver definido, o rastreador ainda detectará automaticamente os frameworks de CSAI (com um aviso único).

  • Os usuários do MediaTailor devem optar explicitamente. Substitua qualquer dependência de padrão de URL por um dos seguintes:

    • mediatailor: true (nomes de host padrão da AWS + caminho /tm/)
    • mediatailor: { trackingUrl, adSegmentPrefix } (CDN personalizada/inicialização explícita de sessão)
    • config.ad.type: AD_TRACKING.SSAI.MT
  • Se você passou adSegmentPrefix anteriormente no nível superior, mova-o para config.ad.segmentPrefix.

May 13
Media agent for Video JS v4.1.2

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

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 mediainfo when available.
    • Retrieves source and rendition data from the active tech component when available.
  • Updated the Listener registration and unregistration to include ad and stream manager lifecycle events.

May 13
Agente de mídia para Video JS v4.1.2

Destaques

  • Adicionada a inicialização do rastreador SSAI do MediaTailor no loadstart após a detecção do carregamento da fonte.

  • Adicionado suporte ao gerenciador de stream DAI através do evento stream-manager.

  • Relatórios de bitrate aprimorados com:

    • Taxa de bits de reprodução (AVERAGE-BANDWIDTH/BANDWIDTH)
    • Bitrate máximo do manifesto
    • Bitrate de download do segmento
    • Taxa de bits das taxas de transferência de rede

Melhorias

  • Tratamento refinado de eventos de anúncio e conteúdo para evitar eventos de conteúdo duplicados ou incorretos enquanto os anúncios estão ativos para os seguintes eventos:

    • Pausar/Retomar
    • Início/Fim da Busca
    • Início do buffer
  • Tratamento de fim de conteúdo aprimorado para caminhos de reprodução habilitados para anúncios durante cenários de IMA e Freewheel.

  • Adicionada lógica de fallback mais segura para wrappers de tecnologia (Hls.js, Shaka, contrib-hls) quando os dados de bitrate estão indisponíveis no VHS.

Notas técnicas

  • Os metadados do rastreador e os métodos de contexto de reprodução permanecem alinhados com Video.js/Brightcove integrações:

    • Recupera o título, o ID e a duração de mediainfo quando disponível.
    • Recupera dados de origem e de renderização do componente técnico ativo quando disponíveis.
  • Atualizado o registro e o cancelamento de registro do Listener para incluir eventos de ciclo de vida do gerenciador de anúncios e de stream.

April 17
Media agent for HTML5 v4.1.1

What's changed

Documentation

  • README Overhaul: Restructured and expanded README with comprehensive installation guides, usage examples, best practices, configuration options, API reference, and support channels.

Improvements

  • Attributes Validation: Updated validation logic for custom attributes to enforce correctness at the tracker level.
  • Custom Attributes Limit: Added an enforced limit on the number of custom attributes that can be sent per event, preventing unexpected payload sizes.

Installation

bash
$
npm install @newrelic/video-html5@4.1.1

Full changelog

March 9
Media agent for Shaka v4.0.3

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

contentManifestBitrate

stats.streamBandwidth

Total variant bitrate (video + audio) as declared in the manifest (Indicated Bitrate).

contentMeasuredBitrate

stats.estimatedBandwidth

Estimated network bandwidth measured by Shaka's ABR algorithm (Observed Bitrate).

contentDownloadBitrate

(bytesDownloaded × 8) / playTime

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

startupTime

Time from content request to content start (ms).

peakBitrate

Maximum contentBitrate observed during playback.

averageBitrate

Weighted average bitrate across the session.

hadStartupFailure

true if a content error occurred before content started.

hadPlaybackFailure

true if a content error occurred during playback.

totalRebufferingTime

Total time spent rebuffering (ms).

rebufferingRatio

Rebuffering time as a percentage of total playtime.

totalPlaytime

Total content playtime (ms).

numberOfErrors

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:

bash
$
npm install @newrelic/video-shaka@4.0.3

To 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.

March 9
Agente de mídia para Shaka v4.0.3

Esta versão introduz três novas métricas de taxa de bits para observabilidade granular de reprodução, suporte a QoE (Qualidade de Experiência) e compatibilidade com o Shaka Player 5.x, mantendo a retrocompatibilidade com o Shaka 4.x.

Novas métricas de taxa de bits

Três novos atributos agora estão disponíveis para fornecer insights mais profundos sobre o desempenho de streaming:

Atributo

Fonte

Descrição

contentManifestBitrate

stats.streamBandwidth

Taxa de bits total da variante (vídeo + áudio) conforme declarada no manifesto (Taxa de bits indicada).

contentMeasuredBitrate

stats.estimatedBandwidth

Largura de banda de rede estimada medida pelo algoritmo ABR do Shaka (Taxa de bits observada).

contentDownloadBitrate

(bytesDownloaded × 8) / playTime

Taxas de transferência de download efetivas em todas as mídias baixadas.

Além disso, contentBitrate usa track.videoBandwidth (taxa de bits apenas de vídeo) para diferenciá-lo de outras métricas que reportam a largura de banda combinada de vídeo e áudio.

Suporte à Qualidade de Experiência (QoE)

Eventos agregados de QoE agora são suportados via video-core. Habilite-os definindo qoeAggregate: true na configuração:

const options = {
info: {
beacon: 'xxxxxxxxxx',
applicationID: 'xxxxxxx',
licenseKey: 'xxxxxxxxxxx',
},
config: {
qoeAggregate: true,
qoeIntervalFactor: 2,
},
};
const tracker = new ShakaTracker(player, options);

Os seguintes KPIs são rastreados automaticamente:

KPI

Descrição

startupTime

Tempo da solicitação de conteúdo até o início do conteúdo (ms).

peakBitrate

Máximo de contentBitrate observado durante a reprodução.

averageBitrate

Taxa de bits média ponderada em toda a sessão.

hadStartupFailure

true se um erro de conteúdo ocorreu antes de o conteúdo iniciar.

hadPlaybackFailure

true se um erro de conteúdo ocorreu durante a reprodução.

totalRebufferingTime

Tempo total gasto em rebufferização (ms).

rebufferingRatio

Tempo de rebuffering como um percentual do tempo total de reprodução.

totalPlaytime

Tempo total de reprodução de conteúdo (ms).

numberOfErrors

Número total de erros durante a sessão.

Compatibilidade com o Shaka Player 5.x

O tracker agora é compatível com o Shaka Player 4.x e 5.x:

  • getPlayerVersion() resolve a versão em ambas as versões principais.
  • onError() trata tanto os erros do Shaka player (e.detail) quanto os erros do elemento de vídeo HTML (e.target.error).
  • Arquivos de exemplo atualizados para o Shaka 5.x (removido shaka.polyfill.installAll() descontinuado, instanciação do player atualizada).

Guia de atualização

Execute o seguinte para atualizar:

bash
$
npm install @newrelic/video-shaka@4.0.3

Para habilitar o QoE, adicione qoeAggregate: true às suas opções de configuração, conforme mostrado acima.

Dependência

Requer @newrelic/video-core v4.1.1 ou posterior para suporte a QoE.

February 18
Media agent for Dash JS v4.0.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

February 18
Media agent for Dash JS v4.1.0

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 uses getRepresentationsByType() on dash.js v5+ and falls back to getBitrateInfoListFor() on v4.x.

Bug fixes

  • Removed duplicate getPlayhead() method definition
  • Removed console.log statement from getTrack() error handler

Bitrate metrics overview

Attribute

Type

Description

contentBitrate

Video-only

Bitrate of the currently active video track

contentRenditionBitrate

Combined

Video + audio bandwidth of active rendition

contentManifestBitrate

Maximum

Highest quality variant from MPD manifest

contentMeasuredBitrate

Estimated

ABR algorithm bandwidth estimate

contentDownloadBitrate

Real-time

Effective download throughput

February 18
Media agent for Shaka v4.0.2

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.streamBandwidth as the primary source for content bitrate
  • Updated the DATAMODEL.md documentation to reflect the accurate definition

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.