build: upgrade ffmpeg base image to 8.1.2

Refs #4
This commit is contained in:
2026-07-01 01:39:00 +02:00
parent d96d3a8c87
commit 5b09d75923
4 changed files with 15 additions and 12 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ on:
env:
REGISTRY: 192.168.1.95:3000
IMAGE_NAME: timothy/ersatztv-ffmpeg
RELEASE_VERSION: 7.1.1
RELEASE_VERSION: 8.1.2
jobs:
build:
+5 -5
View File
@@ -11,7 +11,7 @@ images/linux/amd64/Dockerfile # The main (and only) Dockerfile
## How It Works
Single-stage compile of FFmpeg 7.1.1 from source on Ubuntu Noble (`ghcr.io/linuxserver/baseimage-ubuntu:noble`). The Dockerfile:
Single-stage compile of FFmpeg 8.1.2 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.)
@@ -27,17 +27,17 @@ All pinned via ENV vars at the top of the Dockerfile. To bump a library version,
```bash
# Local build (takes 20-30 minutes)
docker build -f images/linux/amd64/Dockerfile -t ersatztv-ffmpeg:7.1.1 .
docker build -f images/linux/amd64/Dockerfile -t ersatztv-ffmpeg:8.1.2 .
```
## Deployment
- Built image is pushed to Gitea registry as `192.168.1.95:3000/timothy/ersatztv-ffmpeg:7.1.1`
- Built image is pushed to Gitea registry as `192.168.1.95:3000/timothy/ersatztv-ffmpeg:8.1.2`
- Referenced by ErsatzTV's `docker/Dockerfile` as the `runtime-base` stage
- Only amd64 — jazz (192.168.1.99) is x86_64
- Only amd64 — bumblebee (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`
- Test FFmpeg binary works before pushing: `docker run --rm ersatztv-ffmpeg:8.1.2 -version`
- When bumping FFmpeg or library versions, update RELEASE_VERSION in `.gitea/workflows/build.yml`
+2 -2
View File
@@ -6,7 +6,7 @@ Built for amd64 only. Images are modified versions of those found at [jrottenber
## What's included
FFmpeg 7.1.1 compiled from source with:
FFmpeg 8.1.2 compiled from source with:
- **NVIDIA**: CUDA 11.4, NVENC/NVDEC/CUVID
- **Intel QSV**: oneVPL, iHD driver 25.1.4
- **VAAPI/VDPAU/Vulkan**: full hardware acceleration stack
@@ -17,5 +17,5 @@ FFmpeg 7.1.1 compiled from source with:
## Build
```bash
docker build -f images/linux/amd64/Dockerfile -t ersatztv-ffmpeg:7.1.1 .
docker build -f images/linux/amd64/Dockerfile -t ersatztv-ffmpeg:8.1.2 .
```
+7 -4
View File
@@ -8,8 +8,10 @@ ENV MAKEFLAGS="-j4" \
PATH="/root/.cargo/bin:${PATH}"
ENV AOM=v3.12.0 \
CARGOC=0.10.23+cargo-0.97.1 \
CBINDGEN=0.29.4 \
FDKAAC=2.0.3 \
FFMPEG_HARD=7.1.1 \
FFMPEG_HARD=8.1.2 \
FONTCONFIG=2.16.0 \
FREETYPE=2.13.3 \
FRIBIDI=1.0.16 \
@@ -32,6 +34,7 @@ ENV AOM=v3.12.0 \
OPENCOREAMR=0.1.6 \
OPENJPEG=2.5.3 \
OPUS=1.5.2 \
RUST=1.94.0 \
SHADERC=v2025.1 \
THEORA=1.1.1 \
VORBIS=1.3.7 \
@@ -110,12 +113,12 @@ RUN apt-get -yqq update && \
apt-get autoremove -y && \
apt-get clean -y && \
mkdir -p /tmp/rust && \
RUST_VERSION=$(curl -fsX GET https://api.github.com/repos/rust-lang/rust/releases/latest | jq -r '.tag_name') && \
curl -fo /tmp/rust.tar.gz -L "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" && \
curl -fo /tmp/rust.tar.gz -L "https://static.rust-lang.org/dist/rust-${RUST}-x86_64-unknown-linux-gnu.tar.gz" && \
tar xf /tmp/rust.tar.gz -C /tmp/rust --strip-components=1 && \
cd /tmp/rust && \
./install.sh && \
cargo install cargo-c cbindgen --locked && \
cargo install cargo-c --version ${CARGOC} --locked && \
cargo install cbindgen --version ${CBINDGEN} --locked && \
python3 -m venv /lsiopy && \
pip install -U --no-cache-dir \
pip \