dangeroustech / dangeroustech/StreamDL

feat(qsv): optional client image with Quick Sync / VAAPI-capable FFmpeg

Open
#611 0 comments 0 reactions 0 assignees View on GitHub

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_*-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 (follow-up)
  • NVIDIA NVENC / AMD AMF

Depends on

  • #610

Acceptance

  • Optional published client image where ffmpeg -hide_banner -hwaccels lists qsv and/or vaapi
  • 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.