В новом обновлении Adobe Premiere Pro 2020 (v14.2.0.47) добавлена штатная возможность аппаратного кодирования видео с помощью дискретных видеокарт.
В данном тестировании проверим скорость работы старых комплектующих: GIGABYTE GTX 660 WindForce 2X OC (GV-N660OC-2GD), Intel Core i5-5675C и Intel Iris Pro Graphics 6200 (GT3e).
Запускаем утилиту GPUSniffer и смотрим как программа Adobe Premiere Pro 2020 (v14.2.0.47) видит видеокарты:
Экспортировать будем 1 минуту UHD (3840x2160p30) H.264 Long-GOP видео с квадрокоптера DJI.
Идём в Настройки экспорта (Export Settings) (Ctrl+M) и выбираем формат: H.264 и пресет: Match Source - High Bitrate.
Далее, выбираем: Видео > Параметры кодирования > Производительность: С аппаратным ускорением (Hardware Encoding). В всплывающей подсказке: Utilizes available NVIDIA hardware for quicker encoding.
Нажимаем на кнопку: Экспорт (Export).
И видим что у видеокарты NVIDIA GeForce GTX 660 загрузка процесса Video Encode - 100%. За данный процесс отвечает блок кодирования NVIDIA NVENC.
Утилита GPU-Z также показывает загрузку Video Engine Load - 100%.
За аппаратное декодирование отвечала интегрированная видеокарта (iGPU).
Итоговое время: 62 секунды.
Console показывает следующую информацию: <3340> ExporterMPEG4 <5> Looking for H/W codecs for H.264
<3340> EncoderStateH264 <5> Found H/W codec for H.264 - nVidia H.264 Codec
<3340> EncoderStateH264 <1> Encoded using nVidia H.264 Codec (H/W codec) for H.264
<3340> EncoderNvidia <5> Encoded 1800 Frames Encode FPS = 29.56 Encode Size 3840 x 2160
<3340> EncoderStateH264 <1> Time taken for; video =59492 audio=192 mux=764
Информация о файле после рендеринга от Media Info:
Теперь пробуем отключить аппаратное кодирование силами видеокарты построенной на чипсете NVIDIA.
Нажимаем комбинацию клавиш: Ctrl+F12 (Windows) в панели Console (Консоль), переключаемся в режим Debug Database View. И снимаем галку перед пунктом ExporterMPEG4.Feature.Allow_Nvidia_Encode.Use_New_Impl.
При рендеринге, у видеокарты NVIDIA GeForce GTX 660 процесс Copy занят на 73%.
В Диспетчере задач в Windows 10 нет доступной колонки Video Encode для интеграшки (в выпадающем списке нет такого пункта). Поэтому мы видим, загрузку двух процессов, 3D - 66% и Video Decode - 39%.
Утилита GPU-Z показывает загрузку GPU Load - 68%.
Аппаратное декодирование работает, HW Frames Decompressed:
Итоговое время: 18 секунд.
Но, видео после рендеринга и мультиплексинга имеет размер: 0 байт.
Видимо адобовские инженеры снова намутили, что-то в консоле. Будет искать выход. Перепробовано было множество команд в Console. Также интеграшка была сделана главной.
Выбор движка Mercury Playback Engine GPU Acceleration (OpenCL) также делу не помог.
Помогла активация команды: ExporterMPEG.Simulate_Bad_HW_Driver_For_Export.
И уже в сплывающей подсказке видим слово Intel, а не Nvidia: Utilizes available Intel hardware for quicker encoding.
Загрузка CPU-100%, загрузка iGPU-96% (3D), загрузка dGPU-50%.
При рендеринге, у видеокарты NVIDIA GeForce GTX 660 процесс Copy занят на 50%.
Утилита GPU-Z показывает загрузку GPU Load - 99%.
Итоговое время: 40 секунд.
Console показывает следующую информацию: <4568> ExporterMPEG4 <5> Looking for H/W codecs for H.264
<4568> EncoderMsdkH264 <5> Using Intel Media SDK - D3D11 HW mode for encoding
<4568> EncoderStateH264 <5> Found H/W codec for H.264 - MSDK H.264 Codec
<4568> EncoderStateH264 <1> Encoded using MSDK H.264 Codec (H/W codec) for H.264
<4568> EncoderStateH264 <1> Time taken for; video =36914 audio=271 mux=983
Информация от Media Info о выходном файле:
При выводе: Software Encoding, загрузка центрального процессора - 100%.
Интеграшка Intel Iris Pro Graphics 6200 (GT3e) помогала с аппаратным декодированием видео:
Итоговое время рендеринга: 130 секунд.
Смотрим что показывает утилита Media Info:
Сводный график результатов (время в секундах, чем меньше, тем лучше):
Читаем далее.