Аппаратное кодирование

В статье про тестирование бесплатного плагина Voukoder 3.0 была добавлена следующая информация, цитата "В ближайших апдейтах версии программы видеомонтажа Adobe Premiere Pro CC 2020 также добавят штатное аппаратное кодирование с помощью видеокарт построенных на чипсетах Nvidia (ExporterMPEG4.Feature.Allow_NVidia_HWExport) и AMD (ExporterMPEG4.Feature.Allow_AMD_HWExport)".
И вот в обновлении Adobe Premiere Pro CC 2020 (v14.0.2.104) можно уже протестировать эту бета опцию.
Нажимаем комбинацию клавиш: Ctrl+F12 (Windows) или Cmd+F12 (для MacBook Cmd+Fn+F12) в панели Console (Консоль), переключаемся на режим Debug Database View. Там ставим галки перед пунктами ExporterMPEG4.Feature.Allow_NVidia_HWExport (для видеокарт NVIDIA) и ExporterMPEG4.Feature.Allow_AMD_HWExport (для видеокарт AMD). И снимаем галку перед пунктом ExporterMPEG4.Feature.Allow_Intel_HW_Export (отключаем аппаратное кодирование с помощью интегрированной видеокарты процессоров Intel).


Аппаратное кодирование

После внесённых изменений перезагружаем программу Adobe Premiere Pro CC 2020 (v14.0.2.104). Идём в Настройки экспорта (Export Settings) (Ctrl+M) и выбираем формат: H.264. Далее, в Видео > Параметры кодирования > Производительность: С аппаратным ускорением (Hardware Encoding). И нажимаем на кнопку: Экспорт (Export).


Аппаратное кодирование

Загрузка Video Encode Load в утилите мониторинга GPU-Z, говорит о том, что работает NVENC кодирование у видеокарты NVIDIA GeForce GTX 660 (Kepler).


Аппаратное кодирование

В Диспетчере Задач, видно, что декодирование 4K видео занимается интегрированная видеокарта (iGPU), а кодированием дискретная, загружен блок Video Encode.


Аппаратное кодирование

1 минута 4K видео UHD (3840x2160p30) H.264 Long-GOP была экспортирована за 77 секунд.

Аппаратное кодирование

Информация которая доступна в Console после экспорта:
<1300> <5> AME app path: C:\Program Files\Adobe\Adobe Media Encoder 2020\Adobe Media Encoder.exe
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Object: Source
<1300> <5> X: 1920, Y: 1080
<1300> <5> Format: ayuv444_8
<1300> <5> Pitch: 7680, Padded: 0, Size: 8294400
<1300> <5> CrPlanes: 2, CrPitch: 3840
<1300> <5> CrWidth: 0, CrHeight: 0
<1300> <5> CrOffset: 0, CrRowBytes: 0
<1300> <1> Input bitstream, size:20000000
<1300> <1> Encode conversion: AYUV444_8. Pass thru.
<1300> <1> Reconfigure, w:1920, h:1080
<1300> <4> nvEncReconfigureEncoder() Failed!, status: 8
<1300> <5> Output bitstream, size:36
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Object: Source
<1300> <5> X: 720, Y: 480
<1300> <5> Format: ayuv444_8
<1300> <5> Pitch: 2880, Padded: 0, Size: 1382400
<1300> <5> CrPlanes: 2, CrPitch: 1440
<1300> <5> CrWidth: 0, CrHeight: 0
<1300> <5> CrOffset: 0, CrRowBytes: 0
<1300> <1> Input bitstream, size:20000000
<1300> <1> Encode conversion: AYUV444_8. Pass thru.
<1300> <1> Reconfigure, w:720, h:480
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <5> Object: EncoderInput
<1300> <5> X: 720, Y: 480
<1300> <5> Format: ayuv444_8
<1300> <5> Pitch: 2880, Padded: 3072, Size: 1474560
<1300> <5> CrPlanes: 2, CrPitch: 1440
<1300> <5> CrWidth: 0, CrHeight: 0
<1300> <5> CrOffset: 0, CrRowBytes: 0
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <1> Encoder input frame (GPU), size:1474560
<1300> <5> Output bitstream, size:36
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Object: Source
<1300> <5> X: 3840, Y: 2160
<1300> <5> Format: ayuv444_8
<1300> <5> Pitch: 15360, Padded: 0, Size: 33177600
<1300> <5> CrPlanes: 2, CrPitch: 7680
<1300> <5> CrWidth: 0, CrHeight: 0
<1300> <5> CrOffset: 0, CrRowBytes: 0
<1300> <1> Input bitstream, size:20000000
<1300> <1> Encode conversion: AYUV444_8. Pass thru.
<1300> <1> Reconfigure, w:3840, h:2160
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <5> Object: EncoderInput
<1300> <5> X: 3840, Y: 2160
<1300> <5> Format: ayuv444_8
<1300> <5> Pitch: 15360, Padded: 15360, Size: 33177600
<1300> <5> CrPlanes: 2, CrPitch: 7680
<1300> <5> CrWidth: 0, CrHeight: 0
<1300> <5> CrOffset: 0, CrRowBytes: 0
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <1> Encoder input frame (GPU), size:33177600
<1300> <5> Output bitstream, size:36
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<1300> <5> Found encoder: EncoderNVH264.
<3880> <5> Found encoder: EncoderNVH264.
<3880> <5> Found encoder: EncoderNVH264.
<2220> <5> Looking for H/W codecs for H.264
<2220> <5> Found encoder: EncoderNVH264.
<2220> <5> Object: Source
<2220> <5> X: 3840, Y: 2160
<2220> <5> Format: ayuv444_8
<2220> <5> Pitch: 15360, Padded: 0, Size: 33177600
<2220> <5> CrPlanes: 2, CrPitch: 7680
<2220> <5> CrWidth: 0, CrHeight: 0
<2220> <5> CrOffset: 0, CrRowBytes: 0
<2220> <1> Input bitstream, size:20000000
<2220> <1> Encode conversion: AYUV444_8. Pass thru. <2220> <5> Found H/W codec for H.264 - nVidia H.264 Codec
<6660> <5> System Compatibility Report HTTP GET failed with status 0
<2220> <1> Encoded using H/W codec for H.264
<2220> <5> Output bitstream, size:17605672
<2220> <1> Time taken for; video =75442 audio=193 mux=498
<2220> <5> Exporter finished in : 77.71 seconds. Result code: 0 Destination:C:\Users\1\Documents\DJI_0002.mp4
Утилита Media Info показывает следующую информацию о полученном видео:


Аппаратное кодирование

Картинка в квадратах при воспроизведении в медиапроигрывателе MPC, также говорит о том, что эта функция пока сыровата. Но с реализацией Intel Quick Sync Video тоже не всё сразу гладко было.


Аппаратное кодирование

Смотрим на значение: N - это число кадров в GOP. N=1 - это весь поток будет состоять только из ключевых кадров. Чем больше N - тем большая степень компрессии может быть достигнута.
В отличие от QSV, работают высокие битрейты, при 100Мбит, получаем нормальное качество и те же характеристики GOP: N=1, ReFrames: 1 frame.
Видео, как включить аппаратное кодирование на видеокартах построенных на чипсетах AMD и NVIDIA, в обновлении Adobe Premiere Pro 2020 (v14.0.2.104).



NVENC против QSV.

 
Рейтинг@Mail.ru