Dynamic Adaptive Streaming over HTTP Redes I UFRJ - 2024.1

MPEG-DASH


Índice


Introdução

O live streaming e o compartilhamento de vídeo, tem se tornado ultimamente cada vez mais popular. Proporcionando novas regras e oportunidades de negócio. Podemos hoje assistir vídeos em dispositivos móveis, direto em televisões inteligentes ou em um computador. Podemos dizer que um dos principais pivôs dessa mudança é o protocolo MPEG-DASH (Dynamic Adaptive Streaming over HTTP). Consiste em uma técnica adotada internacionalmente de streaming adaptativo. O MPEG-DASH utiliza somente servidores HTTP convencionais que aumentam o alcance do protocolo e fornece um rico conjunto de recursos para suporte a serviços sob demanda, aumentando assim a eficiência de transmissões ao vivo e de distribuição de conteúdo multimidia com uso das CDNs (Content Delivery Networks).

Histórico

O MPEG-DASH (Dynamic Adaptive Streaming over HTTP) é um protocolo open-source de streaming. O trabalho no DASH começou em 2010, tornou-se um rascunho de padrão internacional em janeiro de 2011 e um padrão internacional em novembro de 2011, foi revisado em 2019 e novamente em 2022. O protocolo foi desenvolvido pela MPEG (Moving Picture Experts Group), grupo responsável pela criação de padrões populares de compressão de vídeo como MPEG-4 e H.264/AVC. O formato surgiu devido à popularização do compartilhamento de vídeos online e a consequente necessidade de adaptar a experiência de visualização para redes precárias e a transmissões ao vivo. Apesar de já existirem soluções proprietárias de streaming de vídeo com bitrate adaptativo como o HLS da Apple, o Smooth Streaming da Microsoft. Pela necessidade de uma padronização, em abril de 2009, a MPEG propôs uma colaboração para o desenvolvimento da tecnologia. O MPEG-DASH inovou em ser aberto e possibilitar a operação em diferentes plataformas e dispositivos, permitindo uma única solução compatível com múltiplos tipos de clientes. Atualmente, essa tecnologia é a mesma utilizada nos principais serviços de streaming sob demanda como Youtube e Netflix, além de aplicações para transmissão ao vivo em sites como Twitch e Instagram.

Funcionamento

Descrição da imagem

O nome DASH vem de DYNAMIC ADAPTIVE STREAMING OVER HTTP, ou seja, “fluxo adaptativo por HTTP”. O servidor, ao preço de mais armazenamento, disponibiliza o conteúdo desejado em diferentes formatos. Todos já prontos divididos em pequenos segmentos. Os conteúdos são em uma primeira camada, divididos por escolhas do cliente como: áudio em determinada língua, legenda, formato do vídeo, som estéreo ou surround. Em uma segunda, essas diferentes combinações são disponibilizadas em variadas taxas de bits. O aplicativo cliente monitora a rede para saber a taxa de bits máxima recomendável e assim, definir qual a melhor para ser baixada. Desta forma o padrão consegue mitigar paradas no vídeo adaptando a qualidade para a situação atual da rede, melhorando a experiência do usuário. Outro ponto positivo, é que o padrão depende de um processamento mínimo na parte do cliente, como a resolução de tela específica para o dispositivo, geralmente já está disponível no servidor, nenhum reescalonamento é necessário. O cliente dash precisa primeiro abrir um arquivo MPD onde está listado o endereço URL das fontes, com suas respectivas características e banda necessária. O conteúdo é dividido em segmentos e o tamanho de cada segmento, escolhido para ser compatível com o padrão HTTP, varia de 2 a 10 segundos. Para a troca de resolução de vídeo ou de áudio, precisamos apenas de uma requisição HTTP GET para o próximo segmento no endereço novo. Deste modo ela ocorre sem interrupção para o cliente e consegue passar por qualquer firewall não precisando de nenhuma configuração de rede extra, sendo facilmente implementado em redes de distribuição de conteúdo (CDNs). O padrão define apenas o formato dos segmentos e do arquivo MPD e portanto, é compatível com diferentes codecs de vídeo. Dizemos que ele é agnóstico ao formato. O padrão tem definido também a parte de direitos autorais (DRM) e encriptação, quando necessário. No exemplo abaixo, vemos o tempo fluindo da esquerda para direita. Em (1) vemos que o usuário escolheu a versão em inglês surround 128k com vídeo na qualidade de 5M. No momento (2) a rede congestionou e o player precisou baixar a qualidade para 2M, em (3) a rede continuou a piorar e o áudio foi para 48k e o vídeo para 0,5M. Em (4) a rede apresentou uma melhora e a qualidade voltou para 2M. em (5) o usuário rebobinou o filme (trick mode). Finalmente em (6) a rede apresentou uma melhora e o usuário resolveu assistir em francês.


Descrição da imagem

Descrição da imagem

Alternativas

Embora o MPEG-DASH seja uma solução altamente eficaz para streaming de vídeo, existem alternativas disponíveis. Alguns dos substitutos notáveis incluem HLS (HTTP Live Streaming) da Apple, Smooth Streaming da Microsoft e HDS (HTTP Dynamic Streaming) da Adobe4. Por ser otimizado para seus dispositivos, o HLS da Apple também é bastante usado, mas só compatível com o vídeo em seu formato proprietário H.264.

Aplicações

O MPEG-DASH foi amplamente aceito e atualmente possui diversas implementações no mercado, ele está disponível nativamente no Android através do ExoPlayer, em televisores smarts como: Samsung Smart TVs 2012+, LG Smart TV 2012+, Sony TV 2012+, Philips NetTV 4.1+, Panasonic Viera 2013+ e Chromecast. T no YouTube e na Netflix. Temos os reprodutores VLC media player, bitdash MPEG-DASH, VideoJS, Clappr, Dash.Js e Shaka Player que é o reprodutor de vídeo DASH HTML5 de código aberto da Google para conexões de baixa largura de banda, a estrutura multimídia FOSS e a biblioteca de código aberto libdash. O MPEG-DASH também é muito utilizado em servidores como Wowza Streaming Engine, Brightcove, Helix Universal Server, Nimble Streamer, Elemental Technologies. Uns dos serviços que também utilizam MPEG-DASH são: Akamai CDN, O Amazon CloudFront CDN, Amazon Web Services Elastic Transcoder, a plataforma Azure Media Services, CloudFlare, Cloudinary, Lumen CDN, O CDN da Limelight Networks, CDN do Project Shield, O CDN da Tata Communications, entre outros. Seu uso ainda se expande em diversos outros setores do mercado como software de monitoramento de fluxos ao vivo, gerenciamento de direitos digitais, validação de arquivos, entre outras áreas.

Conclusão

Em resumo, o MPEG-DASH é uma tecnologia de streaming de vídeo baseada em padrões abertos que oferece vantagens significativas, como a adaptação dinâmica de qualidade, eficiência de largura de banda e compatibilidade com diversos dispositivos e navegadores, por conta disso foi amplamente aceito e difundido no mercado atual.

Bibliografia

Perguntas

Pergunta 1 Qual o protocolo de transporte utilizado no MPEG-DASH?

Pergunta 2 E de aplicação?

Pergunta 3 Como o algoritmo pode trocar o formato do vídeo ou áudio no meio da visualização do conteúdo?

Pergunta 4 Qual a porta que uma requisição de segmento vai utilizar?

Pergunta 5 Em qual porta o segmento chega?

Autores

David Vinicius Ferreira Moreira - davidmoreira@poli.ufrj.br

Daniel Negrão de Carvalho - dncarvcalho@poli.ufrj.br

Nicolas Viana do Espirito Santo - nicolasviana@poli.ufrj.br