File Exchange

image thumbnail

Read YUV Videos and Extract the Frames

version (11.2 MB) by Mohammad Haghighat
Extract Y, U and V components of a YUV 4:2:0 video


Updated 05 Oct 2016

GitHub view license on GitHub

You can find an example on how to use the code in "example.m".

YUVREAD returns the Y, U and V components of a video in separate matrices. Luma channel (Y) contains grayscale images for each frame. Chroma channels (U & V) have a lower sampling rate than the luma channel.

YUVREAD is able to read any common intermediate format with 4:2:0 chroma subsampling. You just need to enter the correct width and height information for the specific format:

Format Video Resolution (width x height)
SQCIF 128 × 96
QCIF 176 × 144
SCIF 256 x 192
SIF(525) 352 x 240
CIF/SIF(625) 352 × 288
4SIF(525) 704 x 480
4CIF/4SIF(625) 704 × 576
16CIF 1408 × 1152
DCIF 528 × 384
A notation called the "A:B:C" notation is used to describe how often U
and V are sampled relative to Y:
4:2:0 means 2:1 horizontal downsampling, with 2:1 vertical downsampling.

(C) Mohammad Haghighat, University of Miami

Cite As

Mohammad Haghighat (2019). Read YUV Videos and Extract the Frames (, GitHub. Retrieved .

Comments and Ratings (5)

Why I can not get correct RGB even using your own file. I resize the U and V channel equal to the Y and apply simpel YUV to RGB as describe on wikipedia. Can you include the code to convert it to RGB ?

how can i save every frame as an individual image without lossing any pixels ??

Mike Reno




MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux