Reputation: 1101
If you open the Command Prompt, and run ffmpeg -codecs
,
you will get a long list of Codecs that FFMPEG supports.
Here's a small sample of the list:
DEV.L. h261 H.261
DEV.L. h263 H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
D.V.L. h263i Intel H.263
DEV.L. h263p H.263+ / H.263-1998 / H.263 version 2
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb)
D.V.LS hevc H.265 / HEVC
Now If you briefly go over the whole list,
you see that most Codecs in this list appear with their Name and Description,
but some of the Codecs also include parenthesis in the Description, and in the parenthesis,
they specify "encoders:" or "decoders:".
For example:
1)
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb)
2)
DEVILS jpeg2000 JPEG 2000 (decoders: jpeg2000 libopenjpeg) (encoders: jpeg2000 libopenjpeg)
3)
DEV.L. msmpeg4v3 MPEG-4 part 2 Microsoft variant version 3 (decoders: msmpeg4) (encoders: msmpeg4)
4)
DEA.L. aac AAC (Advanced Audio Coding) (encoders: aac libvo_aacenc)
5)
DEA.L. amr_nb AMR-NB (Adaptive Multi-Rate NarrowBand) (decoders: amrnb libopencore_amrnb) (encoders: libopencore_amrnb)
DEA.L. amr_wb AMR-WB (Adaptive Multi-Rate WideBand) (decoders: amrwb libopencore_amrwb) (encoders: libvo_amrwbenc)
My question:
Why do some Codecs have those parenthesis, specifying Encoders/Decoders,
while other (in fact: most) codecs don't have these parenthesis?
Upvotes: 0
Views: 456
Reputation: 93231
The relevant source code has this comment,
/* print decoders/encoders when there's more than one or their
* names are different from codec name */
Self-explanatory.
Upvotes: 1
Reputation: 31110
A codec is a format standard. It is a way of describing media in a compressed format. A tool that takes an uncompressed media file or stream, and compresses it into the standard is an encoder. There can be different competing encoders that implement the same codec. For example, libx264 is a software based h264 encoder. But many nvidia GPUs ship with NVENC which is a hardware accelerated h.264 encoder. They both do the same jobs, but in different ways. Ffmpeg support both.
Upvotes: 1