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.

  • marv99@feddit.orgM
    link
    fedilink
    Deutsch
    arrow-up
    3
    ·
    edit-2
    16 days ago

    Ich kenne ffmpeg mit h264_nvenc (Nvidia) und h264_vaapi (Intel GPU). Funktioniert hervorragend, war aber in den Details knifflig, bis alle Parameter richtig waren.
    Wie sieht Dein ffmpeg Script aus und was klappt nicht?

    • Kacktusse@feddit.orgOP
      link
      fedilink
      Deutsch
      arrow-up
      1
      ·
      13 days ago

      Ich habe jetzt nochmal mittels KI und bisschen intensiveren befassen mit ffmpeg das script zum laufen gebracht. Es läuft sehr gut und die CPU wird nicht mehr belastet. Soll ich das script trotzdem mal posten?

        • Kacktusse@feddit.orgOP
          link
          fedilink
          Deutsch
          arrow-up
          2
          ·
          edit-2
          13 days ago

          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”

          echo "=== Remux: $name ==="
          ffmpeg -y -i "/tmp/${name}.ts" -map 0:v -map 0:a -c copy "/output/${name}.mkv"
          rm "/tmp/${name}.ts"
          

          done ’

          Das Dockerfile dazu:

          FROM debian:12-slim

          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”