Wat “yuv420p” betekent, deel voor deel
- Y = luma (helderheid); U en V = chroma (kleurverschil ten opzichte van blauw en rood).
- 4:2:0 = kleur wordt opgeslagen op halve breedte en halve hoogte: één U- en één V-sample per blok van 2×2 pixels.
- p = planair: eerst alle Y-waarden, dan alle U en dan alle V, in drie aparte vlakken.
- Geen getal aan het eind betekent 8 bits per sample;
yuv420p10leis de 10-bitversie (little-endian).
Eén frame van 1920×1080 is 2.073.600 bytes Y plus elk 518.400 bytes U en V: 3.110.400 bytes, oftewel 1,5 byte (12 bits) per pixel, de helft van 24-bit RGB.
Wat Is Chroma Subsampling?
Digitale video slaat kleurinformatie op in de YUV-kleurruimte, die helderheid (Y — luma) scheidt van kleur (U en V — chroma). Deze scheiding maakt gebruik van een belangrijk feit over menselijke waarneming: onze ogen zijn veel gevoeliger voor helderheidsdetail dan voor kleurdetail.
Chroma subsampling benut dit door volledige helderheidsresolutie op te slaan maar verminderde kleurresolutie. Het resultaat: aanzienlijk kleinere bestanden zonder merkbaar kwaliteitsverlies voor het menselijk oog.
YUV420p — De Universele Standaard
YUV420p (4:2:0 chroma subsampling, planair) is het pixelformaat dat vrijwel alle consumptievideo gebruikt:
- Hoe het werkt: Voor elk 2×2-blok pixels (4 pixels) wordt volledige helderheid (Y) opgeslagen voor alle 4 pixels, maar slechts 1 set kleurwaarden (U+V) wordt gedeeld over het blok
- Bits per pixel: 12 (vs. 24 voor volledig RGB)
- Gegevensreductie: 50% kleiner dan ongecomprimeerde full-color video
- Compatibiliteit: Ondersteund door elke hardwaredecoder, browser, telefoon, tv en streamingplatform
YUV420p is wat Netflix, YouTube, Blu-ray, HDTV en elke streamingdienst gebruikt. Het is geen compromis — het is de standaard omdat de kwaliteitsafweging onzichtbaar is voor menselijke waarneming.
YUV422p — Broadcast & Professioneel Gebruik
- Hoe het werkt: Kleurresolutie is gehalveerd horizontaal maar verticaal behouden (2 kleursamples per rij van 4 pixels)
- Bits per pixel: 16
- Gebruikt in: Broadcast-televisie, professionele camera's (ProRes 422), kleurgraderingsworkflows
- Waarom: Betere kleurnauwkeurigheid voor chroma keying (green screen) en kleurcorrectie. Belangrijk voor professionele postproductie.
YUV444p — Volledige Kleur
- Hoe het werkt: Geen subsampling — elke pixel krijgt zijn eigen kleurwaarden
- Bits per pixel: 24
- Gebruikt in: Schermopnames, gameopnames, tekst-intensieve video, professionele bewerkingsmasters
- Het probleem: De meeste hardwaredecoders ondersteunen YUV444p niet
De YUV444p-Compatibiliteitsvalkuil
Dit is het meest voorkomende pixelformaatprobleem dat gebruikers tegenkomen. Dit is wat er gebeurt:
- Je neemt je scherm op met OBS of een andere opnametool, of maakt met FFmpeg een video van PNG-screenshots
- Het bestand wordt YUV444p: je koos in OBS het kleurformaat I444 voor scherpere tekst, of FFmpeg behield de volledige kleur van RGB-invoer omdat er geen
-pix_fmtwas ingesteld - De video speelt perfect af op je pc (softwaredecoding)
- Je stuurt het naar iemand of probeert het op je telefoon af te spelen — het speelt niet af
De reden: telefoons, tablets, smart-tv's en de meeste browsers gebruiken hardwaredecoders die alleen YUV420p ondersteunen. Wanneer ze YUV444p tegenkomen, falen ze geluidloos (zwart scherm), tonen beschadigde kleuren of geven een foutmelding. In H.264 vereist YUV444p bovendien het profiel High 4:4:4 Predictive, dat we behandelen in H.264-profielen uitgelegd.
Veelvoorkomende symptomen: "Formaat niet ondersteund" op iPhone, groen/paarse video op Android, zwart scherm op smart-tv, uploadfouten op sommige platforms. Als je H.264-video deze problemen heeft, controleer dan eerst het pixelformaat.
Vergelijking Pixelformaten
| Formaat | Kleurresolutie | Bits/Pixel | Apparaatondersteuning | Gebruiksgeval |
|---|---|---|---|---|
| YUV420p | 1/4 kleur | 12 | Universeel | Alles: web, mobiel, tv |
| YUV422p | 1/2 kleur | 16 | Professionele apparatuur | Broadcast, kleurgradering |
| YUV444p | Volledige kleur | 24 | Alleen pc-software | Schermopname, bewerking |
De Oplossing: Converteer naar YUV420p
Als je video niet afspeelt op telefoons of smart-tv's, is converteren naar YUV420p de oplossing. Het FFmpeg-commando is eenvoudig:
ffmpeg -i input.mkv -c:v libx264 -crf 23 -pix_fmt yuv420p -c:a aac output.mp4
De vlag -pix_fmt yuv420p dwingt de uitvoer om 4:2:0 chroma subsampling te gebruiken.
Onze Converter Regelt Dit Automatisch
Onze online converter geeft altijd YUV420p uit ongeacht het invoer-pixelformaat. Of je MKV nu YUV420p, YUV422p of YUV444p gebruikt, de uitvoer-MP4 is universeel compatibel met alle apparaten en platforms.
Voor schermopnames en gameopnames betekent dit dat je je YUV444p MKV-bestand kunt uploaden en een correct geformatteerde MP4 terugkrijgt die overal afspeelt — telefoons, tv's, browsers en socialemediaplatforms. Controleer vóór het posten ook de videoformaten voor YouTube, Instagram en TikTok.
Kwaliteitsimpact: Converteren van YUV444p naar YUV420p vermindert technisch gezien de kleurresolutie. Maar voor natuurlijke video-inhoud (films, vlogs, camerabeelden) is het verschil onzichtbaar. Voor schermopnames met gekleurde tekst kan er een uiterst subtiele kleurrand bij tekstranden zijn — niet waarneembaar bij normaal bekijken.
yuv420p vs NV12, YUY2 en RGB
| Formaat | Chroma | Indeling | Bits per pixel | Waar je het tegenkomt |
|---|---|---|---|---|
| yuv420p (I420) | 4:2:0 | 3 vlakken: Y, U, V | 12 | Software-encoders en -decoders, H.264- en HEVC-bestanden |
| NV12 | 4:2:0 | Y-vlak + één verweven UV-vlak | 12 | Hardwaredecoders en GPU's (dezelfde data als yuv420p, andere indeling) |
| NV21 | 4:2:0 | Y-vlak + verweven VU-vlak | 12 | Camerapreviews op Android |
| YUY2 (yuyv422) | 4:2:2 | Packed: Y U Y V | 16 | USB-webcams, capturekaarten |
| RGB24 | Geen (volledige kleur) | Packed: R G B | 24 | Screenshots, afbeeldingen, graphics |
Controleer een bestand met ffprobe -v error -select_streams v:0 -show_entries stream=pix_fmt -of csv=p=0 input.mp4 en toon alle formaten met ffmpeg -pix_fmts. Stopt FFmpeg met “width not divisible by 2”, voeg dan -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" toe: 4:2:0 vereist even afmetingen. Onze converter past precies dat filter toe vóór het coderen.