为什么 FFMPEG 支持的编解码器列表中的某些编解码器在括号中显示"encoders:"或"decoders:"?



如果打开命令提示符并运行ffmpeg -codecs
您将获得一长串FFMPEG支持的编解码器。

这是一个列表的小样本:

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

现在,如果您简单地浏览整个列表,
您会看到该列表中的大多数编解码器都显示了它们的名称和描述,<br]但有些编解码器也在描述中包含圆括号,在圆括号中,>
它们指定"encoders:"或"decoders:"。

例如:

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)

我的问题:

为什么有些编解码器有这些括号,指定编码器/解码器,而其他(事实上:大多数(编解码器没有这些括号?

编解码器是一种格式标准。它是以压缩格式描述媒体的一种方式。一种获取未压缩媒体文件或流并将其压缩为标准的工具是编码器。可以有不同的竞争编码器来实现相同的编解码器。例如,libx264是一个基于软件的h264编码器。但许多nvidia GPU附带NVENC,这是一种硬件加速的h.264编码器。他们都做同样的工作,但方式不同。Ffmpeg支持两者。

相关源代码有以下注释,

/* print decoders/encoders when there's more than one or their
* names are different from codec name */

不言自明。

相关内容

最新更新