dangeroustech / dangeroustech/StreamDL

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

Open
#606 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 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

  • 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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.