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 ne vous sont pas familiers, nous vous recommandons de lire les principes de base des fichiers multimédias avant d'aller plus loin. De plus, si vous n'avez pas installé FFmpeg, consultez la section Principes de base des applications multimédias pour le configurer avec Docker.
Nous utilisons la suggestion d'installation Docker et le fichier glocken.mov de la page 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 les deux conteneurs à partir du fichier .mov
avec les extensions de fichier .mp4
et .webm
, et contenant un flux audio et vidéo.
Consultez la section Principes de base des fichiers multimédias pour en savoir plus sur les conteneurs et les flux si vous ne savez pas les différences entre eux.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM prend plus de temps que le format MP4. Ce n'est pas surprenant au vu des résultats. Même si le format MP4 est compressé à environ 83%
de la taille du fichier d'origine, WebM est réduit à 78%
de la taille d'origine, mais peut être beaucoup plus petit.
Vos résultats varient. Il est important de souligner que FFmpeg 4.2.2
définit le débit vidéo par défaut sur 200k
et, dans 4.3.2
, aucun débit vidéo par défaut.
La vidéo n'est donc plus seulement4%
de l'original. Vous pouvez le constater 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 de petite taille, 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
Vient 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 codecs différents. Le format WebM, par exemple, permet d'encoder du contenu audio à l'aide de Vorbis ou Opus. Pour changer 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'option -c:a
et l'option -c:v
permettent de spécifier respectivement les codecs audio et vidéo.
La page Conversion de supports répertorie les commandes requises pour convertir les codecs. Les tableaux ci-dessous récapitulent les bibliothèques utilisées dans FFmpeg pour effectuer les conversions de codec pour les fichiers WebM et MP4. Voici les formats recommandés pour DASH et HLS respectivement.
Vidéo
Codec | Extension | Bibliothèque |
---|---|---|
av1 | WebM, 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 débit des fichiers que vous venez de créer.