Firefox и VAAPI: аппаратное ускорение видео в Linux

Firefox и VAAPI

При воспроизведении видео в Linux-браузере Firefox часто вся обработка ложится на процессор. Это может вызывать высокую загрузку CPU, нагрев системы и быстрое разряжение аккумулятора на ноутбуках. Однако Firefox умеет использовать VAAPI (Video Acceleration API) - механизм аппаратного ускорения, который переносит декодирование видео на графический процессор.

Использование VAAPI заметно снижает нагрузку на процессор и повышает плавность воспроизведения. Поддержка зависит от драйверов и видеокарты: Intel и AMD работают «из коробки» через Mesa, а для NVIDIA требуется дополнительный слой совместимости через VDPAU.

Содержание

  1. Установка драйверов и библиотек
  2. Запуск и настройка в X11
  3. Запуск и настройка в Wayland
  4. Изменения в about:config (Firefox)
  5. Проверка работы VAAPI
  6. Диагностика и логирование
  7. Особенности Flatpak-версии
  8. Ограничения и известные нюансы
  9. Советы по оптимизации
  10. Заключение

Установка драйверов и библиотек

Пакеты для VAAPI и видео-стека (Manjaro/Arch):

sudo pacman -S libva libva-utils ffmpeg mesa

Видеокарта/драйверы:

  • Intel (Broadwell и новее): sudo pacman -S intel-media-driver
  • Intel (более старые GPU): sudo pacman -S libva-intel-driver
  • AMD (Mesa): sudo pacman -S libva-mesa-driver mesa-vdpau
  • NVIDIA (проприетарные): sudo pacman -S nvidia-utils libva-nvidia-driver vdpauinfo

Проверка поддержки VAAPI/драйвера:

vainfo

В выводе ищем поддерживаемые профили (например, H.264, HEVC, VP9) и какой VA-драйвер выбран.

Запуск и настройка в X11

В X11 Firefox часто требует явных переменных окружения:

env MOZ_X11_EGL=1 MOZ_DISABLE_RDD_SANDBOX=1 firefox
  • MOZ_X11_EGL=1 - рендер через EGL вместо GLX (чаще стабильнее).
  • MOZ_DISABLE_RDD_SANDBOX=1 - отключает песочницу RDD-процесса, если она мешает VAAPI.

Чтобы не вводить команду каждый раз, создайте ярлык:

[Desktop Entry]
Name=Firefox VAAPI (X11)
Exec=env MOZ_X11_EGL=1 MOZ_DISABLE_RDD_SANDBOX=1 firefox %u
Type=Application
Categories=Network;WebBrowser;

Сохраните файл как ~/.local/share/applications/firefox-vaapi-x11.desktop.

Важно: отключение RDD-песочницы немного снижает изоляцию декодера. Используйте, если без этого VAAPI не стартует.

Запуск и настройка в Wayland

В Wayland VAAPI обычно работает стабильнее. Хватает одной переменной:

env MOZ_ENABLE_WAYLAND=1 MOZ_DISABLE_RDD_SANDBOX=1 firefox

Ярлык для Wayland:

[Desktop Entry]
Name=Firefox VAAPI (Wayland)
Exec=env MOZ_ENABLE_WAYLAND=1 MOZ_DISABLE_RDD_SANDBOX=1 firefox %u
Type=Application
Categories=Network;WebBrowser;
Подсказка: для лучшей отзывчивости ввода добавьте MOZ_USE_XINPUT2=1.

Изменения в about:config (Firefox)

Откройте about:config, согласитесь с предупреждением и установите:

  • media.ffmpeg.vaapi.enabledtrue
  • media.rdd-ffmpeg.enabledtrue
  • media.ffvpx.enabledfalse (чтобы не перехватывал софт-декодер)
  • media.rdd-vpx.enabledfalse (иногда помогает с VP9)
  • gfx.webrender.alltrue (ускоренный рендеринг интерфейса)
  • опционально media.hardware-video-decoding.force-enabledtrue(форсировать, если Firefox блокирует декодирование)

Перезапустите браузер.

Проверка работы VAAPI

Внутри Firefox

  • Откройте about:support.
  • В блоке GraphicsVideo Acceleration ожидаем VA-API active / VAAPI Video Decoder: available.

Через системные инструменты

  • vainfo - список поддерживаемых профилей/кодеков и активный драйвер.
  • Мониторинг загрузки видеоядра:
    • Intel: intel_gpu_top
    • AMD: radeontop
  • Параллельно запустите видео 1080p/4K на YouTube и наблюдайте снижение загрузки CPU в htop.

Диагностика и логирование

Если непонятно, какой декодер используется, запустите Firefox с логом модулей декодера:

MOZ_LOG="PlatformDecoderModule:5" firefox

Переменная MOZ_LOG включает детальный вывод; PlatformDecoderModule:5 - уровень подробности. В консоли ищите строки о VA-API/FFmpeg инициализации.

Особенности Flatpak-версии

У Flatpak Firefox VAAPI обычно работает, но иногда требуется проброс окружения и доступ к драйверам:

flatpak override --user --env=MOZ_ENABLE_WAYLAND=1 org.mozilla.firefox
flatpak override --user --filesystem=/usr/lib/dri org.mozilla.firefox

Проверьте flatpak info org.mozilla.firefox. Если VAAPI не стартует - сравните с нативным пакетом.

Ограничения и известные нюансы

  • Кодеки: обычно аппаратно доступны H.264/AVC и VP9; AV1 - только на новых GPU (Intel Arc, AMD RDNA3, NVIDIA RTX 40).
  • DRM-контент (Widevine: Netflix/Prime): часто декодируется CPU - это ограничение DRM-стека.
  • NVIDIA: через libva-nvidia-driver возможно VAAPI, но стабильность/качество зависят от версии драйверов; иногда надёжнее VDPAU или Chromium VAAPI.
  • YouTube: если поток идёт в VP9/AV1, а GPU не умеет - поставьте расширение h264ify, чтобы форсировать H.264.
  • Гибридная графика: при наличии iGPU+dGPU убедитесь, что Firefox использует нужное устройство; можно указать MOZ_DRM_DEVICE=/dev/dri/renderD128.

Советы по оптимизации

  • Firefox → Настройки → Производительность → «Использовать аппаратное ускорение, когда доступно» - включить.
  • Для Wayland добавьте MOZ_USE_XINPUT2=1 (плавнее ввод).
  • Если VAAPI не работает в X11 - попробуйте только MOZ_X11_EGL=1 без отключения RDD, либо наоборот.
  • Следите за актуальностью ffmpeg и Mesa - обновления часто исправляют декодеры.

Заключение

После настройки VAAPI Firefox перекладывает декодирование видео на GPU, что снижает нагрузку на CPU, уменьшает нагрев и повышает автономность. На Wayland, как правило, всё работает стабильнее, но и в X11 можно добиться отличных результатов.


Совместимость и названия пакетов могут немного отличаться между дистрибутивами; ориентируйтесь на репозитории вашей системы.

При подготовке статьи использовались материалы Arch Wiki - Hardware video acceleration , а также практический опыт настройки Firefox в Manjaro-Linux.

Комментарии