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.