Skip to main content

Intel QSV / VAAPI

Alchemist tries Intel VAAPI first and QSV second. That matches current Intel Linux reality: Intel Arc uses VAAPI through the i915 or xe driver, not QSV. QSV remains a fallback path for older Intel hardware and FFmpeg setups.

Supported generations

GenerationH.264HEVCAV1Notes
Intel iGPU, all supported generationsYes6th gen+12th gen+Alchemist prefers VAAPI, then QSV

Critical note for Intel Arc

Intel Arc uses VAAPI via the Linux DRM stack. Do not force QSV for Arc unless you have a specific reason and have verified it works in your FFmpeg build. The expected path is VAAPI first.

Host setup

Install the Intel VAAPI driver and verification tools.

sudo apt install intel-media-va-driver-non-free vainfo

Verify the render node directly on the host:

vainfo --display drm --device /dev/dri/renderD128

For newer systems, renderD129 may be the Intel node. Check ls -l /dev/dri if renderD128 is not Intel.

Docker

Pass /dev/dri into the container and add the video and render groups. Set LIBVA_DRIVER_NAME=iHD for modern Intel media drivers.

Docker Compose

services:
alchemist:
image: ghcr.io/bybrooklyn/alchemist:latest
ports:
- "3000:3000"
volumes:
- ~/.config/alchemist:/app/config
- ~/.config/alchemist:/app/data
- /path/to/media:/media
devices:
- /dev/dri:/dev/dri
group_add:
- video
- render
environment:
- ALCHEMIST_CONFIG_PATH=/app/config/config.toml
- ALCHEMIST_DB_PATH=/app/data/alchemist.db
- LIBVA_DRIVER_NAME=iHD
restart: unless-stopped

docker run

docker run -d \
--name alchemist \
--device /dev/dri:/dev/dri \
--group-add video \
--group-add render \
-p 3000:3000 \
-v ~/.config/alchemist:/app/config \
-v ~/.config/alchemist:/app/data \
-v /path/to/media:/media \
-e ALCHEMIST_CONFIG_PATH=/app/config/config.toml \
-e ALCHEMIST_DB_PATH=/app/data/alchemist.db \
-e LIBVA_DRIVER_NAME=iHD \
--restart unless-stopped \
ghcr.io/bybrooklyn/alchemist:latest

Verify inside the container

vainfo --display drm --device /dev/dri/renderD128
ffmpeg -encoders | grep -E 'vaapi|qsv'

If VAAPI is healthy, Alchemist should probe av1_vaapi, hevc_vaapi, and h264_vaapi first, then the QSV encoders.

In Alchemist

Set Settings → Hardware → Preferred Vendor → intel. Only set Device Path if auto detection chooses the wrong render node on a multi-GPU Linux host.