Conteneur, protocole, codec : trois notions à distinguer
Avant de comparer les formats, il faut séparer trois couches que l'on confond souvent :
- le codec compresse l'image et le son (H.264, HEVC, AAC…) ; c'est lui qui détermine si votre appareil sait décoder la vidéo ;
- le conteneur range les données compressées, avec leurs horodatages et leurs pistes audio et sous-titres (MPEG-TS, MP4, MKV…) ;
- le protocole de diffusion organise l'acheminement sur le réseau : découpage en morceaux, liste de ces morceaux, choix de la qualité (HLS, DASH…).
MPEG-TS est avant tout un conteneur, HLS et DASH sont des protocoles qui transportent des conteneurs. Une même vidéo en H.264 peut donc circuler en MPEG-TS brut, en HLS avec des segments MPEG-TS, ou en DASH avec des segments MP4. Les codecs eux-mêmes sont traités dans notre article sur H.264, HEVC et AV1.
MPEG-TS : le format hérité de la télévision
Le MPEG Transport Stream a été normalisé au milieu des années 1990 (norme ISO/IEC 13818-1) pour la télévision numérique. C'est le format utilisé par la TNT, le satellite et le câble. Il découpe les données en paquets de 188 octets, chacun marqué d'un identifiant (le PID) qui indique s'il transporte de la vidéo, une piste audio, des sous-titres ou des tables de service.
Sa grande qualité est la robustesse : conçu pour des signaux hertziens imparfaits, il permet à un décodeur de rejoindre le flux à n'importe quel moment et de se resynchroniser après une perte. Un flux MPEG-TS n'a ni début ni fin : c'est un courant continu.
Sur Internet, on le rencontre sous deux formes :
- le flux continu sur HTTP : le lecteur ouvre une adresse se terminant souvent par
.tset reçoit un courant ininterrompu de paquets, comme une antenne virtuelle. C'est simple et offre une faible latence, mais la qualité est unique : si votre débit baisse, l'image se fige ou se dégrade, sans solution de repli ; - les segments HLS : le même format découpé en petits fichiers de quelques secondes, décrits dans une liste.
HLS : le streaming par segments d'Apple
HLS (HTTP Live Streaming) a été lancé par Apple en 2009 pour l'iPhone, puis publié comme RFC 8216 en 2017. C'est aujourd'hui le protocole de streaming le plus répandu. Son principe tient en trois idées.
1. La vidéo est découpée en segments
Le serveur coupe la vidéo en segments de quelques secondes (Apple recommande 6 secondes), stockés comme de simples fichiers : historiquement en MPEG-TS (.ts), et depuis 2016 aussi en MP4 fragmenté (.m4s, format dit CMAF). Chaque segment se télécharge par une requête HTTP ordinaire, comme une image sur un site web. C'est ce qui rend HLS facile à distribuer par les réseaux de diffusion de contenu (CDN) et peu sensible aux pare-feu.
2. Un manifeste liste les segments
Le lecteur ne reçoit pas la vidéo directement : il lit d'abord un fichier texte .m3u8, le manifeste, qui liste les segments disponibles.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:48215
#EXTINF:6.000,
segment_48215.ts
#EXTINF:6.000,
segment_48216.ts
#EXTINF:6.000,
segment_48217.ts
Pour un direct, ce manifeste est une fenêtre glissante : le lecteur le recharge régulièrement, de nouveaux segments apparaissent à la fin et les plus anciens disparaissent. Pour une vidéo à la demande, la liste est complète et se termine par #EXT-X-ENDLIST.
3. Plusieurs qualités, un choix automatique
Un manifeste « maître » peut pointer vers plusieurs versions de la même chaîne, chacune avec son débit et sa définition :
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1800000,RESOLUTION=960x540,CODECS="avc1.4d401f,mp4a.40.2"
540p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2"
1080p/index.m3u8
Le lecteur mesure la vitesse à laquelle il télécharge les segments et bascule d'une qualité à l'autre entre deux segments. C'est le débit adaptatif (adaptive bitrate, ABR) : quand le réseau faiblit, l'image devient un peu plus floue au lieu de s'arrêter. C'est pourquoi une chaîne peut sembler moins nette pendant les premières secondes : le lecteur commence souvent par une qualité prudente avant de monter.
La syntaxe de ces fichiers ressemble à celle des playlists de chaînes, ce qui prête à confusion ; la différence est expliquée dans le format M3U ligne par ligne.
MPEG-DASH : le standard international
MPEG-DASH (Dynamic Adaptive Streaming over HTTP) a été normalisé en 2012 (ISO/IEC 23009-1). Il repose sur les mêmes principes que HLS, segments téléchargés en HTTP et débit adaptatif, mais avec d'autres choix techniques :
- le manifeste est un fichier XML appelé MPD (Media Presentation Description), plus riche et plus complexe qu'un
.m3u8; - il est indépendant du codec et du conteneur, même si l'on utilise en pratique surtout du MP4 fragmenté ;
- il est très utilisé par les grandes plateformes de vidéo à la demande, souvent associé à des systèmes de protection (DRM) comme Widevine ou PlayReady.
Le rapprochement des deux mondes a été facilité par le format CMAF, qui permet de servir les mêmes segments MP4 à la fois en HLS et en DASH, avec deux manifestes différents.
Tableau comparatif
| Critère | MPEG-TS continu | HLS | MPEG-DASH |
|---|---|---|---|
| Origine | Télévision numérique (années 1990) | Apple, 2009 | Norme ISO, 2012 |
| Transport | Flux HTTP ininterrompu | Segments via HTTP | Segments via HTTP |
| Manifeste | Aucun | .m3u8 (texte) | .mpd (XML) |
| Débit adaptatif | Non | Oui | Oui |
| Latence typique en direct | Faible (quelques secondes) | De l'ordre de 10 à 30 s ; quelques secondes en LL-HLS | Comparable à HLS ; réduite en mode faible latence |
| Reprise après coupure | Reconnexion complète | Segment suivant | Segment suivant |
| Lecture native sur iPhone | Non (lecteur tiers) | Oui | Non (lecteur tiers) |
Latence : pourquoi le direct arrive en retard
La latence est le délai entre l'instant filmé et celui où il s'affiche chez vous. Sur la TNT, elle est de quelques secondes. En HLS classique, elle atteint souvent 20 à 30 secondes, ce qui explique qu'un voisin puisse célébrer un but avant vous. Cette latence s'additionne à partir de plusieurs étapes :
- l'encodage de la source, qui prend quelques secondes ;
- la fabrication d'un segment : un segment de 6 secondes ne peut être publié qu'une fois ses 6 secondes écoulées ;
- la mémoire tampon du lecteur : pour absorber les irrégularités du réseau, les lecteurs HLS gardent en général plusieurs segments d'avance, soit 12 à 18 secondes de marge ;
- le trajet réseau et les éventuels serveurs relais.
Réduire la latence, c'est donc réduire la marge, et accepter plus de risques de coupures quand le réseau vacille. Les variantes à faible latence, LL-HLS (présenté par Apple en 2019) et le mode faible latence de DASH, publient des morceaux partiels de segment pour descendre à quelques secondes, mais elles doivent être prises en charge par le serveur et par le lecteur. Le flux MPEG-TS continu, sans segmentation, offre naturellement une latence plus courte, au prix de l'absence de débit adaptatif. Les réglages de mémoire tampon et leurs effets sont détaillés dans notre guide contre la mise en mémoire tampon.
Compatibilité selon les appareils
Le protocole ne détermine pas seul la lecture : il faut aussi que l'appareil sache ouvrir le conteneur et décoder le codec. Quelques repères :
- iPhone, iPad, Apple TV : HLS est lu nativement par le système. DASH et le MPEG-TS continu nécessitent une application dotée de son propre moteur de lecture.
- Android et Android TV : le lecteur système de référence (ExoPlayer, devenu Media3) gère HLS, DASH et MPEG-TS ; la compatibilité réelle dépend surtout des décodeurs matériels de l'appareil.
- Navigateurs : Safari lit HLS directement ; les autres navigateurs lisent HLS et DASH par l'intermédiaire de bibliothèques JavaScript s'appuyant sur l'API Media Source Extensions.
- Téléviseurs connectés : les modèles récents gèrent HLS et DASH dans leurs lecteurs intégrés, avec des limites variables selon l'année et la gamme.
Les lecteurs fondés sur une bibliothèque complète, comme libmpv (qui s'appuie sur FFmpeg), lisent les trois formats avec le même moteur sur tous les systèmes. C'est le choix fait par AICKO IPTV, dont le moteur est présenté sur la page lecteur vidéo. La compatibilité finale reste cependant liée au codec et à la puissance de l'appareil.
En résumé
- Le codec compresse, le conteneur range, le protocole achemine.
- MPEG-TS vient de la télévision : robuste, faible latence, mais une seule qualité en flux continu.
- HLS découpe la vidéo en segments listés dans un
.m3u8et adapte la qualité au débit. - DASH suit le même principe avec un manifeste XML et une norme internationale.
- La latence du direct dépend surtout de la durée des segments et de la mémoire tampon.
Questions fréquentes
Vaut-il mieux choisir le format .ts ou .m3u8 quand un service propose les deux ?
Le .ts continu démarre souvent plus vite et avec moins de retard, mais sans adaptation de qualité. Le .m3u8 (HLS) supporte mieux un réseau irrégulier, en particulier en Wi-Fi. Essayez les deux : le meilleur choix dépend de votre connexion et du serveur.
Pourquoi la qualité change-t-elle toute seule pendant la lecture ?
C'est le débit adaptatif de HLS ou de DASH : le lecteur passe à une version plus légère quand le téléchargement ralentit, puis remonte lorsque le réseau le permet. C'est préférable à une coupure.
Un fichier .m3u8 est-il une vidéo ?
Non. C'est un fichier texte qui décrit où trouver les segments vidéo. L'enregistrer seul ne conserve aucune image.
Pourquoi le direct est-il en retard par rapport à la télévision ?
Le découpage en segments et la mémoire tampon du lecteur ajoutent en général plusieurs dizaines de secondes. Les variantes à faible latence réduisent ce retard lorsque le serveur et le lecteur les prennent en charge.
