ProtoFlix

Documentation · Vos fichiers

Ce que chaque écran lit

Conteneurs, vidéo, audio et sous-titres, écran par écran, et l’accélération du serveur.

Décision provisoire (lot 3a) : en attendant le banc, les attentes documentées ci-dessous sont codées comme règles experimental dans les profils, et ces règles décident par défaut (PROTOFLIX_PLAYBACK_EXPERIMENTAL=true). Chaque plan l'indique (support: experimental). Un administrateur prudent peut les désactiver, mais plus rien ne sera lu en direct.

État au 2026-11-05 : aucune case n'est testée. Le banc de compatibilité n'existe pas encore (voir stratégie de tests et corpus). Le moteur de décision n'utilisera que des capacités validated ; tant que ce tableau est vide, seul le profil prudent conservative@1 pourra servir, et seulement après validation de ses propres cases.

1. Règles de lecture

  • Résultat mesuré (colonnes navigateurs) : rempli uniquement par le banc de test, avec la version du navigateur, l'OS, le matériel, la date et le lien vers le rapport d'exécution. Valeurs possibles :
    • non testé ;
    • validated (passe sur toutes les fixtures du scénario) ;
    • experimental (passe partiellement ou sur un seul environnement) ;
    • unsupported (échoue).
  • Attente documentée : ce que la documentation publique laisse prévoir. Elle sert à prioriser les tests, jamais à décider une lecture. Chaque attente porte une source et la mention « à vérifier » tant que le banc ne l'a pas confirmée.
  • Une ligne couvre un format avec ses variantes précisées (profil, profondeur, conteneur). « HEVC supporté » sans profil ni conteneur n'est pas une ligne acceptable.
  • Le support dépend souvent de l'OS et du matériel (décodage matériel requis pour certains codecs). Chaque résultat mesuré indique donc l'environnement.
  • Clients natifs (mobile, TV) : colonnes « à définir » ; leurs profils seront créés quand ces clients existeront.

Sources de référence pour les attentes (à consulter à chaque mise à jour, date de consultation à noter) :

  • [S1] MDN, Media container formats et Web video codec guide / Web audio codec guide ;
  • [S2] documentation de MediaSource.isTypeSupported() et MediaCapabilities.decodingInfo() (MDN, W3C) ;
  • [S3] notes de version et documentation développeur de chaque navigateur (Chrome Platform Status, Firefox release notes, Microsoft Edge docs, WebKit / Safari release notes) ;
  • [S4] spécification HLS (RFC 8216) et HLS authoring specification for Apple devices.

Le client web lira en HLS via MSE (hls.js) sur Chrome, Firefox et Edge, et en HLS natif sur Safari (ADR 0011). Le chemin réel pourra changer selon les mesures ; chaque résultat indique le chemin de lecture utilisé (progressive, mse-hls, native-hls).

2. Livraison et conteneurs

Format livréAttente documentée (à vérifier)SourceChromeFirefoxEdgeSafariNatifs
MP4 progressif (HTTP Range)Lu par les quatre navigateurs avec codecs compatiblesS1non testénon testénon testénon testéà définir
WebM progressifChrome, Firefox, Edge ; Safari : partiel selon versionS1, S3non testénon testénon testénon testéà définir
Matroska (MKV) progressifPas un format web officiellement supporté ; considéré non livrable tel quelS1non testénon testénon testénon testéà définir
HLS fMP4 via MSE (hls.js)Chrome, Firefox, Edge via MSES2, S4non testénon testénon testé—à définir
HLS fMP4 natifSafariS4———non testéà définir
Sous-titres WebVTT (<track> ou lecteur)Les quatre navigateursS1non testénon testénon testénon testéà définir

3. Vidéo

Codec et varianteConteneurAttente documentée (à vérifier)SourceChromeFirefoxEdgeSafariNatifs
H.264 High, ≤ 4.1, 8 bits, 4:2:0, ≤ 1080pMP4, fMP4Large supportS1non testénon testénon testénon testéà définir
H.264 High, 5.1, 8 bits, 2160pMP4, fMP4Dépend du décodeur ou du matérielS1, S3non testénon testénon testénon testéà définir
H.264 High 10 (10 bits)MP4Support web faible ou absentS1non testénon testénon testénon testéà définir
HEVC Main, 8 bitsMP4, fMP4Safari oui ; Chrome et Edge selon OS et matériel ; Firefox limitéS3non testénon testénon testénon testéà définir
HEVC Main10, SDRMP4, fMP4Idem, dépend du matérielS3non testénon testénon testénon testéà définir
HEVC Main10, HDR10fMP4Dépend du matériel, de l'OS et de l'écran ; rendu HDR non garantiS3non testénon testénon testénon testéà définir
HEVC Main10, HLGfMP4IdemS3non testénon testénon testénon testéà définir
Dolby Vision profil 5fMP4Navigateurs : principalement Safari sur matériel Apple, à vérifierS3, S4non testénon testénon testénon testéà définir
Dolby Vision profil 8.1 (couche de base HDR10)fMP4Lecture de la couche de base si DV non géré, à vérifierS3, S4non testénon testénon testénon testéà définir
VP9 profil 0, 8 bitsWebM, fMP4Chrome, Firefox, Edge ; Safari selon versionS1non testénon testénon testénon testéà définir
VP9 profil 2, 10 bits HDRWebMDépend du matérielS1, S3non testénon testénon testénon testéà définir
AV1 Main, 8 bitsMP4, WebM, fMP4Chrome, Firefox, Edge ; Safari si décodage matérielS1, S3non testénon testénon testénon testéà définir
AV1 Main, 10 bits HDR10MP4, fMP4Dépend du matérielS1, S3non testénon testénon testénon testéà définir
MPEG-2, VC-1, MPEG-4 Part 2—Non supportés par les navigateurs : transcodage attenduS1non testénon testénon testénon testéà définir
Entrelacé (toute variante)—Désentrelacement serveur attendu—non testénon testénon testénon testéà définir

4. Audio

Codec et varianteAttente documentée (à vérifier)SourceChromeFirefoxEdgeSafariNatifs
AAC-LC stéréoLarge supportS1non testénon testénon testénon testéà définir
AAC-LC 5.1Décodage probable ; sortie multicanal dépend de l'OS et du périphériqueS1non testénon testénon testénon testéà définir
HE-AAC v1/v2VariableS1non testénon testénon testénon testéà définir
Opus stéréo / multicanalChrome, Firefox, Edge ; Safari selon conteneur et versionS1non testénon testénon testénon testéà définir
FLACVariable selon conteneurS1non testénon testénon testénon testéà définir
MP3Large supportS1non testénon testénon testénon testéà définir
AC-3 / E-AC-3 (décodage)Safari et parfois Edge selon OS ; Chrome et Firefox généralement nonS3non testénon testénon testénon testéà définir
E-AC-3 + Atmos (JOC)Pas de garantie de rendu objet depuis un navigateurS3non testénon testénon testénon testéà définir
DTS, DTS-HD MA, TrueHDNon supportés par les navigateurs : transcodage attenduS1non testénon testénon testénon testéà définir
Passthrough bitstream (tous formats)Non promis depuis un navigateur—non testénon testénon testénon testéà définir

5. Sous-titres

Format sourceTraitement prévuAttente documentée (à vérifier)ChromeFirefoxEdgeSafariNatifs
SubRip (SRT) interne ou externeConversion WebVTTWebVTT rendu partoutnon testénon testénon testénon testéà définir
WebVTTCopieIdemnon testénon testénon testénon testéà définir
ASS/SSAWebVTT avec perte de style, ou incrustationPas de rendu ASS natifnon testénon testénon testénon testéà définir
PGS (Blu-ray), VobSub, DVBIncrustationPas de rendu bitmap natifnon testénon testénon testénon testéà définir
Sous-titres CEA-608/708 intégrésÀ étudierÀ vérifiernon testénon testénon testénon testéà définir

6. Accélération matérielle serveur

Matrice distincte, remplie par les tests matériels (phase 5). Les colonnes sont des couples (API, pilote, GPU) précis. Les lignes sont décodage, encodage, scaling et tone mapping par codec et format.

ChaîneLogiciel (CPU)VA-API IntelQSV IntelNVENC/NVDECAMD
Toutesnon testénon testénon testénon testénon testé

Une détection de périphérique seule ne remplit aucune case (niveau detected, voir Transcoding Engine §4).

7. Mise à jour

  1. Une case ne change que par un commit qui ajoute ou référence le rapport du banc.
  2. Le profil client versionné (web-chromium@N…) est incrémenté dans le même changement.
  3. Un résultat validated qui régresse sur une nouvelle version de navigateur repasse en experimental avec une note. On ne masque pas la régression.

Source : docs/media/compatibility-matrix.md, dans le dépôt de ProtoFlix.