Ich bin derzeit dran, meine DVD-Sammlungen mit den Container-Programmen ARM (Automatic Ripping Machine), MakeMKV und Handbrake semi automatisch mit meinen Server zu digitalisieren. Das funktioniert auch eigentlich ganz gut über die grafischen Oberflächen.
Eventuell mache ich das umständlich aber das ist erst mal okay: Ich lese die DVD (hier die Columbo Serie) mir ARM ein. Dann erstelle ich darauf mit MakeMKV die .mkv Datei. Mit Handbrake (jlesage/handbrake) lasse ich die zwei Folgen pro DVD encoden. Mit Jellyfin erstelle/ korrigiere ich die Metadaten. Wenn Handbrake arbeitet ist die CPU Auslastung meines Servers bei 2/3 Auslastung (hab ich im Image jedoch begrenzt) und die Arbeitstemperatur steigt jenseits der 80° C. Da der nur passiv gekühlt ist, nervt es den mit einem externen Lüfter zu kühlen.
Jetzt war meine Idee, ich kaufe mir die Radeon RX 550 welche theoretisch für meinen Thinclient (Fujitsu Futro S930) geeignet ist ein und lass das encodieren die GPU übernehmen.
Naiver weise dachte ich, ich stecke die RX 550 rein und die Karte übernimmt direkt das encodieren. War aber nicht so und da ich von der Thematik keine Ahnung habe habe ich die KI bemüht. Die half mir so gar nicht. Am Ende von den ganzen Test die ich machen sollte und Treiber installieren und Images umschreiben (weil jlesage/handbrake wohl kein ACN unterstützt) sagte die mir: Dann nutze anstatt Handbrake ein FFmpeg Script. Aber das klappte auch nicht. Nach vielen Versuchen das Scipt umzuschreiben, meinte die KI ich soll doch die CPU für das Rendering benutzten. Toll, danke dafür.
Zu dem Zeitpunkt (gestern Nacht um halb 2) habe ich dann aufgegeben.
Ich nutzte auf dem Fujitsu Open Media Vault AMD GX-424CC SOC with Radeon™ R5E Graphics + Radeon RX 550 Version: 7.7.24-7 (Sandworm) Kernel: Linux 6.12.95+deb12-amd64
** Hier sind doch bestimmt erfahrene Nutzer die sich mit dem Thema auskennen und Tipps und Ideen haben, wie ich das ganze zum laufen bringen kann.**
Nach bisschen experimentieren und KI Unterstützung habe ich das ffmpeg Script zum laufen gebracht. Keine CPU Auslastung mehr beim encodieren. Jetzt lade/entschlüssele ich die DVD mit makeMKV und das script nimmt alle Dateien und encodiert sie dann in den Serien Ordner. Von da muss ich sie dann manuell in den Columbo Ordner kopieren. Datengröße pro Episode 2,9 GB bis 4,2 GB.
Bei einzelnen Filmen muss ich das ganze mal mir der ARM probieren. Diese unterstützt auch ffmpeg und hat bei Filmen nicht das Problem, dass die Serien in Kapitel unterteilt sind.
Jetzt noch ein BluRay Laufwerk und dann mal sehen wie die GPU damit ausgelastet wird.


docker exec -it ffmpeg-vaapi sh -c ’ for f in /input/*.mkv; do name=$(basename “$f” .mkv) echo “=== Encoding: $name ===” ffmpeg -y -vaapi_device /dev/dri/renderD129
-hwaccel vaapi -hwaccel_output_format vaapi
-i “$f”
-c:v h264_vaapi -qp 22
-c:a copy -map 0:v -map 0:a
-f mpegts “/tmp/${name}.ts”
done ’
Das Dockerfile dazu:
ENV DEBIAN_FRONTEND=noninteractive
ENV LIBVA_DRIVER_NAME=radeonsi ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
ENV AMD_VENDOR_ID=0x1002 ENV TARGET_DEVICE_ID=0x699f
RUN apt-get update &&
apt-get install -y --no-install-recommends
ffmpeg
mesa-va-drivers
libva2
libva-drm2
libva-x11-2
vainfo
libdrm2
libdrm-amdgpu1
pciutils
&& rm -rf /var/lib/apt/lists/*
RUN set -eux;
ffmpeg -hide_banner -hwaccels 2>/dev/null | grep -q ‘vaapi’;
ffmpeg -hide_banner -encoders 2>/dev/null | grep -q ‘h264_vaapi’;
ffmpeg -hide_banner -encoders 2>/dev/null | grep -q ‘hevc_vaapi’
Und der Container:
services: ffmpeg-vaapi: build: . image: ffmpeg-vaapi-rx550:latest container_name: ffmpeg-vaapi tty: true stdin_open: true devices: - /dev/dri:/dev/dri group_add: - “${RENDER_GID:-105}” - “${VIDEO_GID:-44}” environment: - LIBVA_DRIVER_NAME=radeonsi - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri volumes: # MakeMKV-Ausgabe (read-only) - /srv/dev-disk-by-uuid-349faf51-b2a2-491b-b6a1-28e890240283/make_mkv_completed:/input:ro # Transcodierte Dateien - /srv/dev-disk-by-uuid-349faf51-b2a2-491b-b6a1-28e890240283/Serien:/output restart: “no”