<p>If your question was</p>

<blockquote>
  <p>Where are these pixel formats defined?</p>
</blockquote>

<p>Go to <a href="http://ffmpeg.org/download.html" rel="noreferrer">http://ffmpeg.org/download.html</a> and download the source of ffmpeg. Then unpack it</p>

<pre><code>tar -xavf FILENAME.tar.*
</code></pre>

<p>and descend to the folder in the source code that is called <code>libavutil</code></p>

<pre><code>cd ffmpeg-*/libavutil/
</code></pre>

<p>and open the file <code>pixfmt.h</code> where you will find a description of all pixel formats. <strong>A few sample lines</strong></p>

<pre><code>AV_PIX_FMT_YUV420P,   ///&lt; planar YUV 4:2:0, 12bpp, (1 Cr &amp; Cb sample per 2x2 Y samples)          
AV_PIX_FMT_YUYV422,   ///&lt; packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
AV_PIX_FMT_RGB24,     ///&lt; packed RGB 8:8:8, 24bpp, RGBRGB...
AV_PIX_FMT_BGR24,     ///&lt; packed RGB 8:8:8, 24bpp, BGRBGR...
AV_PIX_FMT_YUV422P,   ///&lt; planar YUV 4:2:2, 16bpp, (1 Cr &amp; Cb sample per 2x1 Y samples)
</code></pre>

<p>Additionally you can read <a href="https://en.wikipedia.org/wiki/YUV" rel="noreferrer">https://en.wikipedia.org/wiki/YUV</a> and it’s cited sources and external links.</p>

CC BY-SA 3.0
2015-09-15T13:27:05.370Z
Or just visit https://ffmpeg.org/doxygen/trunk/pixfmt_8h_source.html
Gyan
CC BY-SA 3.0
2015-09-15T21:39:26.533Z
Or http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavutil/pixfmt.h;hb=HEAD
llogan
CC BY-SA 4.0
2021-10-27T21:22:07.077Z
Or https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/pixfmt.h
MrPotatoHead
CC BY-SA 3.0
2015-09-15T08:54:39.470Z
2015-09-15T08:54:39.470Z
erik
<p><code>ffmpeg -pix_fmts</code> lists many pixel formats. In my ffmpeg, there are 66 different pixel formats that start with <em>yuv</em>. A few of them are familiar to me (e.g., yuv422p), but most of them are not (e.g., yuva422p16be).</p>

<p>Where are these pixel formats defined?</p>

CC BY-SA 3.0
2015-09-11T23:29:55.183Z
Most are self describing. yuva422p16be YUV are luma and chroma planes. a is the alpha channel. 422 is the plan size descriptions, p means planer, 16be means 16 bits per pixel big endian format.
SlimSCSI
CC BY-SA 3.0
2015-09-12T03:32:41.567Z
Thanks @SlimSCSI. Do you know what the j stands for in yuvj440p?
Doug Richardson
CC BY-SA 3.0
2015-09-12T11:55:27.200Z
YUV420P uses the range 16 to 239 to describe luminance and chroma values, so values from 0 to 16 get mapped to the same output level, as do values 239-255. YUVJ420P uses the full range from 0 to 255. Not sure why it's J though.
stib
CC BY-SA 3.0
2015-09-12T16:53:37.313Z
In `libavutil/pixfmt.h`: `AV_PIX_FMT_YUVJ420P,  ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range`.
llogan
<ffmpeg><colorspace>
ffmpeg pixel format definitions
Doug Richardson
# ffmpeg pixel format definitions

(Asked by: username_0 on 2015-09-11)

`ffmpeg -pix_fmts` lists many pixel formats. In my ffmpeg, there are 66 different pixel formats that start with *yuv*. A few of them are familiar to me (e.g., yuv422p), but most of them are not (e.g., yuva422p16be).

Where are these pixel formats defined?

**Tags:** ffmpeg, colorspace

> **Comments:**
> **username_1**: Most are self describing. yuva422p16be YUV are luma and chroma planes. a is the alpha channel. 422 is the plan size descriptions, p means planer, 16be means 16 bits per pixel big endian format.  
> **username_0**: Thanks @username_1. Do you know what the j stands for in yuvj440p?  
> **username_2**: YUV420P uses the range 16 to 239 to describe luminance and chroma values, so values from 0 to 16 get mapped to the same output level, as do values 239-255. YUVJ420P uses the full range from 0 to 255. Not sure why it's J though.  
> **username_3**: In `libavutil/pixfmt.h`: `AV_PIX_FMT_YUVJ420P,  ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range`.  

---

## 1 answers

### Answer by username_4 on 2015-09-15. Score: 9 | Accepted answer

If your question was

Where are these pixel formats defined?

Go to http://ffmpeg.org/download.html and download the source of ffmpeg. Then unpack it
tar -xavf FILENAME.tar.*

and descend to the folder in the source code that is called libavutil
cd ffmpeg-*/libavutil/

and open the file pixfmt.h where you will find a description of all pixel formats. A few sample lines
AV_PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)          
AV_PIX_FMT_YUYV422,   ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
AV_PIX_FMT_RGB24,     ///< packed RGB 8:8:8, 24bpp, RGBRGB...
AV_PIX_FMT_BGR24,     ///< packed RGB 8:8:8, 24bpp, BGRBGR...
AV_PIX_FMT_YUV422P,   ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)

Additionally you can read https://en.wikipedia.org/wiki/YUV and it’s cited sources and external links.

> **Comments:**
> **username_5**: Or just visit https://ffmpeg.org/doxygen/trunk/pixfmt_8h_source.html  
> **username_3**: Or http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavutil/pixfmt.h;hb=HEAD  
> **username_6**: Or https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/pixfmt.h  

---

