Alchemist docs
Alchemist documentation

Find a page.

Type at least two characters.

    Docs menu

    Hardware

    Intel

    Configure Intel Quick Sync (QSV) and VAAPI for Alchemist. Driver install, /dev/dri passthrough, and Intel Arc notes. AV1 encode on Intel Arc and Meteor Lake / Core Ultra and newer.

    Source revision aeebc48

    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+Arc / Meteor Lake+Alchemist prefers VAAPI, then QSV; AV1 encode needs Arc or a Meteor Lake / Core Ultra iGPU

    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. The image bundles vainfo and an FFmpeg with the Intel VAAPI and QSV encoders, and the default (root) container can open the render nodes without any group_add. Driver auto-detection handles modern Intel iGPUs; only set LIBVA_DRIVER_NAME=iHD if it picks the wrong driver. Running with PUID/PGID? Also add the host’s numeric render GID — see Device permissions.

    Docker Compose

    services:
      alchemist:
        image: ghcr.io/bybrooklyn/alchemist:latest
        ports:
          - "3000:3000"
        volumes:
          - ./config:/app/config
          - ./data:/app/data
          - /path/to/media:/media
        devices:
          - /dev/dri:/dev/dri
        environment:
          - ALCHEMIST_CONFIG_PATH=/app/config/config.toml
          - ALCHEMIST_DB_PATH=/app/data/alchemist.db
          # Optional — only if auto-detection picks the wrong driver:
          # - LIBVA_DRIVER_NAME=iHD
        restart: unless-stopped

    docker run

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

    Verify inside the container

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

    FFmpeg lists h264_vaapi, hevc_vaapi, av1_vaapi, and the *_qsv encoders out of the box. If VAAPI is healthy, Alchemist probes 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.

    Authoritative source

    This page is generated from the editable Markdown in the Alchemist repository.

    View docs/content/hardware/intel.md at aeebc48

    Documentation © Brooklyn Halmstad. Licensed under CC BY-SA 4.0.

    A Dead Signal Works project.