What is a FOURCC code?
A FOURCC is a four-character identifier. Media software uses four-character codes in several different namespaces: AVI/RIFF stream and chunk identifiers, codec tags, raw pixel formats and ISO-family sample entries.
Why FOURCC exists
Classic RIFF and AVI structures use compact 32-bit identifiers made from four ASCII characters. For example, RIFF, AVI , movi, vids and auds identify structural or stream roles rather than compression algorithms.
Other ecosystems reused the same convenient four-character idea for codec tags, pixel formats and ISO Base Media File Format sample entries. The result is useful, but easy to misread if the namespace is not shown.
The same four-character idea appears at different layers
| Context | What the code identifies | Examples |
|---|---|---|
| RIFF / AVI structure | Container form, chunk or stream type | RIFF, AVI , movi, vids, auds |
| AVI / VFW codec tag | Codec or codec implementation mapping | MJPG, XVID, DIVX, DX50, H264 |
| ISO BMFF / MP4 sample entry | How a media sample entry is described in the container | avc1, hvc1, hev1, av01 |
| Raw video pixel format | Memory/sample layout, chroma and sometimes bit depth | YUY2, NV12, P010, Y210, Y416 |
Useful FOURCC and four-character identifiers
| Code | Meaning | Layer | Useful note |
|---|---|---|---|
AVI | AVI RIFF form | Container | The trailing space is part of the four-character code. |
WAVE | WAVE RIFF form | Container | Found in RIFF/WAV files. |
vids | AVI video stream type | Stream role | Does not tell you which video codec is used. |
auds | AVI audio stream type | Stream role | The audio format is described separately. |
MJPG | Motion JPEG mapping | Codec tag | Common in AVI/capture workflows. |
XVID | Xvid MPEG-4 Part 2 mapping | Codec/implementation tag | Xvid is an encoder/decoder implementation, not the MP4 container. |
DIVX / DX50 | DivX-era MPEG-4 Part 2 mappings | Codec/implementation tag | Historically important in AVI files. |
H264 | H.264/AVC mapping in some AVI/VFW contexts | Codec tag | Not the same namespace as avc1. |
avc1 | AVC/H.264 sample entry | ISO BMFF sample entry | Often shown by MediaInfo or probing tools for MP4/MOV-family files. |
hvc1 / hev1 | HEVC sample entries | ISO BMFF sample entry | Both mean HEVC-family video but differ in how parameter sets are signalled/stored. |
av01 | AV1 sample entry | ISO BMFF sample entry | Identifies AV1 in ISO-family containers. |
YUY2 | Packed YUV 4:2:2 | Pixel format | Describes raw sample layout, not a compressed codec. |
NV12 | Planar/semi-planar 8-bit 4:2:0 | Pixel format | Extremely common for hardware video pipelines. |
P010 | 10-bit 4:2:0 planar/semi-planar format | Pixel format | The final “10” indicates 10-bit components in Microsoft's naming scheme. |
Y210 | Packed 10-bit 4:2:2 | Pixel format | A raw video format, not H.210 or a codec name. |
Y416 | Packed 16-bit 4:4:4 | Pixel format | Again, a pixel layout rather than a compression format. |
Why an identifier is not necessarily a codec name
A media inspector might report avc1, while another tool calls the same underlying video H.264/AVC. That is not necessarily a disagreement: one may be showing the container sample-entry identifier and the other the coding standard.
The same applies to raw formats such as P010. P010 describes how decoded 10-bit 4:2:0 pixels are arranged; the compressed source might have been HEVC, AV1 or another codec.
Common confusion
Four-character identifiers are used by several container and API ecosystems. Always interpret the code in context.
avc1 is not a different video codec from H.264.It is an ISO-family sample-entry identifier used to signal AVC/H.264 media.