Dans cet article, vous allez découvrir les principes de base des fichiers multimédias, tels que les concepts de conteneur, ainsi que quelques-uns des nombreux formats de codec disponibles que vous pouvez utiliser dans un flux. Abordez également des sujets tels que le streaming adaptatif, le débit et la résolution. Nous reviendrons plus en détail sur ces aspects dans les sections suivantes.
Diffuser des fichiers vidéo
Vous pensez peut-être que vous pouvez prendre un fichier brut d'une caméra et simplement l'importer sur le Web tel quel. En effet, des sites de streaming vidéo tels que YouTube ou Vimeo vous permettent de faire exactement cela, et même de proposer des fonctionnalités de diffusion en direct, généralement en vous connectant au port HDMI de votre caméra et en le traitant par le biais d'une carte de capture. Ces services simplifient considérablement le traitement et l'importation des vidéos, ce qui inclut la génération des nombreux fichiers et fichiers manifestes nécessaires pour le streaming adaptatif et les différentes résolutions. Sans compter les nombreuses autres exigences complexes et nuancées qui rendent l'auto-hébergement un peu fastidieux. Si vous vous souciez de l'expérience utilisateur sur votre site, la préparation et la diffusion d'une vidéo depuis votre propre site (probablement un serveur multimédia distinct) sont un peu plus compliquées que de simplement importer un fichier d'appareil photo brut.
Les fichiers vidéo sont disponibles dans de nombreux formats. Le format qui apparaît sur votre appareil photo est généralement un fichier .mov
ou un fichier .mp4
si vous disposez d'un bon appareil photo moderne sans miroir.
Toutefois, bien qu'un fichier .mov
soit adapté à l'enregistrement, au montage et à d'autres processus de post-production en début de production, sa taille ne convient pas au streaming sur le Web. De plus, la taille d'un fichier .mp4
brut en 4K va rendre la lecture de ce fichier sur mobile très prohibitive. Étant donné que les navigateurs acceptent différents formats de fichiers, vous devrez créer plusieurs fichiers optimisés et, éventuellement, un fichier manifeste si vous prévoyez d'accepter le streaming adaptatif. Avant de convertir des fichiers, vous devez comprendre
quelques bases à leur sujet et sur leurs caractéristiques.
Des conteneurs, des codecs et des flux ?
Le fichier que vous voyez dans l'interface système de votre système d'exploitation est un conteneur, identifié par une extension de fichier (.mp4
, .webm
, .ogg
, etc.). Le conteneur héberge un ou plusieurs flux. Un fichier multimédia peut avoir un nombre illimité de flux et de nombreux formats que nous n'allons pas aborder ici.
Les exemples de fichiers utilisés plus loin dans cette section contiennent deux flux au maximum: un flux audio et un flux vidéo. Les sous-titres et les données ne sont pas abordés dans cet article, entre autres. Dans certains cas, les flux audio et vidéo sont traités séparément. La plupart des fichiers que vous rencontrerez ne contiendront qu'un seul flux audio et un seul flux vidéo.
Dans les flux audio et vidéo, les données réelles sont compressées à l'aide d'un codec. Un codec, ou codeur/décodeur, est un format de compression pour les données vidéo ou audio. La distinction entre un conteneur et un codec est importante, car le contenu des fichiers possédant le même conteneur peut être encodé avec différents codecs.
L'image ci-dessous illustre cette structure. À gauche se trouve la structure de conteneur de base avec deux flux. À droite, vous trouverez les détails de cette structure pour un seul fichier WebM.
Les fichiers des conteneurs WebM peuvent être bien inférieurs à ceux d'autres formats, ce qui en fait un bon choix pour la diffusion en streaming sur les sites mobiles. Malheureusement, tous les navigateurs ne sont pas compatibles avec les conteneurs et codecs à jour. Par exemple, WebM a été créé spécifiquement pour le Web en tant qu'option Open Source de haute qualité, mais sa compatibilité n'est pas encore universelle. Safari en particulier, selon le document Can I use au moment de la rédaction de ce document, n'est pas compatible avec le format WebM pour les vidéos intégrées. Toutefois, WebM est partiellement compatible avec les codec VP8 et VP9 utilisés dans WebRTC. La meilleure solution est donc de fournir une vidéo de remplacement.
Formats de codec
De nombreux types de fichiers acceptent plusieurs codecs dans le même conteneur. La liste complète des codecs vidéo et codecs audio disponibles constituerait un site Web complet. Les liens que vous venez de fournir fournissent des listes pratiques de MDN sur les éléments utilisables sur le Web. Vous trouverez ci-dessous la liste des types de fichiers actuellement recommandés et les codecs qu'ils peuvent utiliser. Cliquez sur les liens des types de fichiers pour afficher les navigateurs compatibles.
File type | Codec vidéo | Codec audio |
---|---|---|
MP4 | AV1, AVC (H.264)*, VP9 | AAC |
WebM | AV1, VP9* | Vorbis, Opus |
* Indique le codec vidéo à privilégier.
Débit et résolution
Le débit correspond au nombre maximal de bits utilisés pour encoder une seconde d'un flux. Plus il y a de bits utilisés pour encoder une seconde de flux, plus le niveau de détail et de fidélité est élevé. Nous fournissons plus d'informations à ce sujet dans Bitrate.
La résolution correspond à la quantité d'informations dans une seule image de la vidéo, exprimée en nombre de pixels logiques dans chaque dimension. Pour en savoir plus sur ce concept, consultez la section Résolution.
La prochaine fois, dans la section Principes de base des applications multimédias, nous vous montrerons comment examiner ces caractéristiques à l'aide de deux outils de ligne de commande: Shaka Packager et FFmpeg.