Goal
Ship an optional StreamDL client image variant whose FFmpeg can use Intel Quick Sync and/or VAAPI when /dev/dri is passed through.
Context
Parent epic: #452
Depends on Phase 1 device passthrough/docs.
Today Dockerfile.client copies binaries from mwader/static-ffmpeg, which cannot use QSV/VAAPI. Device passthrough alone is insufficient.
Scope
- Add an optional image tag (recommended:
client_*-qsv or similar) based on a distro image with Intel media stack + FFmpeg (qsv and/or vaapi in ffmpeg -hwaccels)
- Keep the current static-FFmpeg client as the default
- Document how to pull/run the QSV variant with
/dev/dri
- Document using existing
FFMPEG_EXTRA_INPUT_OPTS / FFMPEG_EXTRA_OUTPUT_OPTS and/or post_script for a working encode path
- Manual verification checklist on Intel hardware (CI runners typically lack iGPU)
Out of scope
- Replacing the default static client for everyone
- First-class StreamDL hwaccel presets (Phase 3)
- NVIDIA NVENC / AMD AMF
Depends on
- Phase 1: device passthrough docs/compose
Blocks
- Phase 3 first-class hwaccel knobs (needs a capable binary to target)
Acceptance
Goal
Ship an optional StreamDL client image variant whose FFmpeg can use Intel Quick Sync and/or VAAPI when
/dev/driis passed through.Context
Parent epic: #452
Depends on Phase 1 device passthrough/docs.
Today
Dockerfile.clientcopies binaries frommwader/static-ffmpeg, which cannot use QSV/VAAPI. Device passthrough alone is insufficient.Scope
client_*-qsvor similar) based on a distro image with Intel media stack + FFmpeg (qsvand/orvaapiinffmpeg -hwaccels)/dev/driFFMPEG_EXTRA_INPUT_OPTS/FFMPEG_EXTRA_OUTPUT_OPTSand/orpost_scriptfor a working encode pathOut of scope
Depends on
Blocks
Acceptance
ffmpeg -hide_banner -hwaccelslistsqsvand/orvaapi/dev/dri+ at least one working encode example (in-process EXTRA opts or post_script)