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 |
|---|---|---|
|
| Taxa de bits total da variante (vídeo + áudio) conforme declarada no manifesto (Taxa de bits indicada). |
|
| Largura de banda de rede estimada medida pelo algoritmo ABR do Shaka (Taxa de bits observada). |
|
| 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 |
|---|---|
| Tempo da solicitação de conteúdo até o início do conteúdo (ms). |
| Máximo de |
| Taxa de bits média ponderada em toda a sessão. |
|
|
|
|
| Tempo total gasto em rebufferização (ms). |
| Tempo de rebuffering como um percentual do tempo total de reprodução. |
| Tempo total de reprodução de conteúdo (ms). |
| 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:
$npm install @newrelic/video-shaka@4.0.3Para 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.
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 |
Novidades
Esta versão introduz três novas métricas de taxa de bits que fornecem uma análise de qualidade abrangente para streaming MPEG-DASH, além de melhorias importantes nos cálculos de taxa de bits existentes e na compatibilidade com dash.js v4/v5.
Novo recurso
Novas métricas de taxa de bits
contentManifestBitrate: taxa de bits máxima combinada (vídeo + áudio) do manifesto MPD. Representa a variante de stream mais alta possível disponível.contentMeasuredBitrate: rede estimada pelo algoritmo Adaptive BitRate (ABR) do player, com base nas taxas de transferência de download medidas. Use esta métrica para analisar a tomada de decisão do ABR.contentDownloadBitrate: Taxas de transferência de download efetivas calculadas a partir dos dados de solicitação de segmento de vídeo (bytesDownloaded × 8 / downloadTime). Isso fornece monitoramento de desempenho de rede em tempo real.
Alterações
Cálculos de taxa de bits atualizados
contentBitrate: Retorna a taxa de bits apenas de vídeo da faixa ativa e exclui o áudio. Versões anteriores incluíam a taxa de bits combinada.contentRenditionBitrate: Retorna a largura de banda de vídeo e áudio combinada da representação ativa para fornecer uma visão completa da qualidade.
Melhorias de compatibilidade
getDashBitrate(): Corrigido problema de compatibilidade com a v4. A verificação de versão agora ocorre antes de chamar APIs exclusivas da v5, evitando erros em instalações do dash.js v4.x.getManifestBitrate(): Introduzida uma detecção inteligente de versão que usagetRepresentationsByType()no dash.js v5+ e faz fallback paragetBitrateInfoListFor()no v4.x.
Correções de bugs
- Removida definição duplicada do método
getPlayhead() - Instrução
console.logremovida do manipulador de errosgetTrack()
Visão geral das métricas de bitrate
Atributo | Tipo | Descrição |
|---|---|---|
| Apenas vídeo | Taxa de bits da faixa de vídeo atualmente ativa |
| Combinado | Largura de banda de vídeo + áudio da renderização ativa |
| Máximo | Variante de maior qualidade do manifesto MPD |
| Estimado | Estimativa de largura de banda do algoritmo ABR |
| Tempo real | Taxa de transferência de download efetiva |
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
Correções de bugs
Corrigido contentBitrate para relatar com precisão a taxa de bits do stream
Problema: o atributo contentBitrate usava estimatedBandwidth (a estimativa de capacidade da rede) como sua fonte principal, o que não representava com precisão a taxa de bits real do stream de vídeo em reprodução.
Solução: atualizado o cálculo da taxa de bits para priorizar streamBandwidth das estatísticas do Shaka Player, que fornece a taxa de bits real do conteúdo da variante de vídeo atual conforme definido no manifesto.
Impacto: o atributo contentBitrate reporta corretamente o bitrate (em bits por segundo) do stream de vídeo em reprodução, em vez da largura de banda de rede estimada. Isso fornece dados de telemetria mais precisos para monitoramento da qualidade de vídeo e análises.
Detalhes técnicos
- Alterada a ordem de prioridade no método
getContentBitratePlayback() - Usa o
stats.streamBandwidthcomo fonte principal para a taxa de bits do conteúdo - Atualizada a documentação do
DATAMODEL.mdpara refletir a definição exata
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
Correções de bugs
Cálculo aprimorado do contentBitrate
Problema: o atributo contentBitrate relatou a taxa de bits de destino do manifesto em vez das taxas de transferência reais medidas durante a reprodução.
Correção: atualizado o método de cálculo de taxa de bits para usar getAverageThroughput() do dash.js. Isso captura a taxa de transferência média medida, fornecendo uma representação mais precisa e em tempo real da taxa de consumo de conteúdo durante a reprodução.
Detalhes da implementação
Lógica principal: usa
player.getAverageThroughput('video')para recuperar as taxas de transferência medidasLógica de fallback:
- Usa a taxa de bits do manifesto se a medição de taxas de transferência estiver indisponível.
- Melhora a precisão do monitoramento e análise da qualidade de vídeo
Impacto:
- Relatórios de taxa de bits mais precisos no monitoramento de vídeo do New Relic
- Melhor visibilidade das condições reais da rede e da qualidade de vídeo
- Recursos de depuração aprimorados para problemas de reprodução
Bug fixes
- Removed github token (f5f9ade)
Correções de bugs
- Token do GitHub removido (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.