Почему некоторые из кодеков в списке поддерживаемых кодов FFMPEG c отображают "encoders:" или "decoders:" в скобках? - PullRequest
0 голосов
/ 04 мая 2020

Если вы откроете командную строку и запустите 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

Теперь Если вы кратко go по всему списку,
, вы увидите, что большинство кодеков в этом списке отображаются с их именем и описанием,
, но некоторые из кодеков также включают в описание круглые скобки, и в скобках
они указывают «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)

Мой вопрос:

Почему у некоторых кодеков есть эти круглые скобки, указывающие кодеры / декодеры,
, в то время как у других (фактически: большинство) кодеков нет этих круглых скобок?

Ответы [ 2 ]

1 голос
/ 04 мая 2020

В соответствующем исходном коде есть этот комментарий,

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

Нет объяснений.

1 голос
/ 04 мая 2020

Код c является стандартом формата. Это способ описания медиа в сжатом формате. Инструментом, который берет несжатый медиа файл или поток и сжимает его в стандарт, является кодировщик. Могут быть разные конкурирующие кодеры, которые реализуют один и тот же код c. Например, libx264 - это программный кодер h264. Но многие графические процессоры NVIDIA поставляются с NVEN C, который представляет собой аппаратно-ускоренный кодер h.264. Они оба выполняют одну и ту же работу, но по-разному. Ffmpeg поддерживает оба.

...