Modes d'encodage VP9
Qualité constante (CRF + b:v 0)
Notre approche recommandée pour la conversion de fichiers. Fixez un objectif de qualité avec CRF et laissez l'encodeur décider du bitrate image par image. Le flag -b:v 0 est requis pour activer le mode CRF pur (sinon FFmpeg applique un plafond de bitrate par défaut).
Commande : ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
Qualité contrainte (CRF + plafond de bitrate)
Combine un objectif de qualité CRF avec un bitrate maximum. Utile pour le streaming où il faut rester dans les limites de bande passante tout en préservant la qualité.
Commande : ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 2M output.webm
Bitrate variable (VBR)
Vise un bitrate moyen spécifique. Utilisé pour la diffusion et le streaming où la bande passante doit être prévisible.
Commande : ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 2M output.webm
Valeurs CRF pour VP9
L'échelle CRF de VP9 va de 0 (sans perte) à 63 (qualité la pire). Plus le nombre est élevé, plus la compression est forte et la qualité basse.
| Plage CRF | Qualité | Cas d'usage |
|---|---|---|
| 0 | Sans perte | Archivage (fichiers énormes) |
| 15–20 | Haute qualité | Copies master, diffusion haute qualité |
| 30–35 | Bon équilibre (par défaut) | Diffusion web, usage général |
| 40–50 | Qualité inférieure | Aperçus, miniatures |
| 50–63 | Qualité médiocre | Rarement utile |
Notre valeur par défaut est CRF 30, qui produit une qualité visuelle à peu près équivalente à H.264 CRF 23, avec des fichiers 30 à 50 % plus petits.
Paramètres de vitesse (cpu-used)
Le paramètre cpu-used contrôle le compromis entre vitesse d'encodage et efficacité de compression. Plage : 0 à 8.
| cpu-used | Vitesse relative | Pénalité de compression | Cas d'usage |
|---|---|---|---|
| 0 | 1x (référence) | Aucune (la meilleure) | Traitement par lots hors ligne |
| 1 | ~2x | ~2 % | Encodage haute qualité |
| 3 | ~8x | ~5 % | Convertisseurs en ligne (notre réglage) |
| 5 | ~15x | ~10 % | Aperçus rapides |
| 8 | ~30x | ~20 % | Temps réel / latence minimale |
Multithreading (row-mt)
Le flag -row-mt 1 active le multithreading par lignes, qui peut fournir une accélération de 2 à 4x sur les systèmes multi-cœurs sans impact sur la qualité. C'est un gain de vitesse pur, et il doit toujours être activé.
Audio : paramètres Opus
WebM associe la vidéo VP9 à l'audio Opus, supérieur à AAC à bitrates équivalents :
- 64 kbps : bon pour la parole et les podcasts
- 128 kbps : transparent pour la plupart des contenus (notre valeur par défaut)
- 192 kbps : haute qualité pour la musique
Two-pass vs single-pass
Le CRF single-pass (notre approche) produit le meilleur rapport qualité/taille pour la conversion de fichiers. L'encodeur ajuste le bitrate image par image selon la complexité, ce qui donne la meilleure qualité possible pour le CRF visé.
L'encodage two-pass n'est nécessaire que lorsque vous devez atteindre un bitrate cible précis (streaming, diffusion). La première passe analyse le contenu, la seconde encode avec une allocation de bits optimale.
Le pipeline VP9 de notre convertisseur
La commande FFmpeg complète utilisée par notre convertisseur :
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -cpu-used 3 -row-mt 1 -c:a libopus -b:a 128k output.webm
Flag par flag :
-c:v libvpx-vp9— utiliser le codec vidéo VP9-crf 30— objectif de qualité (équivalent à H.264 CRF 23)-b:v 0— mode CRF pur, pas de plafond de bitrate-cpu-used 3— vitesse équilibrée pour la conversion en ligne-row-mt 1— multithreading par lignes pour un encodage plus rapide-c:a libopus— codec audio Opus-b:a 128k— qualité audio transparente
Paramètres recommandés par Google selon la résolution
| Résolution | CRF suggéré | Bitrate cible (VBR) |
|---|---|---|
| 360p | 36–40 | 200–400 kbps |
| 480p | 33–36 | 500–900 kbps |
| 720p | 30–33 | 1–2 Mbps |
| 1080p | 28–32 | 2–4 Mbps |
| 2160p (4K) | 25–30 | 8–16 Mbps |