DASH vs HLS : le duel des protocoles de streaming
DASH vs HLS : le duel des protocoles de streaming. Comparez les formats de streaming adaptatif et leurs cas d'usage sur dcast.tv

On this page
Introduction à MPEG-DASH et HLS
Deux protocoles portent l'essentiel du streaming adaptatif sur le web : MPEG-DASH (Dynamic Adaptive Streaming over HTTP) et HLS (HTTP Live Streaming). Tous deux diffusent de la vidéo segmentée via HTTP, mais diffèrent par le format des segments, la prise en charge des codecs et l'étendue des plateformes. Ce guide explique le fonctionnement de chacun, les compare sur la latence et l'efficacité, et vous aide à choisir — et montre aussi comment le CMAF unifie les deux en un seul jeu de segments.
Bref historique et objectif
MPEG-DASH a été développé par le Moving Picture Experts Group (MPEG) pour créer un format universel de diffusion vidéo sur le web. Conçu pour être indépendant des appareils, il assure la compatibilité avec un large éventail d'appareils et de plateformes. Le protocole s'appuie sur HTTP pour livrer les segments vidéo et se montre très flexible, prenant en charge divers codecs et formats de conteneur. HLS a été développé par Apple et lancé avec l'arrivée des appareils iOS. Il est rapidement devenu un standard pour diffuser de la vidéo en direct et à la demande. HLS utilise HTTP pour livrer les segments vidéo et a été largement adopté sur différentes plateformes et appareils, en particulier iOS et macOS.Formats de segments
Un aspect essentiel de DASH et de HLS est la façon dont ils gèrent les segments vidéo. Ces segments sont de petites portions du flux, livrées indépendamment au client, ce qui permet le streaming à débit adaptatif.
Formats de segments DASH
Les segments DASH sont généralement encodés au format ISO Base Media File Format (ISOBMFF), également utilisé pour les fichiers MP4. Ce format autorise un accès aléatoire efficace et le streaming via HTTP. Les segments portent habituellement l'extension `.mp4` et sont organisés dans une arborescence incluant un fichier MPD.
Formats de segments HLS
Les segments HLS sont le plus souvent encodés au format `.ts` (MPEG-2 Transport Stream), même si les versions récentes de HLS prennent aussi en charge les segments `.m4s` (MP4 fragmenté). Ces segments sont regroupés dans un fichier de playlist (`.m3u8`) qui indique au client les segments disponibles et leur emplacement.
Structure du manifeste
Le fichier manifeste est crucial pour DASH comme pour HLS : il contient les métadonnées du contenu vidéo et des segments disponibles.
MPD (Media Presentation Description) pour DASH
Le fichier MPD de DASH est un document XML qui fournit les métadonnées de la présentation vidéo : informations sur les flux audio et vidéo, URL des segments et données de synchronisation. Voici un exemple simple de fichier MPD :
```xml
mediaPresentationDuration="PT0H1M24S"minBufferTime="PT1.5S"
profiles="urn:mpeg:dash:profile:isoff-on-demand:2011"
type="static">
```
m3u8 pour HLS
Le fichier m3u8 de HLS est un fichier texte qui liste les segments et leurs URL. Il peut aussi inclure des métadonnées sur le flux, comme le codec et le débit. Voici un exemple simple :
```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
```
Prise en charge des codecs
DASH et HLS prennent tous deux en charge un large éventail de codecs, avec quelques différences de compatibilité.
Codecs courants
- H.264 : largement pris en charge par DASH et HLS.
- AAC : couramment utilisé pour l'audio dans les deux protocoles.
- VP9 : pris en charge par DASH, moins répandu dans HLS.
- HEVC (H.265) : pris en charge par DASH, moins courant dans HLS, surtout sur les appareils et plateformes anciens.
Compatibilité des codecs
DASH est plus souple : il gère une plus grande variété de codecs et de conteneurs. HLS a historiquement été plus restrictif, notamment pour les codecs et conteneurs récents, même si la situation s'est améliorée avec HLSv4 et les segments MP4 fragmentés.
Débit adaptatif (ABR)
Le streaming à débit adaptatif est une fonctionnalité clé de DASH et de HLS : il permet au client de basculer entre différents niveaux de qualité selon les conditions réseau.
ABR dans DASH
Dans DASH, le client s'appuie sur le fichier MPD pour connaître les débits disponibles et les URL des segments. Il peut alors passer d'une représentation (débit) à une autre selon les conditions réseau. Le MPD définit les différentes représentations, et le client choisit dynamiquement la meilleure selon la bande passante disponible.
ABR dans HLS
Dans HLS, le client s'appuie sur le fichier m3u8 pour connaître les débits disponibles et les URL des segments. Il peut basculer entre différents flux (débits) selon les conditions réseau. Le m3u8 liste les flux disponibles et leurs débits, et le client choisit dynamiquement le meilleur selon la bande passante.
Performance et efficacité
DASH et HLS visent tous deux un streaming efficace et à faible latence, avec quelques différences de performance.
Latence
La latence de bout en bout dépend surtout de la durée des segments, des réglages de l'encodeur et du packager et des extensions basse latence (par exemple LL-HLS ou CMAF fragmenté), et non du seul acronyme. Les déploiements HLS traditionnels utilisaient souvent des segments de 6 à 10 s, ce qui augmente le délai « caméra-écran » ; DASH est fréquemment packagé avec des segments plus courts, mais peut être configuré dans un sens comme dans l'autre. Un HLS moderne en fMP4 et un bon réglage du lecteur peuvent atteindre une latence comparable à DASH lorsque les paramètres correspondent.
Utilisation de la bande passante
Les deux protocoles utilisent des paliers de débit adaptatif ; l'efficacité vient du choix du codec, de la taille des segments et de la mise en cache CDN, pas de l'étiquette DASH ou HLS. Le HLS en MPEG-TS ajoute un peu plus de surcharge de multiplexage que le fMP4 ; comparez de vrais manifestes plutôt que de supposer qu'un protocole est toujours « plus efficace ».
Adoption et présence sur le marché
L'adoption de DASH et de HLS varie selon les plateformes et les appareils, et les tendances évoluent en permanence.
Tendances actuelles du marché
DASH gagne du terrain grâce à sa flexibilité et à sa large prise en charge des codecs, tandis que HLS reste un choix populaire, surtout sur iOS et macOS. De nombreuses plateformes et appareils prennent en charge les deux protocoles ; le choix dépend souvent des cas d'usage et des exigences.
Taux d'adoption
- DASH : de plus en plus adopté par les services et plateformes qui exigent une large prise en charge des codecs et de la flexibilité.
- HLS : largement adopté par Apple et d'autres plateformes, en particulier pour le direct et le contenu à la demande.
Mettre en place DASH ou HLS
Déployer DASH ou HLS suppose d'examiner attentivement les exigences techniques et le cas d'usage précis.
Étapes pratiques de mise en œuvre
Mise en œuvre DASH
1. Préparer le contenu vidéo : encodez la vidéo en plusieurs débits.
2. Générer les segments : utilisez des outils comme FFmpeg pour créer les segments DASH.
3. Créer le fichier MPD : utilisez un outil comme MP4Box pour générer le MPD.
4. Héberger le contenu : déposez les segments et le MPD sur un serveur web.
5. Servir le contenu : configurez le serveur pour diffuser le contenu DASH via HTTP.
Mise en œuvre HLS
1. Préparer le contenu vidéo : encodez la vidéo en plusieurs débits.
2. Générer les segments : utilisez des outils comme FFmpeg pour créer les segments HLS.
3. Créer le fichier m3u8 : utilisez un outil comme FFmpeg pour générer le m3u8.
4. Héberger le contenu : déposez les segments et le m3u8 sur un serveur web.
5. Servir le contenu : configurez le serveur pour diffuser le contenu HLS via HTTP.
Tableau comparatif
| Caractéristique | DASH | HLS |
|---|
| Prise en charge codecs | Flexible : H.264, VP9, HEVC, etc. | H.264, AAC ; prise en charge limitée des codecs récents |
|---|
| Format de segments | Segments MP4 (ISOBMFF) | MPEG-2 Transport Stream (`.ts`) ou MP4 fragmenté (`.m4s`) |
|---|
| Manifeste | Fichier MPD (XML) | Fichier m3u8 (texte) |
|---|
| Latence | Dépend de la durée des segments et du packaging basse latence ; pas fixée par le seul MPD | Dépend de la durée des segments et du réglage LL-HLS / fMP4 ; pas fixée par le seul m3u8 |
|---|
| Efficacité bande passante | Dépend du codec, du palier et du conteneur ; souvent fMP4 | Le TS ajoute une surcharge de mux ; le HLS fMP4 est courant sur les nouvelles stacks |
|---|
| Adoption | De plus en plus adopté par les services de streaming | Largement adopté par Apple et d'autres plateformes |
|---|
Conclusion
DASH et HLS sont deux protocoles de streaming HTTP matures. DASH offre plus de flexibilité sur les codecs, tandis que HLS offre la plus large prise en charge des appareils et de l'écosystème Apple ; la latence et l'efficacité de la bande passante dépendent de vos réglages de segments et de packaging, pas du nom du protocole. Optez pour HLS pour une portée maximale, pour DASH pour la flexibilité des codecs, et tournez-vous vers le CMAF associé aux extensions basse latence quand le délai caméra-écran compte.
Foire aux questions
Quelles sont les principales différences entre DASH et HLS ?
DASH et HLS diffèrent sur plusieurs points clés : - **Codecs** : DASH prend en charge une plus large gamme de codecs, dont VP9 et HEVC. - **Format de segments** : DASH utilise des segments MP4, HLS des segments MPEG-2 Transport Stream ou MP4 fragmenté. - **Latence** : aucun protocole n'est intrinsèquement plus rapide ; cela dépend de la durée des segments et des extensions basse latence comme LL-HLS ou le CMAF fragmenté. - **Efficacité de la bande passante** : elle vient du choix du codec, de la taille des segments et de la mise en cache CDN, pas de l'étiquette du protocole.
En quoi les formats de segments diffèrent-ils entre DASH et HLS ?
DASH utilise des segments MP4 (ISOBMFF), plus efficaces pour l'accès aléatoire et le streaming via HTTP. HLS utilise des segments MPEG-2 Transport Stream (`.ts`) ou MP4 fragmenté (`.m4s`), qui peuvent impliquer davantage de surcharge.
Quel codec est le plus couramment pris en charge par DASH et HLS ?
DASH et HLS prennent tous deux en charge H.264 pour la vidéo et AAC pour l'audio. DASH prend aussi en charge des codecs plus récents comme VP9 et HEVC, ce que HLS ne fait que de façon limitée.
Comment fonctionne le débit adaptatif dans DASH et HLS ?
L'ABR permet au client de basculer entre différents niveaux de qualité selon les conditions réseau. DASH s'appuie sur les fichiers MPD, HLS sur les fichiers m3u8 pour gérer les différents débits et URL de segments.
Quel protocole a la plus faible latence, DASH ou HLS ?
Aucun protocole ne garantit à lui seul une faible latence. La latence dépend de la durée des segments et des extensions basse latence comme LL-HLS ou le CMAF fragmenté ; utilisez des segments courts alignés sur les images-clés et mesurez le délai caméra-écran sur votre encodeur, votre CDN et votre lecteur.
dcast Team
Professional video streaming experts helping creators succeed.
Articles similaires
Lancez votre activité vidéo dès aujourd’hui
Rejoignez des milliers de créateurs qui monétisent leur contenu avec DCAST.
Commencer gratuitement


