VP9-encoderingsmodi
Constante kwaliteit (CRF + b:v 0)
Onze aanbevolen aanpak voor bestandsconversie. Stel een kwaliteitsdoel in met CRF en laat de encoder de bitrate per frame bepalen. De flag -b:v 0 is vereist om de zuivere CRF-modus in te schakelen (anders past FFmpeg een standaard bitratecap toe).
Commando: ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
Beperkte kwaliteit (CRF + bitratecap)
Combineert CRF-kwaliteitsdoel met een maximale bitrate. Handig voor streaming, waarbij je binnen bandbreedtelimieten moet blijven en de kwaliteit moet behouden.
Commando: ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 2M output.webm
Variabele bitrate (VBR)
Mikt op een specifieke gemiddelde bitrate. Gebruikt bij broadcast en streaming, waar de bandbreedte voorspelbaar moet zijn.
Commando: ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 2M output.webm
CRF-waarden voor VP9
De CRF-schaal van VP9 loopt van 0 (lossless) tot 63 (slechtste kwaliteit). Hogere getallen betekenen meer compressie en lagere kwaliteit.
| CRF-bereik | Kwaliteit | Toepassing |
|---|---|---|
| 0 | Lossless | Archivering (enorme bestanden) |
| 15–20 | Hoge kwaliteit | Master-kopieën, hoogwaardige levering |
| 30–35 | Goede balans (standaard) | Weblevering, algemeen gebruik |
| 40–50 | Lagere kwaliteit | Voorbeelden, thumbnails |
| 50–63 | Slechte kwaliteit | Zelden nuttig |
Onze standaard is CRF 30, wat ruwweg dezelfde visuele kwaliteit oplevert als H.264 CRF 23 met 30 tot 50% kleinere bestanden.
Snelheidsinstellingen (cpu-used)
De parameter cpu-used bepaalt de verhouding tussen encoderingssnelheid en compressie-efficiëntie. Bereik: 0 tot 8.
| cpu-used | Relatieve snelheid | Compressieverlies | Toepassing |
|---|---|---|---|
| 0 | 1x (basislijn) | Geen (beste) | Offline batchverwerking |
| 1 | ~2x | ~2% | Hoogwaardige encodering |
| 3 | ~8x | ~5% | Online converters (onze instelling) |
| 5 | ~15x | ~10% | Snelle voorbeelden |
| 8 | ~30x | ~20% | Realtime / laagste latentie |
Multithreading (row-mt)
De flag -row-mt 1 schakelt row-based multithreading in, wat op multicore-systemen een versnelling van 2 tot 4x kan opleveren zonder kwaliteitsverlies. Pure snelheidswinst – deze moet altijd aan staan.
Audio: Opus-instellingen
WebM combineert VP9-video met Opus-audio, dat superieur is aan AAC bij gelijke bitrates:
- 64 kbps: goed voor spraak en podcasts
- 128 kbps: transparant voor de meeste content (onze standaard)
- 192 kbps: hoge kwaliteit voor muziek
Two-pass vs. single-pass
Single-pass CRF (onze aanpak) levert de optimale verhouding kwaliteit/grootte op bij bestandsconversie. De encoder past de bitrate per frame aan op basis van complexiteit, wat de best mogelijke kwaliteit bij de gekozen CRF oplevert.
Two-pass-encodering is alleen nodig wanneer je een specifieke doelbitrate moet halen (streaming, broadcast). De eerste pass analyseert de content, de tweede pass codeert met optimale bittoewijzing.
De VP9-pipeline van onze converter
Het volledige FFmpeg-commando dat onze converter gebruikt:
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 voor flag:
-c:v libvpx-vp9— VP9-videocodec gebruiken-crf 30— kwaliteitsdoel (equivalent aan H.264 CRF 23)-b:v 0— zuivere CRF-modus, geen bitratecap-cpu-used 3— gebalanceerde snelheid voor online conversie-row-mt 1— row-based multithreading voor snellere encodering-c:a libopus— Opus-audiocodec-b:a 128k— transparante audiokwaliteit
Door Google aanbevolen instellingen per resolutie
| Resolutie | Aanbevolen CRF | Doelbitrate (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 |