Learn · Software and formats

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

ThingWhat it isExamples
Codec / coding formatDefines how media is represented or compressedMP3, AAC, FLAC, H.264, HEVC
EncoderSoftware that creates encoded mediaLAME, x264, x265
DecoderSoftware/component that reads encoded mediaH.264 decoder, AAC decoder
ApplicationUser-facing software for a taskExact Audio Copy, VLC, foobar2000
Toolkit / frameworkA collection of multimedia tools and librariesFFmpeg

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

Audio CDsource
→
EACextracts the audio
→
LAMEencodes it
→
MP3resulting format

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

LAME is not an audio format.

It is software used to encode MP3 audio.

EAC is not a codec.

It is a CD-ripping application that can use codecs and encoders as part of its workflow.

FFmpeg is not a single codec.

It is a multimedia project and toolkit that works with many codecs, containers and protocols.