What “yuv420p” Means, Part by Part
- Y = luma (brightness); U and V = chroma (blue-difference and red-difference color).
- 4:2:0 = color is stored at half width and half height: one U and one V sample per 2×2 block of pixels.
- p = planar: all Y values first, then all U, then all V, in three separate planes.
- No number at the end means 8 bits per sample;
yuv420p10leis the 10-bit (little-endian) version.
One 1920×1080 frame is 2,073,600 bytes of Y plus 518,400 bytes each of U and V: 3,110,400 bytes, or 1.5 bytes (12 bits) per pixel, half of 24-bit RGB.
What Is Chroma Subsampling?
Digital video stores color information in the YUV color space, which separates brightness (Y — luma) from color (U and V — chroma). This separation exploits a key fact about human vision: our eyes are far more sensitive to brightness detail than to color detail.
Chroma subsampling takes advantage of this by storing full-resolution brightness but reduced-resolution color. The result: significantly smaller files with no perceptible quality loss to the human eye.
YUV420p — The Universal Standard
YUV420p (4:2:0 chroma subsampling, planar) is the pixel format used by virtually all consumer video:
- How it works: For every 2×2 block of pixels (4 pixels), full brightness (Y) is stored for all 4 pixels, but only 1 set of color (U+V) values is shared across the block
- Bits per pixel: 12 (vs. 24 for full-color RGB)
- Data reduction: 50% smaller than uncompressed full-color video
- Compatibility: Supported by every hardware decoder, browser, phone, TV, and streaming platform
YUV420p is what Netflix, YouTube, Blu-ray, HDTV, and every streaming service uses. It's not a compromise — it's the standard because the quality trade-off is invisible to human perception.
YUV422p — Broadcast & Professional Use
- How it works: Color resolution is halved horizontally but preserved vertically (2 color samples per 4-pixel row)
- Bits per pixel: 16
- Used in: Broadcast television, professional cameras (ProRes 422), color grading workflows
- Why: Better color accuracy for chroma keying (green screen) and color correction. Important for professional post-production.
YUV444p — Full Color
- How it works: No subsampling at all — every pixel gets its own color values
- Bits per pixel: 24
- Used in: Screen recordings, game captures, text-heavy video, professional editing masters
- The problem: Most hardware decoders do not support YUV444p
The YUV444p Compatibility Trap
This is the most common pixel format problem users encounter. Here's what happens:
- You record your screen with OBS or another capture tool, or build a video from PNG screenshots with FFmpeg
- The file ends up as YUV444p: you picked OBS’s I444 color format for sharper text, or FFmpeg kept full color from RGB input because no
-pix_fmtwas set - The video plays perfectly on your PC (software decoding)
- You send it to someone or try to play it on your phone — it won't play
The reason: phones, tablets, smart TVs, and most browsers use hardware decoders that only support YUV420p. When they encounter YUV444p, they either fail silently (black screen), show corrupted colors, or display an error. In H.264, YUV444p also requires the High 4:4:4 Predictive profile, covered in H.264 profiles explained.
Common symptoms: "Format not supported" on iPhone, green/purple video on Android, black screen on smart TV, upload errors on some platforms. If your H.264 video has these issues, check the pixel format first.
Pixel Format Comparison
| Format | Color Resolution | Bits/Pixel | Device Support | Use Case |
|---|---|---|---|---|
| YUV420p | 1/4 color | 12 | Universal | Everything: web, mobile, TV |
| YUV422p | 1/2 color | 16 | Professional gear | Broadcast, color grading |
| YUV444p | Full color | 24 | PC software only | Screen recording, editing |
The Fix: Convert to YUV420p
If your video won't play on phones or smart TVs, converting to YUV420p is the solution. The FFmpeg command is straightforward:
ffmpeg -i input.mkv -c:v libx264 -crf 23 -pix_fmt yuv420p -c:a aac output.mp4
The -pix_fmt yuv420p flag forces the output to use 4:2:0 chroma subsampling.
Our Converter Handles This Automatically
Our online converter always outputs YUV420p regardless of the input pixel format. Whether your MKV uses YUV420p, YUV422p, or YUV444p, the output MP4 will be universally compatible with all devices and platforms.
For screen recordings and game captures, this means you can upload your YUV444p MKV file and get back a properly formatted MP4 that plays everywhere — phones, TVs, browsers, and social media platforms. Before posting, also check the video sizes for YouTube, Instagram and TikTok.
Quality impact: Converting from YUV444p to YUV420p technically reduces color resolution. But for natural video content (movies, vlogs, camera footage), the difference is invisible. For screen recordings with colored text, there may be extremely subtle color fringing at text edges — imperceptible during normal viewing.
yuv420p vs NV12, YUY2 and RGB
| Format | Chroma | Layout | Bits per pixel | Where you see it |
|---|---|---|---|---|
| yuv420p (I420) | 4:2:0 | 3 planes: Y, U, V | 12 | Software encoders and decoders, H.264 and HEVC files |
| NV12 | 4:2:0 | Y plane + one interleaved UV plane | 12 | Hardware decoders and GPUs (same data as yuv420p, different layout) |
| NV21 | 4:2:0 | Y plane + interleaved VU plane | 12 | Android camera previews |
| YUY2 (yuyv422) | 4:2:2 | Packed: Y U Y V | 16 | USB webcams, capture cards |
| RGB24 | None (full color) | Packed: R G B | 24 | Screenshots, images, graphics |
Check a file with ffprobe -v error -select_streams v:0 -show_entries stream=pix_fmt -of csv=p=0 input.mp4, and list every format with ffmpeg -pix_fmts. If FFmpeg stops with “width not divisible by 2”, add -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2": 4:2:0 needs even dimensions. Our converter applies exactly that filter before encoding.