dangeroustech / dangeroustech/StreamDL
feat(qsv): first-class FFmpeg hwaccel / codec presets
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 19
- Forks
- 0
- Avg merge
- 29m
- Merged PRs (30d)
- 1
Description
Goal
Add first-class StreamDL configuration for hardware-accelerated encode/decode (Intel QSV / VAAPI) instead of relying only on raw FFMPEG_EXTRA_* strings.
Context
Parent epic: #452
Depends on Phase 1 (device access) and Phase 2 (QSV-capable FFmpeg image).
Scope
- Env/flags such as
FFMPEG_HWACCEL=none|qsv|vaapiand video codec selection (copy/ software /h264_qsv/h264_vaapi, etc.) - Safe defaults preserving current behavior
- Soft failure: clear notice + fallback to copy/software when hwaccel init fails (configurable)
- Ensure download progress (#577) remains correct under hwaccel
- Keep
FFMPEG_EXTRA_INPUT_OPTS/FFMPEG_EXTRA_OUTPUT_OPTSas escape hatches
Out of scope
- Automatic GPU vendor discovery
- NVIDIA / AMD (separate issues)
- Forcing re-encode when stream copy is sufficient
Depends on
- Phase 1:
/dev/dripassthrough docs/compose - Phase 2: optional QSV/VAAPI-capable client image
Acceptance
- Documented presets for QSV and/or VAAPI on the QSV client image
- Default (no hwaccel) behavior unchanged
- Missing device/hwaccel produces a clear notice and configurable fallback
- Live + VOD paths covered; progress summary still works
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 the Phase 1 /dev/dri passthrough docs and compose configuration, then review the Phase 2 QSV/VAAPI-capable client image and the live/VOD paths. Check how progress work in #577 interacts with encoding. Done means documented presets, unchanged defaults, clear configurable fallback behavior, and coverage for live and VOD.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100