Codec vs encoder vs application
A program can work with a codec without being a codec itself. This distinction explains LAME, Exact Audio Copy, FFmpeg, x264, VLC and many other names users encounter.
The quick difference
| Thing | What it is | Examples |
|---|---|---|
| Codec / coding format | Defines how media is represented or compressed | MP3, AAC, FLAC, H.264, HEVC |
| Encoder | Software that creates encoded media | LAME, x264, x265 |
| Decoder | Software/component that reads encoded media | H.264 decoder, AAC decoder |
| Application | User-facing software for a task | Exact Audio Copy, VLC, foobar2000 |
| Toolkit / framework | A collection of multimedia tools and libraries | FFmpeg |
Real examples
LAME is an encoder that creates MP3 audio. MP3 is the encoded audio format.
x264 is an encoder that creates H.264/AVC video. H.264 is the coding standard.
Exact Audio Copy is a CD-ripping application. It can extract PCM audio and then call another encoder such as LAME.
VLC is a media player and multimedia application. It can decode many standard formats; those formats are not “VLC codecs.”
Example: audio CD to MP3
This is why saying “EAC codec” or “LAME format” mixes together different layers of the workflow.
Where FFmpeg fits
FFmpeg is broader than a single encoder. It can read containers, demux streams, decode them, filter or resample media, encode new streams, mux them into containers, inspect files and handle streaming protocols.
FFmpeg may use an encoder such as libmp3lame for MP3 or libx264 for H.264, which is one reason people understandably mistake FFmpeg for a codec.
Common confusion
It is software used to encode MP3 audio.
It is a CD-ripping application that can use codecs and encoders as part of its workflow.
It is a multimedia project and toolkit that works with many codecs, containers and protocols.