dangeroustech / dangeroustech/StreamDL
feat(qsv): optional client image with Quick Sync / VAAPI-capable FFmpeg
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 19
- Forks
- 0
- Avg merge
- 29m
- Merged PRs (30d)
- 1
Description
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: #610 (Phase 1 — /dev/dri passthrough docs/compose)
Today Dockerfile.client copies binaries from mwader/static-ffmpeg, which cannot use QSV/VAAPI. Device passthrough alone is insufficient.
Note: Prefer this issue over earlier duplicate drafts (#606, #608) if those remain open — this token cannot close them.
Scope
- Add an optional image tag (recommended:
client_*-qsvor similar) based on a distro image with Intel media stack + FFmpeg (qsvand/orvaapiinffmpeg -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_OPTSand/orpost_scriptfor 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 (follow-up)
- NVIDIA NVENC / AMD AMF
Depends on
- #610
Acceptance
- Optional published client image where
ffmpeg -hide_banner -hwaccelslistsqsvand/orvaapi - Default client image unchanged
- Docs for running with
/dev/dri+ at least one working encode example (in-process EXTRA opts or post_script) - Clear failure notes when device/drivers are missing
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Dockerfile.client and the prerequisite /dev/dri passthrough work in #610. Check the image's FFmpeg entry point with ffmpeg -hide_banner -hwaccels, then document running the optional image with /dev/dri and an encode example using the existing FFMPEG_EXTRA_INPUT_OPTS, FFMPEG_EXTRA_OUTPUT_OPTS, or post_script. Done means the optional image exposes qsv or vaapi, the default image is unchanged, and missing-device or driver failures are documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, linux
- Domain
- devops, documentation, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100