Some checks failed
Build FFmpeg Image / Build amd64 image (push) Has been cancelled
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>
44 lines
1.6 KiB
Markdown
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`
|