The chroma-subsampling alphabet soup
A pixel format string like yuv420p10le packs four pieces of information:
- yuv — color space (vs
rgb). - 420 — chroma subsampling. 4:4:4 = full color, 4:2:2 = half horizontal chroma, 4:2:0 = quarter chroma (¼ the chroma data of 4:4:4).
- p — planar layout (separate Y, U, V planes).
- 10le — 10-bit little-endian (vs the default 8-bit).
What you'll actually see
yuv420p— 8-bit 4:2:0. The H.264 web/mobile default. Use it.yuv420p10le— 10-bit 4:2:0. HEVC HDR, finer gradients, slight quality bump.yuv422p10le— 10-bit 4:2:2. ProRes 422 default.yuva444p10le— 10-bit 4:4:4 with alpha. ProRes 4444.
The trap
If you decode a 4:2:0 source and re-encode without specifying -pix_fmt, FFmpeg picks the encoder's preferred format. libx264 will sometimes emit 4:4:4 by accident if the source was unusual, and that file won't play on iPhone, Safari, or most TVs. Always explicitly set -pix_fmt yuv420p for compatibility outputs.