Conteneurs et codecs

Derek Herman
Derek Herman
Joe Medley
Joe Medley

Pour prendre en charge plusieurs navigateurs, vous devez utiliser FFmpeg pour convertir votre fichier .mov en deux conteneurs différents : un conteneur MP4 et un conteneur WebM. En pratique, vous spécifieriez probablement un codec en même temps. Pour l'instant, nous laissons FFmpeg utiliser ses valeurs par défaut.

Si ces concepts vous sont nouveaux, consultez la section Principes de base des fichiers multimédias avant de continuer. En outre, si FFmpeg n'est pas installé, consultez la section Principes de base des applications multimédias pour le configurer avec Docker.

Nous utilisons l'installation Docker suggérée et le fichier glocken.mov de la section Préparer les fichiers multimédias pour le Web ajouté dans le répertoire media. Nous avons utilisé la version 4.3.2 de FFmpeg pour toutes les commandes de cette section.

Conteneurs

Tout d'abord, nous devons créer nos deux conteneurs à partir du fichier .mov avec les extensions de fichier .mp4 et .webm, avec un flux audio et vidéo dans le fichier. Si vous ne connaissez pas leurs différences, consultez la page Principes de base des fichiers multimédias pour en savoir plus sur les conteneurs et les flux.

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

WebM prend plus de temps à créer que MP4. Ce n'est pas surprenant lorsque vous examinez les résultats. Bien que le format MP4 se compresse à environ 83% de la taille du fichier d'origine, WebM est réduit à 78% de la taille du fichier d'origine, mais il peut être beaucoup plus petit. Vos résultats peuvent varier. Il est important de noter que FFmpeg 4.2.2 définit le débit vidéo par défaut sur 200k et que dans 4.3.2, il ne définit pas de débit par défaut. La vidéo n'est donc plus une simple4% de l'original. Vous pouvez le vérifier vous-même à l'aide de la commande bash ls -a dans le dossier où se trouvent vos fichiers multimédias.

Exemple :

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

Pour obtenir un fichier minuscule, procédez comme suit :

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

Vérifiez votre travail

Pour vérifier vos résultats, utilisez FFmpeg et Shaka Packager, comme indiqué dans la section Principes de base des applications multimédias :

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

Codecs

Ensuite, le codec. Comme indiqué dans la section Principes de base des fichiers multimédias, un codec n'est pas la même chose qu'un conteneur (type de fichier). Deux fichiers du même type de conteneur peuvent contenir des données compressées à l'aide de différents codecs. Par exemple, le format WebM permet d'encoder l'audio à l'aide de Vorbis ou d'Opus. Pour modifier le codec, nous utilisons FFmpeg. Par exemple, cette commande génère un fichier .mkv avec un codec audio vorbis et un codec vidéo av1.

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

Dans cet exemple, l'indicateur -c:a et -c:v permettent de spécifier les codecs audio et vidéo, respectivement.

La page Conversion multimédia liste les commandes nécessaires pour convertir les codecs. Les tableaux ci-dessous récapitulent les bibliothèques utilisées dans FFmpeg pour effectuer les conversions de codecs pour les fichiers WebM et MP4. Il s'agit des formats recommandés pour DASH et HLS, respectivement.

Vidéo

Codec Extension Bibliothèque
av1 WebM et mkv libaom-av1
h264 MP4 libx264
vp9 WebM libvpx-vp9

Audio

Codec Extension Bibliothèque
aac MP4 aac
opus WebM libopus
Vorbis WebM libvorbis

Nous allons maintenant vous montrer comment modifier le bitrate de vos fichiers nouvellement créés.