PotPlayer и поддержка аппаратных декодеров

Большинство современных видеокарт, как встроенных в процессоры, так и дискретных, поддерживает технологию аппаратного декодирования видео. Это означает, что видеокарта способна взять на себя часть работы, порой и немалую, по раскодированию видеопотока во время просмотра видеофайла, разгружая тем самым центральный процессор и делая устройство более энергоэффективных, что особенно важно для ноутбуков. Эта технология крайне полезна и для систем со слабым процессором, где без её использования будет попросту «тормозить» видео 720p/1080p.

Кнопка включения/отключения аппаратного декодирования видео в PotPlayer
PotPlayer «понимает» большинство популярных аппаратных декодеров и может с ними успешно взаимодействовать. Давайте рассмотрим, каким образом можно включить каждый из них в настройках плеера и какие лучше использовать в той или иной ситуации.

DXVA2 Native

Вариант по умолчанию, который будет без проблем работать с большинством конфигураций и поддерживается практически всеми не слишком древними видеокартами. Менее всего нагружает CPU, но не позволяет дополнительно обрабатывать кадры, применяя к ним различные фильтры. Если хотите узнать, поддерживает ли ваша карта DXVA и какие кодеки она может помочь обработать центральному процессору, советуем использовать утилиту DXVA Checker. Включается DXVA Native нажатием на кнопку S/W (в других скинах может называть, к примеру, GPU), которая в случае успеха сменит название на H/W, тем самым показывая, что задействован аппаратный (hardware) режим при помощи видеоадаптера. При нажатии на TAB строка «Видео-декодер» должна содержать «Native DXVA Decoder ...» и т.п.

Включение DXVA в настройках PotPlayer
Чтобы включить DXVA не через интерфейс скина, а непосредственно в настройках, нужно пройти по такому пути: F5 → «Кодеки и фильтры» → «Видеокодеки» и нажать снизу по центру кнопку «Встроенные декодеры и DXVA». Справа вверху открывшегося окна и будет заветная галочка.

DXVA2 Copy-back

Более продвинутый, нежели DXVA2 Native, вариант, ведь позволяет делать предварительную обработку кадров в оперативной памяти, потому, к примеру, может быть успешно использован в паре с движком повышения плавности видео. В сборке PotPlayer от 7sh3 именно он будет активен по умолчанию, а не Native. Отметим, что Copy-back создаёт несколько большую нагрузку на CPU, чем его собрат.

Intel Quick Sync Video

Технология, характерная для карт семейства Intel. Будет доступна для выбора в PotPlayer только если установить правильные и актуальные драйвера. Посмотреть, поддерживает ли ваша встроенная карта Quick Sync можно на сайте разработчика, узнав её модель или модель процессора.

CUDA

Ещё одна программно-аппаратная реализация, но уже для карт производителя nVidia. Выполняет ту же роль, что и её «коллеги». К слову, активано используется также играми, браузерами и другим софтом. Логично, что может быть задействована только на картах одноимённой компании. Технология появилась начиная с 8-го поколения GeForce.

Отметим, что все 4 типа, рассмотренных выше, - названия программных интерфейсов, т.е. путей, по которым программы обращаются к аппаратным возможностям видеокарты для кодированию/декодированию видео. А Quick Sync и CUDA это ещё и названия технологий, т.е. это и API (программный интерфейс) и технология в одном лице.

Нельзя не упомянуть, что в официальной версии PotPlayer опция DXVA отключена, а в сборках многих авторов как раз задействована. Ход разработчиков не совсем понятен, ведь большинство пользователей мало интересуются такими тонкостями настройки и даже не будет знать, что можно задействовать эффективное ускорение, имея слабый процессор и «тяжёлое» для него видео. Что же, будем нести образование в массы :).
Добавить комментарий

9 комментариев

  1. Примите в Клуб, и прошу помощи в настройке.
    Использую Nvidia 1050/AMD Athlon XII 250 (разг. 3.7), Windows 10 и версию PotPlayer от 7sh3 1.7.12248. Не получается выставить декодер или скрипт, который бы нагружал видеокарту до, скажем, 80-90%, разгружая процессор. При воспроизведении 1080 mkv/Fastest.avc имею нагрузку 60-90%CPU и 50-55%GPU. При использовании скриптов Fast/Medium процессор захлёбывается, появляются рывки, при этом GPU по-прежнему нагружен на 50-55%. Как забрать неиспользованные 30% у GPU?
    1. Если бы вы скинули скрин экрана плеера с нажатым TAB, по примеру этого, то было бы проще понять, что у вас за декодер активен и используется ли у вас вместе с плавностью какой-то аппаратный движок.

      В крайнем случае всегда можно спросить самого 7sh3 в соотвествующей ветке форума, он обычно не ленится отвечать на нормально заданные вопросы.
      1. К сожалению, я не разобрался, как с помощью формы ввода комментария прикрепить скриншот, хотя заблаговременно его приготовил :) Форма пишет: "вы ввели недопустимые символы" на эту ссылку, теперь она с 2-мя пробелами. Скриншот.
        1. На картинке всё вроде бы правильно - CopyBack активен, плавность включена, да и битрейт не самый высокий. На сегодня обычные релизы сериалов на трекерах 1080/h.264 имею битрейт 10-14к mbps и более. Можно, конечно, поэкспериментировать и подключить CUDA вместо CopyBack, но не думаю, что будет большая разница. Я бы на вашем месте всё же спросил в ветке руборда темы по ссылке в моём предыдущем комментарии. Просто люди, которые делают сборки, по умолчанию обладают бо́льшим объёмом знаний и знают больше тонкостей. Может быть их совет спасёт вас от апгрейда железа на какое-то время :).
  2. Ну и как задействовать CUDA?
    1. Я делаю так:
      1) захожу в настройки PotPlayer (F5) > Кодеки и фильтры > Видеокодеки > Встроенные декодеры и DXVA
      2) отключаю dxva, если была включена
      3) в декодере h.264/avc1 выбираю "Nvidia CUDA Decoder", нажимаю "ОК"
      4) запускаю фильм, пожатый h.264, нажимаю TAB, чтобы увидеть какой именно декодер работает

      Вот скрин на всякий случай. Если не ошибаюсь, то не на всех драйверах будет доступна опция с CUDA, у меня довольно старый их релиз.
      1. А ЕСЛИ в меню НЕТ CUDA decoder?
        у меня Nvidia GTX650, driver 387.92 
        1. Как пишут некоторые источники в сети, с 340-й версии драйверов уже нет поддержки CUDA. Можете попробовать использовать способ с сайта Bandicam - заменить nvcuvenc.dll. Перейдите по ссылке и найдите заголовок абзаца "If you cannot see the ...", там есть файлы и указаны пути, где нужно заменить библиотеку.
  3. За разъяснения спасибо, на тяжёлом видео хорошо видно, как падает нагрузка на процессор при включении DXVA (H/W). Было бы идеально, если бы плеер сам определял оптимальные настройки аппаратного декодера и включал их. Ведь если на компьютере есть подходящая видеокарта, то грех её не использовать.