Files
ersatztv-ffmpeg/CLAUDE.md
Timothy 7df538e14e
Some checks failed
Build FFmpeg Image / Build amd64 image (push) Has been cancelled
Strip to amd64-only and adapt for Gitea Actions
Remove arm32v7 and arm64 Dockerfiles (only need amd64 for jazz).
Replace GitHub Actions multi-platform workflow with Gitea Actions
workflow targeting Gitea container registry. Add CLAUDE.md project
docs and update README for fork context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:13:34 +01:00

44 lines
1.6 KiB
Markdown

# ErsatzTV FFmpeg
Custom FFmpeg Docker image used as the base for ErsatzTV containers. Forked from [ErsatzTV/ErsatzTV-ffmpeg](https://github.com/ErsatzTV/ErsatzTV-ffmpeg) after upstream archival (Feb 2026).
## Project Structure
```
images/linux/amd64/Dockerfile # The main (and only) Dockerfile
.gitea/workflows/build.yml # Gitea Actions workflow
```
## How It Works
Single-stage compile of FFmpeg 7.1.1 from source on Ubuntu Noble (`ghcr.io/linuxserver/baseimage-ubuntu:noble`). The Dockerfile:
1. Installs build deps + Intel GPU SDK + CUDA toolkit
2. Compiles ~30 libraries from source (x264, x265, aom, dav1d, libass, etc.)
3. Compiles FFmpeg with all libraries linked
4. Copies only runtime artifacts (ffmpeg/ffprobe binaries + shared libs) into a clean runtime stage
5. Installs runtime GPU drivers (Intel compute-runtime, Mesa, VAAPI/VDPAU/Vulkan)
## Library Versions
All pinned via ENV vars at the top of the Dockerfile. To bump a library version, update the corresponding ENV var and rebuild.
## Build
```bash
# Local build (takes 20-30 minutes)
docker build -f images/linux/amd64/Dockerfile -t ersatztv-ffmpeg:7.1.1 .
```
## Deployment
- Built image is pushed to Gitea registry as `192.168.1.95:3000/timothy/ersatztv-ffmpeg:7.1.1`
- Referenced by ErsatzTV's `docker/Dockerfile` as the `runtime-base` stage
- Only amd64 — jazz (192.168.1.99) is x86_64
## Conventions
- Keep all library versions pinned and explicit
- Test FFmpeg binary works before pushing: `docker run --rm ersatztv-ffmpeg:7.1.1 -version`
- When bumping FFmpeg or library versions, update RELEASE_VERSION in `.gitea/workflows/build.yml`