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 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_*-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 (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
- 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 existing Phase 1 device passthrough/docs. Define the optional image variant and verify on Intel hardware that ffmpeg -hide_banner -hwaccels lists qsv and/or vaapi with /dev/dri; document one working encode using FFMPEG_EXTRA_INPUT_OPTS, FFMPEG_EXTRA_OUTPUT_OPTS, or post_script, plus missing-device and driver failures, while leaving the default image unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- devops, documentation, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100