Saltar para o conteúdo

Transmissão dinâmica adaptável por HTTP

Origem: Wikipédia, a enciclopédia livre.
Dynamic Adaptive Streaming over HTTP
Extensão do arquivo .mpd
MIME application/dash xml[1]
Desenvolvido por MPEG
Lançamento Abril de 2012
Última versão (Agosto de 2022)
Padronização ISO/IEC 23009-1:2022

O Streaming Adaptativo Dinâmico sobre HTTP (Dynamic Adaptive Streaming over HTTP, DASH), também conhecido como MPEG-DASH, é uma técnica de streaming de taxa de bits adaptável que permite streaming de alta qualidade de conteúdo de mídia pela Internet fornecido por servidores web HTTP convencionais. Semelhante à solução HTTP Live Streaming (HLS) da Apple, o MPEG-DASH funciona dividindo o conteúdo em uma sequência de pequenos segmentos, que são servidos por HTTP. Um sistema de streaming baseado em servidor web HTTP antigo chamado SProxy foi desenvolvido e implantado nos Laboratórios Hewlett Packard em 2006.[2][3] Ele mostrou como usar solicitações de intervalo HTTP para dividir o conteúdo em pequenos segmentos. O SProxy mostra a eficácia do streaming baseado em segmentos, obtendo melhor penetração na Internet devido à ampla implantação de firewalls e reduzindo a transmissão de tráfego desnecessária se um usuário decidir encerrar a sessão de streaming antes de chegar ao fim. Cada segmento contém um curto intervalo de tempo de reprodução de conteúdo que pode ter muitas horas de duração, como um filme ou a transmissão ao vivo de um evento esportivo. O conteúdo é disponibilizado em uma variedade de taxas de bits diferentes, ou seja, segmentos alternativos codificados em diferentes taxas de bits cobrindo intervalos curtos alinhados de tempo de reprodução. Enquanto o conteúdo está sendo reproduzido por um cliente MPEG-DASH, o cliente usa um algoritmo de adaptação de taxa de bits (ABR)[4] para selecionar automaticamente o segmento com a maior taxa de bits possível que pode ser baixado a tempo para reprodução sem causar paradas ou eventos de re-buffering na reprodução.[5] O cliente de referência MPEG-DASH atual dash.js[6] oferece algoritmos de adaptação de taxa de bits baseados em buffer (BOLA[7]) e híbridos (DYNAMIC[5]). Dessa forma, um cliente MPEG-DASH pode se adaptar perfeitamente às mudanças nas condições da rede e fornecer reprodução de alta qualidade com poucas paradas ou eventos de re-buffering.

MPEG-DASH é a primeira solução de streaming de taxa de bits adaptável baseada em HTTP que é um padrão internacional.[8] O MPEG-DASH não deve ser confundido com um protocolo de transporte — o protocolo de transporte que o MPEG-DASH usa depende de qual versão do HTTP é usada: TCP sobre HTTP e HTTP/2, ou UDP sobre HTTP/3. O MPEG-DASH usa a infraestrutura existente de servidor web HTTP que é usada para entrega de essencialmente todo o conteúdo da World Wide Web. Ele permite que dispositivos como televisores conectados à Internet, decodificadores de TV, computadores de mesa, smartphones, tablets, etc. recebam conteúdo multimídia (vídeo, TV, rádio, etc.) transmitido pela Internet, lidando com condições variáveis de recebimento da Internet. Padronizar uma solução de streaming adaptável tem como objetivo fornecer confiança ao mercado de que a solução pode ser adotada para implantação universal, em comparação a soluções semelhantes, mas mais proprietárias, como o Smooth Streaming da Microsoft ou o HDS da Adobe. Ao contrário do HDS, ou Smooth Streaming, o DASH é independente de codec, o que significa que pode usar conteúdo codificado com qualquer formato de codificação, como H.265, H.264, VP9, etc.[9]

Padronização

[editar | editar código-fonte]

A tecnologia MPEG-DASH foi desenvolvida sob MPEG. O trabalho no DASH começou em 2010; tornou-se um Projeto de Norma Internacional em janeiro de 2011 e uma Norma Internacional em novembro de 2011.[8][10] O padrão MPEG-DASH foi publicado em abril de 2012, mas foi revisado em 2019 e novamente em 2022 como [1].

DASH é uma tecnologia relacionada ao Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) e Microsoft Smooth Streaming. O DASH é baseado no Adaptive HTTP streaming (AHS) no 3GPP Release 9 e no HTTP Adaptive Streaming (HAS) no Open IPTV Forum Release 2.[11][12] Como parte de sua colaboração com o MPEG, o 3GPP Release 10 adotou o DASH (com codecs e modos de operação específicos) para uso em redes sem fio.[11]

O DASH Industry Forum (DASH-IF)[13] promove e catalisa ainda mais a adoção do MPEG-DASH e ajuda na transição de uma especificação para um negócio real. Ela é composta por grandes empresas de streaming e mídia, incluindo Microsoft, Netflix, Google, Ericsson, Samsung, Adobe, etc., e cria diretrizes sobre o uso do DASH para diferentes casos de uso na prática.

O MPEG-DASH está integrado em outros padrões, por exemplo, o MPEG-DASH é suportado no HbbTV (a partir da versão 1.5).[14]

DASH é uma tecnologia de streaming de taxa de bits adaptável onde um arquivo multimídia é particionado em um ou mais segmentos e entregue a um cliente usando HTTP.[15] Uma descrição de apresentação de mídia (MPD) descreve informações de segmento (tempo, URL, características de mídia como resolução de vídeo e taxas de bits) e pode ser organizada de diferentes maneiras, como SegmentList, SegmentTemplate, SegmentBase e SegmentTimeline, dependendo do caso de uso. Os segmentos podem conter quaisquer dados de mídia, no entanto, a especificação fornece orientações e formatos específicos para uso com dois tipos de contêineres: formato de arquivo de mídia base ISO (por exemplo, formato de arquivo MP4) ou fluxo de transporte MPEG-2.

O DASH é independente de codecs de áudio/vídeo. Uma ou mais representações (ou seja, versões em diferentes resoluções ou taxas de bits) de arquivos multimídia estão normalmente disponíveis, e a seleção pode ser feita com base nas condições da rede, capacidades do dispositivo e preferências do usuário, permitindo streaming de taxa de bits adaptável[16] e justiça QoE (Qualidade da Experiência).[17] O padrão DASH não especifica a lógica de streaming de taxa de bits adaptável (ABR).[18] O DASH também é independente do protocolo da camada de aplicação subjacente. Assim, o DASH pode ser usado com qualquer protocolo, por exemplo, DASH sobre CCN.[19]

Em 27 de julho de 2015, a MPEG LA anunciou um apelo à apresentação de patentes relacionadas com o MPEG-DASH, a fim de criar um único conjunto de patentes para esta tecnologia.[20] A MPEG LA anunciou sua licença de portfólio de patentes MPEG-DASH. A MPEG-LA afirma que as patentes incluídas são essenciais para o padrão MPEG Dynamic Adaptive Streaming over HTTP.[21]

Implementações

[editar | editar código-fonte]

O MPEG-DASH está disponível nativamente no Android através do ExoPlayer,[22] nas Smart TVs Samsung 2012 , LG Smart TV 2012 , Sony TV 2012 , Philips NetTV 4.1 , Panasonic Viera 2013 e Chromecast.[23] O YouTube e a Netflix já oferecem suporte a MPEG-DASH, e diferentes reprodutores de MPEG-DASH estão disponíveis.[24]

Embora o MPEG-DASH não seja diretamente suportado no HTML5, existem implementações JavaScript do MPEG-DASH que permitem o uso do MPEG-DASH em navegadores da web usando as extensões de fonte de mídia HTML5 (MSE).[25] Existem também implementações de JavaScript, como o player bitdash[26] que suporta DRM para MPEG-DASH usando as extensões de mídia criptografadas HTML5.[27] Em combinação com WebGL, o streaming de taxa de bits adaptável baseado em HTML5 do MPEG-DASH também permite o streaming eficiente de vídeo 360° para casos de uso ao vivo e sob demanda.[28]

Clientes e bibliotecas

[editar | editar código-fonte]
  • Shaka Player é o reprodutor de vídeo DASH HTML5 de código aberto do Google para conexões de baixa largura de banda.[29][30][31][32][33]
  • O VLC media player 3.0 lançou um novo plugin cliente para MP4/MPEG e transmissões ao vivo.[34][35][36]
  • A estrutura multimídia FOSS multiplataforma GStreamer oferece suporte a MPEG-DASH e WebM DASH desde pelo menos a versão 1.4.[37]
  • A biblioteca de código aberto libdash[38] é independente de plataforma e roda em plataformas móveis como Android, iOS, Windows Phone.
  • bitmovin fornece o player bitdash MPEG-DASH para HTML5 e Flash.[39]
  • VideoJS é um reprodutor de vídeo HTML5 de código aberto, compatível com HLS, DASH, WebM e MP4 progressivo para streaming ao vivo e VOD.[29][30]
  • Clappr é um reprodutor de vídeo HTML5 de código aberto, usa HTMLVideoElement, suporta DASH, HLS, progressivo, inserção de anúncios, sobreposições dinâmicas, imagem em imagem[30][29]

Observe que nenhum suporte específico é necessário do servidor para conteúdo DASH, com exceção de transmissão ao vivo.

Geradores de conteúdo

[editar | editar código-fonte]
  • O ITEC oferece um serviço de validação para arquivos MPEG-DASH Media Presentation Description (MPD)[34]
  • Vários conjuntos de dados DASH[56] são oferecidos pelo Instituto de Tecnologia da Informação (ITEC) da Universidade Alpen-Adria de Klagenfurt,[51][57] o grupo GPAC da Telecom ParisTech[52] e Digital TV Labs.[58]
  • A BBC tem fluxos de teste DASH, incluindo DASH sobre HTTP/2.[59]
  • O Widevine DRM suporta DASH e extensões de mídia criptografadas.[60]
  • A Mividi fornece uma ferramenta de software para analisar e monitorar fluxos MPEG-DASH ao vivo.[61]

Players e servidores suportados

[editar | editar código-fonte]
Esta lista está incompleta. Você pode ajudar a Wikipédia expandindo-a.

O Windows 10 costumava ter suporte nativo para streaming DASH no EdgeHTML, um mecanismo de navegador proprietário que era usado no Microsoft Edge (agora conhecido como Edge Legacy) antes da transição para o mecanismo de navegador Blink baseado no Chromium. O Edge Legacy foi incluído no Windows 10 até a versão 2004. Ele foi substituído pelo Edge Chromium na versão 20H2.

O suporte ao DASH em outros navegadores e sistemas operacionais está disponível por meio do Media Source Extensions.

Produto Tipo de produto Plataforma Transmissão ao vivo Sem DRM A partir da versão Editor
Microsoft Edge Web browser Windows 10 Suporte nativo no Edge Legacy.

Suporte via Media Source Extensions no Edge Chromium.

Não Suportado nativamente no mecanismo EdgeHTML do Edge Legacy da versão 12 a 18.[62]

Não há suporte nativo no Edge Chromium da versão 79 até o presente.[63]

Microsoft
VLC media player Media player Windows, macOS, Linux, Android, iOS, Windows Phone Sim Sim v3.0 VideoLAN
Media Player Classic - Home Cinema (MPC-HC)

Media Player Classic - Black Edition (MPC-BE)

Media player Windows Sim Sim v2.0.0 (MPC-HC)
v1.5.0 (MPC-BE)[64]

O suporte para reprodução de fluxos DASH pode ser instável.

MPC-HC Community Forum, Alexander Vodiannikov
MX Player Media player Android Sim Não v1.9.18
O suporte para reprodução de fluxos DASH está instável no momento.
J2 Interactive
NexPlayer SDK HTML5 (MSE Browsers), Android (mobile, TV, STB), iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOS Sim Não NexStreaming
Dash.js SDK HTML5 (MSE Browsers) Sim Não Dash Industry Forum
Shaka Player SDK HTML5 (MSE Browsers) Sim Não Google
Rx-Player SDK HTML5 (MSE Browsers) Sim Não Canal
bitdash SDK HTML5 (MSE Browsers), Android, LG TVs, Samsung TVs, Xbox One, Universal Windows Platform Sim Não Bitmovin
PRESTOplay SDK HTML5 (MSE Browsers), Android, iOS, Windows, Mac Sim Não castLabs
THEOplayer SDK HTML5 (MSE Browsers), Android (mobile, TV, STB), iOS, Chromecast, Windows, Mac, Linux, Tizen, WebOS Sim Não THEO Technologies NV
Viblast Player SDK HTML5 (MSE Browsers), Android, iOS Sim Não Viblast Team
Radiant Media Player SDK HTML5 (MSE Browsers), Android, iOS, Windows, Mac, Linux Sim Não Radiant Media Player
Videogular SDK HTML5 (MSE Browsers) Sim Não
Fluid Player SDK HTML5 (MSE Browsers) Sim Não ExoClick
GStreamer Multimedia framework Sim Não 1.4 GStreamer Team
Libdash Multimedia framework Sim Não bitmovin, ITEC Team
GPAC Multimedia framework Sim Não Telecom ParisTech inc.

Titulares de patentes

[editar | editar código-fonte]
Organização Patentes[65]
Maxell 15
The Netherlands Organisation for Applied Scientific Research (TNO) 8
Nippon Telegraph and Telephone (NTT) 5
Fraunhofer 4
Columbia University 4
Amotech Co., Ltd. 2
AVerMedia Technologies, Inc. 2
Cable Television Laboratories, Inc. 2
Helios Streaming, LLC 2
JVC Kenwood 1
Lough Corrib Intellectual Property Limited 1

Referências

  1. «DASH Adaptive Streaming for HTML 5 Video». Consultado em 21 de novembro de 2024 
  2. Chen, Songqing; Shen, Bo; Tan, Wai-tian; Wee, Susie; Zhang, Xiaodong (9 de julho de 2006). «A Case for Internet Streaming via Web Servers». 2006 IEEE International Conference on Multimedia and Expo. [S.l.: s.n.] pp. 2145–2148. ISBN 1-4244-0367-7. ISSN 1945-7871. doi:10.1109/ICME.2006.262660 
  3. Chen, Songqing; Shen, Bo; Wee, Susie; Zhang, Xiaodong (23 de julho de 2007). «SProxy: A Caching Infrastructure to Support Internet Streaming». IEEE Transactions on Multimedia. 9 (5): 1062–1072. CiteSeerX 10.1.1.74.4838Acessível livremente. ISSN 1520-9210. doi:10.1109/TMM.2007.898943 
  4. «ABR Logic». GitHub 
  5. a b «From Theory to Practice: Improving Bitrate Adaptation in the DASH Reference Player, by Spiteri, Sitaraman and Sparacio, ACM Multimedia Systems Conference, June 2018.» (PDF) 
  6. «dash.js JavaScript Reference Client Landing Page». reference.dashif.org. Consultado em 28 de agosto de 2020 
  7. Spiteri, Kevin; Urgaonkar, Rahul; Sitaraman, Ramesh K. (2020). «BOLA: Near-optimal bitrate adaptation for online videos.». IEEE/ACM Transactions on Networking. 28 (4): 1698–1711. arXiv:1601.06748Acessível livremente. doi:10.1109/TNET.2020.2996964 
  8. a b «MPEG ratifies its draft standard for DASH». MPEG. 2 de dezembro de 2011. Consultado em 20 de novembro de 2024. Arquivado do original em 20 de agosto de 2012 
  9. «MPEG-DASH vs. Apple HLS vs. Microsoft Smooth Streaming vs. Adobe HDS». 29 de março de 2015. Consultado em 20 de novembro de 2024 
  10. «ISO/IEC 23009-1:2012». ISO 
  11. a b ETSI 3GPP 3GPP TS 26.247; Transparent end-to-end packet-switched streaming service (PSS); Progressive Download and Dynamic Adaptive Streaming over HTTP (3GP-DASH)
  12. Open IPTV Forum Solution Specification Volume 2a – HTTP Adaptive Streaming V2.1 Arquivado em 2011-10-09 no Wayback Machine
  13. «DASH Industry Forum | Catalyzing the adoption of MPEG-DASH». dashif.org 
  14. «HbbTV Specification 1.5» (PDF). Arquivado do original (PDF) em 3 de julho de 2014 
  15. «Technologies | MPEG». mpeg.chiariglione.org. Cópia arquivada em 28 de abril de 2012 
  16. 3GPP Dynamic Adaptive Streaming over HTTP – Standards and Design Principles Arquivado em 2016-08-05 no Wayback Machine by T. Stockhammer
  17. «Towards Network-wide QoE Fairness using OpenFlow-assisted Adaptive Video Streaming». scholar.google.com 
  18. Bentaleb, Abdelhak; Taani, Bayan; Begen, Ali C.; Timmerer, Christian; Zimmermann, Roger (21 de janeiro de 2019). «A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP». IEEE Communications Surveys & Tutorials. 21 (1): 562–585. doi:10.1109/COMST.2018.2862938 
  19. «DASH over ICN/CCN | ITEC – Dynamic Adaptive Streaming over HTTP» 
  20. «MPEG LA Announces Call for Patents to Organize Joint License for MPEG-DASH» (PDF). Consultado em 20 de novembro de 2024. Arquivado do original (PDF) em 7 de agosto de 2015 
  21. «DASH Patent Portfolio License Briefing*» (PDF). MPEG LA. 4 de março de 2019. Consultado em 20 de novembro de 2024. Cópia arquivada (PDF) em 25 de novembro de 2018 
  22. «ExoPlayer». Android Developers (em inglês). Consultado em 20 de novembro de 2024 
  23. Device Compatibility
  24. The Status of MPEG-DASH today, and why Youtube & Netflix use it in HTML5
  25. HTML5 Media Source Extensions
  26. «Video Player SDKs for flawless viewing | HTML5 Player». bitmovin.com. Arquivado do original em 3 de julho de 2015 
  27. «Encrypted Media Extensions». w3c.github.io 
  28. «This demo shows the Bitmovin Player displaying a 360° video with VR». bitmovin.com 
  29. a b c Vijayanagar, Krishna Rao (3 de junho de 2021). «Top 13 HTML5 Video Players for the Web Reviewed [2021]». OTTVerse. Consultado em 20 de novembro de 2024 
  30. a b c «clappr dash.js hls.js rx-player shaka-player videojs-contrib-hls». npm trends.com (em inglês). Consultado em 20 de novembro de 2024 
  31. Zhang, Bo; Teixeira, Thiago; Reznik, Yuriy (24 de junho de 2021). «Performance of Low-Latency HTTP-based Streaming Players». Proceedings of the 12th ACM Multimedia Systems Conference. [S.l.: s.n.] pp. 356–362. ISBN 9781450384346. doi:10.1145/3458305.3478442 
  32. Cimpanu, Catalin (24 de agosto de 2015). «Meet Shaka Player, Google's HTML5 Video Player for Low Bandwidth Conditions». Softpedia. Consultado em 20 de novembro de 2024 
  33. «Ultimate HTML5 Video-Player Showdown: 12 Players Compared». Cloudinary (em inglês). 28 de junho de 2020. Consultado em 20 de novembro de 2024 
  34. a b c DASH at ITEC, VLC Plugin, DASHEncoder and Dataset by C. Mueller, S. Lederer, C. Timmerer
  35. «C. Müller and C. Timmerer, "A VLC Media Player Plugin enabling Dynamic Adaptive Streaming over HTTP", In Proceedings of the ACM Multimedia 2011, Scottsdale, Arizona, November 28, 2011.» (PDF) 
  36. «VLC 3.0 features». Consultado em 20 de novembro de 2024. Arquivado do original em 30 de julho de 2020 
  37. «HTTP Adaptive Streaming with GStreamer – coaxion.net – slomo's blog» 
  38. libdash: Open-source DASH client library by bitmovin Gmbh
  39. «Video Player SDKs for flawless viewing | HTML5 Player». bitmovin.com 
  40. «Stream MPEG-DASH over HTTP with Wowza Streaming Engine». Wowza Media Systems 
  41. «DASH Streaming and Playlists». Consultado em 20 de novembro de 2024. Arquivado do original em 31 de agosto de 2017 
  42. «MPEG-DASH streaming via Nimble Streamer - Softvelum». wmspanel.com 
  43. «Netview and Unified Streaming streaming DASH». Streaming Media Magazine 
  44. «USP Factsheet». Consultado em 20 de novembro de 2024. Arquivado do original em 21 de abril de 2015 
  45. Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows Arquivado em 2015-04-02 no Wayback Machine
  46. «Amazon Elastic Transcoder Now Supports MPEG-DASH». Amazon Web Services, Inc. Consultado em 20 de novembro de 2024. Cópia arquivada em 26 de agosto de 2016 
  47. «MPEG-DASH and streaming reference and resources». 3 de março de 2016. Consultado em 20 de novembro de 2024 
  48. «bitcodin.com Supported Formats». Consultado em 20 de novembro de 2024. Arquivado do original em 28 de março de 2016 
  49. «Deliver HLS and MPEG-DASH with the Cloudinary Video Player | Cloudinary». cloudinary.com 
  50. «Engineering Broadcast: FM and Online». Insanity Radio Tech. 26 de julho de 2017. Consultado em 20 de novembro de 2024 
  51. a b «S. Lederer, C. Mueller and C. Timmerer, "Dynamic Adaptive Streaming over HTTP Dataset", In Proceedings of the ACM Multimedia Systems Conference 2012, Chapel Hill, North Carolina, February 22-24, 2012.» (PDF) 
  52. a b «Fragmentation, segmentation, splitting and interleaving · gpac/gpac Wiki». GitHub 
  53. «DashCast | GPAC». Consultado em 20 de novembro de 2024. Cópia arquivada em 1 de outubro de 2018 
  54. «Media Goom. Essential Adaptive Web Streaming with MPEG-DASH and HLS». Arquivado do original em 18 de janeiro de 2017 
  55. «Getting Started - Bento4». www.bento4.com 
  56. MPEG DASH Dataset Overview Arquivado em 2016-03-04 no Wayback Machine
  57. «Distributed DASH Datset | ITEC – Dynamic Adaptive Streaming over HTTP» 
  58. «MPEG DASH Test Suite». Consultado em 20 de novembro de 2024. Arquivado do original em 7 de março de 2014 
  59. «MPEG DASH Test Streams». BBC R&D. 9 de setembro de 2013 
  60. «The Complete Guide to Widevine». encoding.com. Consultado em 20 de novembro de 2024. Arquivado do original em 29 de dezembro de 2021 
  61. «MPEG-DASH Analysis and Monitoring Solution». mividi.com. Consultado em 20 de novembro de 2024 
  62. «Simplified Adaptive Video Streaming: Announcing support for HLS and DASH in Windows 10». learn.microsoft.com. 29 de janeiro de 2015 
  63. «Dynamic Adaptive Streaming over HTTP (MPEG-DASH) | Can I use... Support tables for HTML5, CSS3, etc». caniuse.com 
  64. «MPC-BE Version History - VideoHelp» 
  65. «DASH Patent List» (PDF). MPEG LA. Consultado em 21 de novembro de 2024. Cópia arquivada (PDF) em 10 de julho de 2019 

Ligações externas

[editar | editar código-fonte]