Поиск по сайту:

Получите аппаратное ускорение Firefox VA-API, работающее на графическом процессоре NVIDIA.

Для машины Ubuntu с видеокартой NVIDIA можно реализовать аппаратное ускорение воспроизведения видео в веб-браузере Firefox.

Firefox пока поддерживает только VA-API для декодирования графического процессора, чтобы разгрузить процессор и сэкономить электроэнергию. Графические процессоры Intel и AMD поддерживают VA-API. Однако NVIDIA пока поддерживает API только через драйвер Nouveau с открытым исходным кодом.

Если у вас работает только графический процессор NVIDIA с проприетарным драйвером, аппаратное ускорение видео не работает в Firefox «из коробки».

На выбор есть драйвер libvdpau-va-gl1 (только h.264) или libva-vdpau-driver, но оба они, похоже, больше не обновляются. На данный момент лучшим выбором является бесплатный драйвер nvidia vaapi с открытым исходным кодом.

ПРИМЕЧАНИЕ 1. Это руководство пока не работает на ноутбуке Optimus, подробности см. в этом отчете об ошибке.
ПРИМЕЧАНИЕ 2. Пока это касается только Firefox, поскольку другие проигрыватели, такие как MPV, поддерживают NVIDIA NVDEC «из коробки».
ПРИМЕЧАНИЕ 3. В моем тесте он не работает для предустановленной Firefox Snap, поскольку она работает в «песочнице». Попробуйте установить официальный пакет deb или пакет Mozilla PPA.

Шаг 1. Установите драйвер NVIDIA VAAPI.

Пакет драйверов был включен в репозиторий Ubuntu начиная с Ubuntu 23.10.

Таким образом, текущие пользователи Ubuntu 23.10 и Ubuntu 24.04 могут просто нажать Ctrl+Alt+T, чтобы открыть терминал, и запустить команду для его установки:

sudo apt install nvidia-vaapi-driver

Для самой последней версии существует неофициальный PPA-репозиторий, содержащий пакет для Ubuntu 22.04, Ubuntu 23.10 и Ubuntu 24.04.

  • Сначала добавьте PPA, выполнив команду:

    sudo add-apt-repository ppa:ubuntuhandbook1/nvidia-vaapi

    Введите пароль пользователя, когда он запросит (без звездочки) аутентификацию sudo, и нажмите Enter, чтобы продолжить.

  • Затем обновите кеш системных пакетов, выполнив команду:

    sudo apt update
  • Наконец, установите пакет драйверов:

    sudo apt install nvidia-vaapi-driver

Затем также установите vainfo, чтобы проверить информацию vaapi:

sudo apt install vainfo

Шаг 2. Проверьте информацию VA-API.

Теперь в окне терминала выполните команду:

vainfo

Для драйвера NVIDIA выше версии 525 необходимо сначала запустить export NVD_BACKEND=direct, чтобы включить прямое управление серверной частью, и export LIBVA_DRIVER_NAME=nvidia, чтобы указать драйвер.

Он должен вывести что-то вроде того, что показано на снимке экрана ниже, включая версию va-api и версию драйвера (драйвер VA-API NVDEC), а также поддерживаемые кодеки.

Вы можете попробовать воспроизвести видеофайл из командной строки, используя MPV (версию выше 0.36), чтобы проверить, работает ли va-api:

mpv --hwdec=vaapi /path/to/video-file

Он выдает что-то вроде Использование аппаратного декодирования (vaapi).

Шаг 3: Настройте Firefox

Теперь запустите Firefox, введите about:config и нажмите Enter, затем нажмите «Принять риск и продолжить», чтобы перейти на страницу настроек.

Затем введите следующие ключи один за другим в поле фильтра и установите для них значение true:

    media.ffmpeg.vaapi.enabled
    gfx.x11-egl.force-enabled
    widget.dmabuf.force-enabled

Шаг 4. Настройка переменной среды

В окне терминала (Ctrl+Alt+T) выполните следующие команды одну за другой, чтобы настроить переменную среды Firefox va-api для работы на NVIDIA:

  • Укажите имя драйвера:

    export LIBVA_DRIVER_NAME=nvidia
  • Отключите песочницу процесса RDD:

    export MOZ_DISABLE_RDD_SANDBOX=1
  • Для NVIDIA 525 и выше также установите прямое управление:

    export NVD_BACKEND=direct
  • Для устаревшей версии NVIDIA 470 укажите имя библиотеки поставщика EGL:

    export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
  • По выбору вы также можете включить журнал для целей отладки:

    export NVD_LOG=1

Наконец, запустите Firefox из того же окна терминала /usr/bin/firefox и воспроизведите видео для проверки (см. следующий шаг).

Если это работает, вы можете сделать переменные среды постоянными, выполнив следующие действия:

  • Сначала откройте домашнюю папку, нажмите Ctrl+h, найдите файл .profile и нажмите «Редактировать».

  • Когда файл откроется, добавьте предыдущие команды export, которые вы запускали (исключая NVD_LOG), в конец в виде новых строк. Наконец, сохраните файл.

Вам необходимо выйти из системы и снова войти, чтобы изменения в файле .profile заработали.

Шаг 5: Проверьте

При воспроизведении видео с помощью веб-браузера Firefox вы можете использовать команду nvtop для проверки.

  • Сначала откройте терминал (Ctrl+Alt+T) и выполните команду для установки nvtop:

    sudo apt install nvtop
  • Затем запустите команду nvtop в терминале во время воспроизведения видео. Если графический процессор декодирует, то внизу есть строка, помеченная как тип Compute, с информацией о том, какой процесс и команда. В данном случае это должно быть как-то связано с Firefox.

По выбору вы также можете вместо этого запустить nvidia-smi pmon, в выводе должен быть тип C для соответствующего процесса во время воспроизведения.

Дополнительную информацию см. в разделе nvidia-vaapi-driver на странице github.

Удалить:

Если драйвер у вас почему-то не работает, вы можете удалить его, выполнив команду в терминале:

sudo apt remove --autoremove nvidia-vaapi-driver

Также удалите PPA (если он добавлен) с помощью команды:

sudo add-apt-repository --remove ppa:ubuntuhandbook1/nvidia-vaapi

Вы также можете перейти на страницу about:config в Firefox, чтобы отменить внесенные вами изменения и удалить строки export (если установлены) в .profiles файл.

Статьи по данной тематике