Про совместное использование нескольких видеокарт в программе Adobe Premiere Pro CC на сайте выложено много материала, но количество вопросов не снижается. Очередная попытка кратко объяснить как всё это работает и как настроить совместную работу нескольких видеокарт в версии программы Adobe Premiere Pro CC 2020.
У меня стоит дискретная видеокарта, почему в настройках экспорта пункт "С аппаратным ускорением (Hardware Accelerated)" неактивен?
Ответ: аппаратное кодирование, как и декодирование, использует Intel Media SDK и технологию Intel Quick Sync Video и работает только на интегрированных видеокартах процессоров Intel Core. Для аппаратного кодирования с помощью дискретных видеокарт, необходимо использовать сторонние плагины.
*В версии программы Adobe Premiere Pro CC 2020 (v14.2) и выше, добавили аппаратное кодирование на дискретных видеокартах AMD и NVIDIA.
Теперь рассмотрим как включить и настроить типичную работу интегрированной видеокарты (iGPU) и дискретной видеокартой в программе Adobe Premiere Pro CC 2020.
Если у нас ноутбук, то две видеокарты по-умолчанию активны, и автоматически переключаются в зависимости от запущенного приложения. Есть и исключения, например: Lenovo Legion Y540-15IRH.
Если у нас ПК, то необходимо в BIOS включить интегрированную видеокарту для совместной работы с дискретной. Подключить монитор к дискретной видеокарте (чтобы она была главной и отвечала за OpenGL). Подробнее о настройках BIOS и подключении читаем здесь.
В систему необходимо поставить драйвера для интегрированной видеокарты, скачанные с официального сайта. После этого утилита GPU-Z видить интегрированную видеокарту, отображать актуальный драйвер (а не дефолтный операционной системы) и должна стоять галка перед пунктом OpenCL.
При запуске программы Adobe Premiere Pro CC 2020 может появиться окно System Compatibility Report (Отчёт о совместимости системы), которое проинформирует, если версия драйвера для интегрированной видеокарты ниже рекомендованной.
*Отключить это окно можно в настройках Общие (General), сняв галку перед пунктом Показать проблемы с совместимостью с системой при запуске (Show system compatibility issues at startup).
После запуска программы в настройках проекта доступно для выбора два аппаратных движка Mercury Playback Engine GPU Acceleration: CUDA и OpenCL. За последний отвечает интегрированная видеокарта, так как OpenCL ускорение для видеокарт nVidia было заблокировано в предыдущих версиях программы.
Теперь необходимо включить аппаратное декодирование с помощью интегрированной видеокарты в настройках программы. Выполняем команду: Изменить > Установки > Медиаконтент (Edit > Preferences > Media).
И проверяем наличие галки перед пунктом Включить декодирование с аппаратным ускорением (требуется перезапуск) / Enable hardware accelerated decoding (requires restart).
*В более поздних обновлениях эта команда стала называться: Включить аппаратное кодирование и декодирование с ускорением (требуется перезапуск) / Enable hardware accelerated encoding and decoding (requires restart).
Если галки нет, то ставим её и перезагружаем Adobe Premiere Pro CC 2020, чтобы изменения вступили в силу:
Теперь запускаем утилиту GPUSniffer и проверяем, чтобы дискретная видеокарта отвечала за OpenGL (т.е. была главной в системе, так как к ней подключён монитор/ы).
И в разделе GPU Computation Info была прописана интегрированная видеокарта, и не было никаких примечаний с * в начале.
Теперь переходим к видео на таймлайне, интегрированная видеокарта поддерживает аппаратное декодирование только форматов: H.264 и H.265 (HEVC). Но также на аппаратное декодирование может влиять частота кадров, величина битрейта и цветовая выборка. Например, нет поддержки декодирования видео H.264/HEVC с цветовой выборкой 422:
Цветовую выборку 422 аппаратно не могут декодировать и дискретные видеокарты, исключение это новая интегрированная графика Gen11 и Gen12 Xe, которая используется в 10-нм мобильных процессорах Intel Core 10-го и 11-го поколения Intel Ice Lake-U и Intel Tiger Lake-U. Но, только для H.265/HEVC видео.
10-битное H.265/HEVC видео с цветовой выборкой 4:2:2 снимают следующие камеры: Sony A7S III, Canon EOS R5, Canon EOS R6 и т.д.
Поэтому на видео которое собираемся декодировать на таймлайне, нажимаем правую кнопку мыши и выбираем Свойства (Properties). И проверяем его характеристики и можно ли такое видео аппаратно декодировать.
В окне Программа (Program) видим что у нас главной выступает дискретная видеокарта CUDA Render System on Device: GeForce RTX 2060 SUPER. А также обращаем внимание, чтобы у нас был использован стандартный декодер PF: YUV 420 MPEG4 Frame BiPlanar 8u 709 ImporterMPEG.
*Чтобы включить отображение данной информации в окне Программа (Program), активируем "собачьи уши" - ставим галку напротив EnableDogEars в Console > Debug Database View. Нажимаем комбинацию клавиш: Ctrl+F12 (Windows) или Cmd+F12 (для MacBook Cmd+Fn+F12) в панели Console (Консоль). Или нажимаем комбинацию горячих клавиш: Ctrl+Shift+F11 при выделенном окне Программа (Program).
Проверяем чтобы штатный декодер ImporterMPEG работает аппаратно. В панели Debug Monitor (Ctrl+Alt+F12) в закладке ImporterMPEG следим за работой аппаратного ускорения (декодирования видео), кадры должны бежать напротив пункта HW Frames Decompressed.
*Если при нажатии комбинации клавиш Ctrl+Alt+F12 ничего не происходит, то читаем пункт 2.
Иногда аппаратное декодирование может включаться и на старых, не поддерживаемых интегрированных видеокартах. Как пример: Intel HD Graphics 4600. Утилита GPUSniffer показывает, что всё активно:
HW Frames Decompressed работает:
На ноутбуке был установлен драйвер Intel Graphics версии 20.19.15.4549.
*В версии программы Adobe Premiere Pro CC 2020 работают почти все старые интегрированные видеокарты (iGPU), начиная с Intel HD Graphics 4000 (Ivy Bridge).
Предпринимались различные попытки разобраться, что влияет на активацию интеграшки. Но отследить закономрености не удалось.
Для справки аналогичное ускорение в версии программы Adobe Premiere Elements 2020 работает с графикой Intel HD Graphics 2000 и выше. А для программа Adobe Premiere Pro CC это процессоры Broadwell (Intel Core 5-го поколения).
А аппаратное декодирование HEVC видео, было добавлено в процессоры Skylake (Intel Core 6-го поколения).
Есть ли аппаратное декодирование H.264 и HEVC видео с помощью дискретных видеокарт?
На данный момент для версии Adobe Premiere Pro 2020 (v14.3) нет такой штатной возможности. Но, есть бесплатный плагин Cinegy TurboCut который позволяет на видеокартах Nvidia с чипсетами Pascal/Turing реализовать аппаратное декодирование видео в программе Adobe Premiere Pro 2020.
*Также в Adobe Premiere Pro 2020 v14.3.2.20 Beta добавлены команды для активации штатного аппаратного декодирования видео на дискретных видеокартах AMD и Nvidia. Это следующие команды: ImporterMPEG.Feature.Enable_AMD_Decode, ImporterMPEG.Feature.Enable_AMD_Decode_Reset и ImporterMPEG.Feature.Enable_Nvidia_Decode.
Появилось окно Ожидание медиаданных, что делать?
Ожидание медиаданных (Media pending) может появиться при смене декодеров, или смене режимов декодирования.
Вот стандартный декодер для работы с 4K UHD H.264 видео, PF: YUV 420 MPEG4 Frame BiPlanar 8u 709 ImporterMPEG.
Идём в Консоль и активируем пункт: DS.ForceCPUOnly.
В настройках проекта получаем серое поле, Средство рендеринга: Только программное ускорение ядра Mercury Playback.
Движок сменится на Software Render System, но PF: останется прежним YUV 420 MPEG4 Frame BiPlanar 8u 709 ImporterMPEG.
Теперь в Консоли активируем пункт: GF.DisableAcceleratedDisplay.
Сменился и движок, на: GPU Mercury Playback (CUDA) и декодер, на следующий PF: VUYA 4444 8u 709. Но, картинка в окне Программа отображается.
Теперь наоборот, не устанавливаем, а снимаем в Console (Консоль) галку напротив пункта ImporterMPEG.UseBiPlanarPixelFormat_8b.
И получаем жёлтое окно: Ожидание медиаданных (Media pending).
Решение проблемы, чистим Кэш медиаданных (Media Cache), при всех закрытых проектах. Или более надёжный вариант, чистим кэш вручную. Идём в следующие директории: C:\Users\1\AppData\Roaming\Adobe\Common\Media Cache и C:\Users\1\AppData\Roaming\Adobe\Common\Media Cache Files.
Где 1 - это имя пользователя, выделяем всё содержимое папки (Ctrl+A) и удаляем мимо корзины (Shift+Delete).
Эту процедуру лучше проделывать каждый раз при переключении декодера, так как декодер новый, а медиа кэш читается старый.
CUDA Render System и PF: YUV 420 MPEG4 8U 709 ImporterMPEG.
...........................