Encodage de base

Compression de la vidéo de base

Cette section traite des options de base pour l'encodage VP9, y compris la taille de l'image, le contrôle de débit et la qualité de base.

Si vous ne connaissez pas encore la compression vidéo, vous pouvez regarder cette vidéo pour en savoir plus sur cette fonctionnalité et son fonctionnement.

Un encodage simple

La commande FFmpeg suivante convertit un fichier d'entrée en vidéo VP9 avec du contenu audio Opus. Il s'agit de l'encodage le plus simple qui utilise les paramètres par défaut.

ffmpeg -i tears_of_steel_1080p.webm -c:v libvpx-vp9 -c:a libopus output.webm

Cet encodage FFmpeg utilise les paramètres de ligne de commande suivants:

FFmpeg
-i <filename> Spécifie le nom de fichier d'entrée
-c:v libvpx-vp9 Demande à FFmpeg de créer une vidéo VP9
-c:a libopus Demande à FFmpeg de créer un fichier audio Opus
output.webm Spécifie le nom du fichier de sortie

FFmpeg déduit le type de fichier à créer à partir du nom de fichier de sortie que vous utilisez. Dans cet exemple, FFmpeg va générer un fichier WebM, car nous avons demandé output.webm.

Résolution

Chaque vidéo a une taille d'image (indiquant la largeur et la hauteur en pixels). Le paramètre de ligne de commande FFmpeg suivant permet de contrôler la taille de l'image de sortie vidéo pour l'encodage VP9:

FFmpeg
-vf scale=<width>x<height> Largeur et hauteur du cadre

Par exemple, la commande FFmpeg suivante renverra une vidéo WebM de 640 x 480 sur WebM.

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -c:v libvpx-vp9 -c:a libopus output.webm

Les résolutions inférieures sont de qualité inférieure, mais les résolutions supérieures nécessitent plus de bande passante, plus de puissance de traitement au décodage, et peuvent ne pas être compatibles avec les appareils plus anciens. Pour le format VP9, le format 640 x 480 est considéré comme sûr pour une large gamme d'appareils mobiles et Web.

Débit (débit)

Le mode VP9 est compatible avec plusieurs modes de débit:

mode
Quantificateur permanent (Q) Permet de spécifier une valeur de quantificateur fixe. Le débit varie.
Qualité limitée Permet de définir un niveau de qualité maximal. La qualité peut varier en fonction des paramètres de débit
Débit variable (VBR) Équilibre entre la qualité et le débit au fil du temps tout en respectant les contraintes de débit
Débit constant (CBR) Essayer de garder le débit plutôt constant alors que la qualité varie

Le mode CQ est recommandé pour les vidéos basées sur des fichiers (plutôt que pour la diffusion en direct). Les paramètres de ligne de commande FFmpeg suivants sont utilisés en mode CQ:

FFmpeg
-b:v <arg> Débit cible défini (par exemple, 500 000).
-minrate <arg>
-maxrate <arg>
Définit le débit minimal et maximal.
-crf <arg> Définit le niveau de qualité maximal. Les valeurs valides sont comprises entre 0 et 63, et les valeurs inférieures sont de meilleure qualité.

Par exemple, la commande FFmpeg suivante crée un fichier vidéo de 640 x 480 pixels de qualité moyenne en mode CQ, avec un débit moyen de 750 Kbit/s et une qualité maximale limitée à 33.

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -b:v 750k -crf 33 -c:v libvpx-vp9 -c:a libopus output.webm

Le débit varie en fonction de la qualité souhaitée et de la résolution de la vidéo. Un ensemble complet de recommandations concernant les débits à différentes résolutions est disponible sur cette page.

Paramètres de qualité et de vitesse

La compression de la vidéo est un compromis entre la qualité de la sortie et la durée de sa création. En règle générale, vous pouvez toujours obtenir une qualité supérieure en accordant plus de temps à encoder, mais le temps requis pour obtenir la meilleure qualité possible peut être irréalisable.

Le VP9 propose plusieurs paramètres permettant d'équilibrer qualité et vitesse:

  • Le paramètre de qualité indique à l'encodeur de procéder à la compression de la vidéo. Les modes disponibles sont meilleurs, en temps réel et de bonne qualité.

  • Les paramètres de threads permettent à l'encodeur d'encoder plusieurs vidéos grâce à plusieurs threads de processeur. Ces paramètres peuvent légèrement réduire la qualité, mais peuvent améliorer considérablement la vitesse d'encodage et de décodage.

Ces deux types de paramètres sont contrôlés par plusieurs paramètres de ligne de commande:

FFmpeg
-threads Indique le nombre de fils de discussion à utiliser lors de l'encodage.
-quality Peut être défini sur good, best ou realtime
-speed Ce paramètre a plusieurs significations selon que la qualité est définie sur good ou realtime. Les paramètres de vitesse 0-4 s'appliquent à la VoD dans good et best, 0 étant la meilleure qualité et 4 la plus basse. Realtime valeurs valides sont 5-8 ; plus les valeurs sont faibles, plus la qualité est élevée
-tile-columns La mosaïque divise la vidéo en régions rectangulaires, ce qui permet de procéder à plusieurs threads pour l'encodage et le décodage. Le nombre de tuiles est toujours de deux. 0 = 1 tuile, 1=2, 2=4, 3=8, 4=16, 5=32.

La commande FFmpeg suivante crée un fichier de 640 x 480 avec une qualité définie sur 'good' et une vitesse définie sur 0 (haute qualité):

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -b:v 750k -quality good -speed 0 -crf 33 -c:v libvpx-vp9 -c:a libopus \
  output.webm

Vos paramètres de qualité et de débit peuvent varier en fonction de la résolution et de la puissance de traitement disponible. Vous trouverez un ensemble complet de recommandations dans la section suivante.