The published FFmpeg 8.1.2 base image is valid, but app-side QSV initialization still emitted an unqualified -init_hw_device qsv=hw path and the Docker/test image references were pinned to FFmpeg 7.1.1. FFmpeg 8 works more reliably with a configured DRM render node when QSV is derived from the VAAPI device (vaapi=va:<render-node> then qsv=hw@va).
Verification
Baseline before changes: dotnet test ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj -v minimal on fresh origin/main: 18/18 passing
TDD red check: new QSV global-option test failed against current qsv=hw output
After fix: dotnet test ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj -v minimal: 20/20 passing
Built app image on bumblebee/192.168.1.99: ersatztv:issue9-ffmpeg8
build resolved base image digest sha256:89bf7b6b563d21d7cf49b102ca495fd143028c05e8c9779cd5c1366d9cf823a7
Built app image smoke on bumblebee:
ffmpeg -version reports 8.1.2
software lavfi libx264 encode succeeds
AMD VAAPI H.264 lavfi encode succeeds
Built updated ffmpeg-test image on bumblebee: ersatztv-ffmpeg-tests:issue9-ffmpeg8
Started ffmpeg-test runtime smoke; it ran real CPU-heavy libx265 transcode cases, but was stopped after several minutes due duration. Build is verified; full runtime completion is left to CI/longer manual run.
Notes
bumblebee currently exposes AMD VAAPI only (vendor=0x1002), so Intel QSV hardware transcode could not be fully smoked on that host.
## Summary
- derive QSV from the configured VAAPI render node when emitting QSV global options for FFmpeg 8 compatibility
- update the amd64 app Docker base image to `192.168.1.95:3000/timothy/ersatztv-ffmpeg:8.1.2`
- update the ffmpeg-test Docker image path to the internal FFmpeg 8.1.2 image and .NET 10 restore/build setup
- refresh docs that name the FFmpeg base image
Refs #9.
## Root Cause
The published FFmpeg 8.1.2 base image is valid, but app-side QSV initialization still emitted an unqualified `-init_hw_device qsv=hw` path and the Docker/test image references were pinned to FFmpeg 7.1.1. FFmpeg 8 works more reliably with a configured DRM render node when QSV is derived from the VAAPI device (`vaapi=va:<render-node>` then `qsv=hw@va`).
## Verification
- Baseline before changes: `dotnet test ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj -v minimal` on fresh `origin/main`: 18/18 passing
- TDD red check: new QSV global-option test failed against current `qsv=hw` output
- After fix: `dotnet test ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj -v minimal`: 20/20 passing
- Built app image on `bumblebee`/`192.168.1.99`: `ersatztv:issue9-ffmpeg8`
- build resolved base image digest `sha256:89bf7b6b563d21d7cf49b102ca495fd143028c05e8c9779cd5c1366d9cf823a7`
- Built app image smoke on `bumblebee`:
- `ffmpeg -version` reports 8.1.2
- software lavfi `libx264` encode succeeds
- AMD VAAPI H.264 lavfi encode succeeds
- Built updated ffmpeg-test image on `bumblebee`: `ersatztv-ffmpeg-tests:issue9-ffmpeg8`
- Started ffmpeg-test runtime smoke; it ran real CPU-heavy `libx265` transcode cases, but was stopped after several minutes due duration. Build is verified; full runtime completion is left to CI/longer manual run.
## Notes
`bumblebee` currently exposes AMD VAAPI only (`vendor=0x1002`), so Intel QSV hardware transcode could not be fully smoked on that host.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
192.168.1.95:3000/timothy/ersatztv-ffmpeg:8.1.2Refs #9.
Root Cause
The published FFmpeg 8.1.2 base image is valid, but app-side QSV initialization still emitted an unqualified
-init_hw_device qsv=hwpath and the Docker/test image references were pinned to FFmpeg 7.1.1. FFmpeg 8 works more reliably with a configured DRM render node when QSV is derived from the VAAPI device (vaapi=va:<render-node>thenqsv=hw@va).Verification
dotnet test ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj -v minimalon freshorigin/main: 18/18 passingqsv=hwoutputdotnet test ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj -v minimal: 20/20 passingbumblebee/192.168.1.99:ersatztv:issue9-ffmpeg8sha256:89bf7b6b563d21d7cf49b102ca495fd143028c05e8c9779cd5c1366d9cf823a7bumblebee:ffmpeg -versionreports 8.1.2libx264encode succeedsbumblebee:ersatztv-ffmpeg-tests:issue9-ffmpeg8libx265transcode cases, but was stopped after several minutes due duration. Build is verified; full runtime completion is left to CI/longer manual run.Notes
bumblebeecurrently exposes AMD VAAPI only (vendor=0x1002), so Intel QSV hardware transcode could not be fully smoked on that host.