DASH vs HLS: a batalha dos protocolos de streaming
DASH vs HLS: a batalha dos protocolos de streaming. Compare os formatos de streaming adaptativo e seus casos de uso na dcast.tv

On this page
Introdução ao MPEG-DASH e ao HLS
Dois protocolos carregam a maior parte do streaming adaptativo na web: o MPEG-DASH (Dynamic Adaptive Streaming over HTTP) e o HLS (HTTP Live Streaming). Ambos entregam vídeo segmentado por HTTP, mas diferem no formato de segmento, no suporte a codecs e no alcance de plataformas. Este guia mostra como cada um funciona, como eles se comparam em latência e eficiência e como escolher entre os dois — além de como o CMAF unifica ambos em um único conjunto de segmentos.
Breve histórico e propósito
O MPEG-DASH foi desenvolvido pelo Moving Picture Experts Group (MPEG) para criar um formato universal de streaming de vídeo na web. Ele foi projetado para ser agnóstico a dispositivos, garantindo compatibilidade com uma ampla gama de aparelhos e plataformas. O protocolo usa HTTP para entregar os segmentos de vídeo e é altamente flexível, suportando diversos codecs e formatos de container.
O HLS foi desenvolvido pela Apple e lançado inicialmente junto com os dispositivos iOS. Ele rapidamente se tornou um padrão para streaming de vídeo ao vivo e sob demanda. O HLS usa HTTP para entregar os segmentos de vídeo e é amplamente adotado em diferentes plataformas e dispositivos, especialmente no iOS e no macOS.
Formatos de segmento
Um aspecto essencial tanto do DASH quanto do HLS é como eles tratam os segmentos de vídeo. Esses segmentos são partes menores do stream, entregues de forma independente ao cliente, o que possibilita o streaming com bitrate adaptativo.
Formatos de segmento do DASH
Os segmentos DASH costumam ser codificados no ISO Base Media File Format (ISOBMFF), o mesmo usado nos arquivos MP4. Esse formato permite acesso aleatório eficiente e streaming por HTTP. Os segmentos normalmente têm a extensão `.mp4` e são organizados em uma estrutura de diretórios que inclui um arquivo MPD.
Formatos de segmento do HLS
Os segmentos HLS geralmente são codificados no formato `.ts` (MPEG-2 Transport Stream), embora versões mais novas do HLS também suportem segmentos `.m4s` (MP4 fragmentado). Esses segmentos são agrupados em um arquivo de playlist (`.m3u8`), que informa ao cliente sobre os segmentos disponíveis e suas localizações.
Estrutura do manifesto
O arquivo de manifesto é crucial tanto para o DASH quanto para o HLS, pois contém os metadados sobre o conteúdo em vídeo e os segmentos disponíveis.
MPD (Media Presentation Description) do DASH
O arquivo MPD do DASH é um documento XML que traz os metadados da apresentação do vídeo, incluindo informações sobre os fluxos de vídeo e áudio, as URLs dos segmentos e dados de temporização. Veja um exemplo simples de um arquivo MPD:
```xml
mediaPresentationDuration="PT0H1M24S"minBufferTime="PT1.5S"
profiles="urn:mpeg:dash:profile:isoff-on-demand:2011"
type="static">
```
m3u8 do HLS
O arquivo m3u8 do HLS é um arquivo de texto que lista os segmentos e suas URLs. Ele também pode incluir metadados sobre o stream, como o codec e o bitrate. Veja um exemplo simples de um arquivo m3u8:
```plaintext
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.000,
segment_00000.ts
#EXTINF:10.000,
segment_00001.ts
#EXTINF:10.000,
segment_00002.ts
#EXT-X-ENDLIST
```
Suporte a codecs
Tanto o DASH quanto o HLS suportam uma ampla gama de codecs, mas há algumas diferenças em termos de compatibilidade e suporte.
Codecs comuns
- H.264: amplamente suportado por DASH e HLS.
- AAC: usado com frequência para áudio em ambos os protocolos.
- VP9: suportado pelo DASH, mas menos comum no HLS.
- HEVC (H.265): suportado pelo DASH, mas menos comum no HLS, especialmente em dispositivos e plataformas mais antigos.
Compatibilidade de codecs
O DASH é mais flexível quanto ao suporte a codecs, pois lida com uma variedade maior de codecs e formatos de container. O HLS foi historicamente mais restritivo, sobretudo em relação a codecs e containers mais novos, embora isso tenha melhorado com a chegada do HLSv4 e dos segmentos MP4 fragmentados.
Bitrate adaptativo (ABR)
O streaming com bitrate adaptativo é um recurso central tanto do DASH quanto do HLS, permitindo que os clientes alternem entre diferentes níveis de qualidade conforme as condições da rede.
ABR no DASH
No DASH, o cliente usa o arquivo MPD para descobrir os bitrates disponíveis e as URLs dos segmentos. Em seguida, ele pode alternar entre diferentes representações (bitrates) conforme as condições da rede. O arquivo MPD define as diferentes representações, e o cliente escolhe dinamicamente a melhor conforme a banda disponível.
ABR no HLS
No HLS, o cliente usa o arquivo m3u8 para descobrir os bitrates disponíveis e as URLs dos segmentos. Ele pode alternar entre diferentes streams (bitrates) conforme as condições da rede. O arquivo m3u8 inclui uma lista dos streams disponíveis e seus bitrates, e o cliente escolhe dinamicamente o melhor conforme a banda disponível.
Desempenho e eficiência
Tanto o DASH quanto o HLS foram projetados para oferecer streaming eficiente e de baixa latência, mas há algumas diferenças de desempenho.
Latência
A latência de ponta a ponta depende principalmente da duração dos segmentos, das configurações de encoder/empacotador e das extensões de baixa latência (por exemplo, LL-HLS ou CMAF em chunks), e não da sigla de três letras por si só. Implantações HLS tradicionais costumavam usar segmentos de 6 a 10 s, o que aumenta o atraso da captura até a tela; o DASH é frequentemente empacotado com segmentos mais curtos, mas pode ser configurado de qualquer forma. O HLS com fMP4 moderno e o ajuste correto do player conseguem atingir latência semelhante à do DASH quando as configurações combinam.
Uso de banda
Ambos os protocolos usam escadas de bitrate adaptativo; a eficiência vem da escolha do codec, do tamanho do segmento e do cache do CDN, não dos rótulos DASH ou HLS. O HLS com MPEG-TS carrega um pouco mais de overhead de multiplexação do que o fMP4; compare manifestos reais em vez de supor que um protocolo é sempre "mais eficiente".
Adoção e presença de mercado
A adoção de DASH e HLS varia entre plataformas e dispositivos, e as tendências de mercado estão em constante evolução.
Tendências atuais de mercado
O DASH vem ganhando força graças à sua flexibilidade e ao amplo suporte a codecs, enquanto o HLS continua sendo uma escolha popular, especialmente no iOS e no macOS. Muitas plataformas e dispositivos suportam ambos os protocolos, e a escolha costuma depender dos casos de uso e requisitos específicos.
Índices de adoção
- DASH: cada vez mais adotado por serviços e plataformas de streaming que precisam de amplo suporte a codecs e flexibilidade.
- HLS: amplamente adotado pela Apple e por outras plataformas, especialmente para conteúdo ao vivo e sob demanda.
Implementando DASH vs HLS
Implementar DASH ou HLS exige avaliar com cuidado os requisitos técnicos e o caso de uso específico.
Passos práticos para a implementação
Implementação do DASH
1. Prepare o conteúdo em vídeo: codifique o vídeo em múltiplos bitrates.
2. Gere os segmentos: use ferramentas como o FFmpeg para gerar os segmentos DASH.
3. Crie o arquivo MPD: use uma ferramenta como o MP4Box para gerar o arquivo MPD.
4. Hospede o conteúdo: envie os segmentos e o arquivo MPD para um servidor web.
5. Sirva o conteúdo: configure o servidor para servir o conteúdo DASH por HTTP.
Implementação do HLS
1. Prepare o conteúdo em vídeo: codifique o vídeo em múltiplos bitrates.
2. Gere os segmentos: use ferramentas como o FFmpeg para gerar os segmentos HLS.
3. Crie o arquivo m3u8: use uma ferramenta como o FFmpeg para gerar o arquivo m3u8.
4. Hospede o conteúdo: envie os segmentos e o arquivo m3u8 para um servidor web.
5. Sirva o conteúdo: configure o servidor para servir o conteúdo HLS por HTTP.
Tabela comparativa
| Recurso | DASH | HLS |
|---|
| Suporte a codecs | Flexível, suporta H.264, VP9, HEVC etc. | Suporta H.264, AAC, suporte limitado a codecs mais novos |
|---|
| Formato de segmento | Segmentos MP4 (ISOBMFF) | MPEG-2 Transport Stream (`.ts`) ou MP4 fragmentado (`.m4s`) |
|---|
| Manifesto | Arquivo MPD (XML) | Arquivo m3u8 (texto) |
|---|
| Latência | Depende da duração do segmento e do empacotamento de baixa latência; não é fixada só pelo MPD | Depende da duração do segmento e da configuração LL-HLS / fMP4; não é fixada só pelo m3u8 |
|---|
| Eficiência de banda | Depende do codec, da escada e do container; muitas vezes fMP4 | O TS adiciona overhead de mux; o HLS com fMP4 é comum em stacks novos |
|---|
| Adoção | Cada vez mais adotado por serviços de streaming | Amplamente adotado pela Apple e por outras plataformas |
|---|
Perguntas frequentes
Quais são as principais diferenças entre DASH e HLS?
DASH e HLS diferem em vários aspectos-chave:
- Suporte a codecs: o DASH suporta uma gama maior de codecs, incluindo os mais novos, como VP9 e HEVC.
- Formato de segmento: o DASH usa segmentos MP4, enquanto o HLS usa MPEG-2 Transport Stream ou MP4 fragmentado.
- Latência: ajustada pela duração do segmento e pelo player; qualquer protocolo pode ter baixa ou alta latência.
- Eficiência de banda: impulsionada pelos codecs e pelo empacotamento; compare manifestos medidos.
Como os formatos de segmento diferem entre DASH e HLS?
O DASH usa segmentos MP4 (ISOBMFF), mais eficientes para acesso aleatório e streaming por HTTP. O HLS usa segmentos MPEG-2 Transport Stream (`.ts`) ou MP4 fragmentado (`.m4s`), que podem exigir mais overhead.
Qual codec é mais comumente suportado por DASH e HLS?
Tanto o DASH quanto o HLS suportam comumente o H.264 para vídeo e o AAC para áudio. No entanto, o DASH também suporta codecs mais novos, como VP9 e HEVC, enquanto o HLS tem suporte limitado a eles.
Como o bitrate adaptativo funciona no DASH e no HLS?
O ABR funciona permitindo que os clientes alternem entre diferentes níveis de qualidade conforme as condições da rede. O DASH usa arquivos MPD, enquanto o HLS usa arquivos m3u8 para gerenciar os diferentes bitrates e as URLs dos segmentos.
Qual protocolo tem menor latência, DASH ou HLS?
Nenhum dos protocolos garante baixa latência por conta própria. Use segmentos curtos, keyframes alinhados e recursos de HLS ou DASH de baixa latência quando disponíveis, e então meça o atraso da captura até a tela no seu encoder, CDN e player.
Quais são os principais benefícios de usar a dcast.tv para implementar DASH e HLS?
A dcast.tv suporta tanto DASH quanto HLS, oferecendo soluções de streaming de vídeo flexíveis e eficientes. Ela ajuda a agilizar o processo de implementação e a garantir compatibilidade entre diferentes plataformas.
Como escolho entre DASH e HLS para as minhas necessidades de streaming?
Escolha o DASH se você precisa de amplo suporte a codecs e menor latência, ou o HLS se precisa de suporte específico de plataforma (por exemplo, para dispositivos Apple). Leve em conta o seu caso de uso, os requisitos de plataforma e as restrições técnicas.
Conclusão
DASH e HLS são protocolos de streaming maduros, baseados em HTTP. O DASH oferece maior flexibilidade de codecs, enquanto o HLS tem o suporte mais amplo a dispositivos e ao ecossistema Apple; a latência e a eficiência de banda dependem das suas configurações de segmento e empacotamento, não do nome do protocolo. Escolha o HLS para o máximo de alcance, o DASH para flexibilidade de codecs e recorra ao CMAF mais as extensões de baixa latência quando o atraso da captura até a tela importa.
Perguntas frequentes
Quais são as principais diferenças entre DASH e HLS?
DASH e HLS diferem em vários aspectos-chave: - **Suporte a codecs**: o DASH suporta uma gama maior de codecs, incluindo os mais novos, como VP9 e HEVC. - **Formato de segmento**: o DASH usa segmentos MP4, enquanto o HLS usa MPEG-2 Transport Stream ou MP4 fragmentado. - **Latência**: nenhum protocolo é inerentemente de menor latência; isso depende da duração do segmento e de extensões de baixa latência como LL-HLS ou CMAF em chunks. - **Eficiência de banda**: a eficiência vem da escolha do codec, do tamanho do segmento e do cache do CDN, não do rótulo do protocolo.
Como os formatos de segmento diferem entre DASH e HLS?
O DASH usa segmentos MP4 (ISOBMFF), mais eficientes para acesso aleatório e streaming por HTTP. O HLS usa segmentos MPEG-2 Transport Stream (`.ts`) ou MP4 fragmentado (`.m4s`), que podem exigir mais overhead.
Qual codec é mais comumente suportado por DASH e HLS?
Tanto o DASH quanto o HLS suportam comumente o H.264 para vídeo e o AAC para áudio. No entanto, o DASH também suporta codecs mais novos, como VP9 e HEVC, enquanto o HLS tem suporte limitado a eles.
Como o bitrate adaptativo funciona no DASH e no HLS?
O ABR funciona permitindo que os clientes alternem entre diferentes níveis de qualidade conforme as condições da rede. O DASH usa arquivos MPD, enquanto o HLS usa arquivos m3u8 para gerenciar os diferentes bitrates e as URLs dos segmentos.
Qual protocolo tem menor latência, DASH ou HLS?
Nenhum dos protocolos garante baixa latência por conta própria. A latência depende da duração do segmento e de extensões de baixa latência como LL-HLS ou CMAF em chunks; use segmentos curtos e alinhados por keyframe e meça o atraso da captura até a tela no seu encoder, CDN e player.
dcast Team
Professional video streaming experts helping creators succeed.
Artigos relacionados
Comece hoje o seu negócio de vídeo
Junte-se a milhares de criadores que monetizam seu conteúdo com a DCAST.
Comece grátis


