VDPAU — Video Decode and Presentation API for Unix, — технология аппаратного ускорения и постобработки видео на GPU. Благодаря ей можно очень существенно снизить нагрузку на CPU при просмотре HD Video. Поддержка вывода в vdpau есть во множестве видеоплееров (mplayer, mpv, и т.д.) и, соответственно, в их графических оболочках, типа smplayer.
Для использования данной замечательной технологии совместно с открытым драйвером vdpau, необходимо убедиться, что её поддержка есть в вашей видеокарте. Для этого привожу список моделей видеокарт, (взятый с arch-wiki), начиная с которых имеется наличие поддержки vdpau:
Свободные драйверы:
AMD Radeon 9500 и новее поддерживаются пакетом mesa-vdpau.
Intel GMA 4500 серии и новее поддерживаются пакетом libvdpau-va-gl вместе с libva-intel-driver.
NVIDIA GeForce 8 серии и новее поддерживаются пакетом mesa-vdpau. Он требует пакет nouveau-fwAUR, который содержит в себе необходимые прошивки для работы, взятые из закрытого драйвера NVIDIA.
Проприетарные драйверы:
AMD Radeon HD 4000 серии и новее поддерживаются пакетом libvdpau-va-gl, вместе с пакетом libva-xvba-driverAUR. Он использует драйвер catalyst-utilsAUR для Radeon HD 5000 серии и новее, и catalyst-total-hd234kAUR для Radeon HD 4000 серии.
NVIDIA GeForce 400 серии и новее поддерживаются пакетом nvidia-utils.
GeForce 8/9 и GeForce 100-300 серии и новее поддерживаются пакетом nvidia-340xx-utils.
Как мы видим, у NVIDIA поддержка появляется начиная с 8-й серии.
Также дополнительную информацию о
поддержке vdpau именно драйвером nouveau можно
посмотреть здесь.
А
здесь указан список соответствия кодовых имён видеокарт, используемых в nouveau, реальным моделям.
Если нам повезло и nouveau поддерживает технологию или нам лень читать и мы действуем на авось, ставим пакет
# apt install mesa-vdpau-drivers
и указываем в параметрах видеоплеера вывод vdpau для видео и проверяем на практике.
Как известно по информации с официального сайта, nouveau поддерживает не все движки декодирования и для некоторых (а именно для VP1/2/3/4/5) требуется firmware из блоба nvidia.
Там же приведён рецепт о том, как его оттуда выковырять и подложить для использования nouveau.
Итак:
1. Скачиваем скрипт и блоб (естественно, версию блоба для своей видеокарты)
$ mkdir /tmp/nouveau
$ cd /tmp/nouveau
$ wget https://raw.github.com/imirkin/re-vp2/master/extract_firmware.py
$ wget http://us.download.nvidia.com/XFree86/Linux-x86/325.15/NVIDIA-Linux-x86-325.15.run
2. Извлекаем файлы из .run архива и натравливаем скрипт:
$ sh NVIDIA-Linux-x86-325.15.run --extract-only
$ python2 extract_firmware.py # this script is for python 2 only
3. Создаём каталог и закидываем туда всю эту прелесть:
# mkdir /lib/firmware/nouveau
# cp -d nv* vuc-* /lib/firmware/nouveau/
После чего всё должно работать со всеми движками декодирования.
PS: Для поддержки проприетарных форматов, таких как h264, необходимо установить ffmpeg с deb-multimedia.org:
1.Добавляем репозиторий и ключ:
# echo "deb http://www.deb-multimedia.org jessie main non-free" >> /etc/apt/sources.list/
# apt update && apt install deb-multimedia-keyring && apt update
2. Удаляем ffmpeg, если был установлен пакет из стандартного репозитория:
# apt remove ffmpeg
3. Ставим пакет:
# apt install ffmpeg/code]
4. Проверяем вывод на наличие h264:
[code]$ ffmpeg -version | grep 264
Если вы видите флаг “–enable-libx264”, вы имеете поддержку h264.
Также известно о наличии второго способа.
1. Добавляем репозиторий backports:
# echo "deb http://ftp.debian.org/debian jessie-backports main contrib non-free" >> /etc/apt/sources.list
2. Обновляем список репозиториев:
# apt update
3. Ставим ffmpeg:
# apt -t jessie-backports install ffmpeg