Files
Homelab--Bratonein-Kontroll…/Kapitel 13/Tutorial.md

4.4 KiB
Raw Blame History

🛠️ Kapitel 13 Clipper (Debian12LXC) Tutorial

Zu Beginn ein kurzer Hinweis: Grundlegendes wie das Anlegen eines LXC, SSHZugang oder die Einbindung einer Nextcloud haben wir in früheren Kapiteln gezeigt. Hier konzentrieren wir uns auf das, was Clipper besonders macht mit Erklärungen an den Stellen, wo Entscheidungen wichtig sind.


Ziel und Aufbau

Wir setzen Clipper in einem Debian12LXC auf und statten ihn mit ffmpeg sowie einem kleinen WatchService aus. Er beobachtet entweder einen NextcloudOrdner oder optional die Ablage des RTMPServers. Sobald dort neue Dateien erscheinen, erzeugt er verlustfreie Clips (oder, falls nötig, ReEncodeVersionen) und legt sie in einem Ausgabeverzeichnis ab. Am Ende hast du eine Instanz, die Highlights automatisch vorbereitet, ohne dass du manuell schneiden musst.


Voraussetzungen (knapp, aber konkret)

  • Debian12LXC nach unserem Grundsetup (1 vCPU, 512MB RAM, 816GB Platte).
  • ca. 10GB Speicherplatz für temporäre Dateien.
  • Pflicht: Zugriff auf einen NextcloudOrdner (WebDAV oder lokales Mount).
  • Optional: RTMPServer mit VODOrdner.
  • Optional: Nginx Proxy Manager für internen Zugriff.

1) System vorbereiten

Bevor wir ffmpeg und den WatchDienst installieren, bringen wir den Container auf Stand und holen uns die BasisTools.

apt update && apt upgrade -y
apt install -y ffmpeg curl nano unzip inotify-tools davfs2

Prüfe die Zeitsynchronisation falsche Zeitstempel machen Logs unübersichtlich:

timedatectl status

2) Ordnerstruktur anlegen

Wir brauchen eine saubere Struktur für Eingaben, Ausgaben, Temporärdateien und Logs.

mkdir -p /srv/clipper/{watch,out,temp,logs}

Prüfen:

ls -l /srv/clipper

Die Verzeichnisse watch, out, temp, logs sollten sichtbar sein.


3) NextcloudOrdner einbinden

Clipper arbeitet am einfachsten mit einem NextcloudOrdner. Wir binden diesen via WebDAV ein.

  1. Mountpunkt erstellen:
    mkdir -p /mnt/nextcloud
    
  2. Zugangsdaten in /etc/davfs2/secrets eintragen:
    https://deine-nextcloud.tld/remote.php/dav/files/USERNAME/   USERNAME   PASSWORT
    
  3. Mount testen:
    mount -t davfs https://deine-nextcloud.tld/remote.php/dav/files/USERNAME/ /mnt/nextcloud
    
  4. Symbolischen Link setzen:
    ln -s /mnt/nextcloud/Clips /srv/clipper/watch
    

Prüfen: Wenn du eine Datei in den NextcloudOrdner „Clips“ hochlädst, muss sie in /srv/clipper/watch erscheinen.


4) WatchScript erstellen

Jetzt kommt das Herzstück: ein Script, das neue Dateien erkennt und ffmpeg startet.

nano /usr/local/bin/clipper-watch.sh

Inhalt:

#!/bin/bash
inotifywait -m -e create -e moved_to /srv/clipper/watch --format '%f' | while read FILE
do
  echo "$(date) - Neuer Clip: $FILE" >> /srv/clipper/logs/clipper.log
  ffmpeg -i "/srv/clipper/watch/$FILE" -c copy "/srv/clipper/out/${FILE%.mp4}_clip.mp4"
done

Speichern und ausführbar machen:

chmod +x /usr/local/bin/clipper-watch.sh

5) Dienst unter Systemd einrichten

Damit das Script automatisch beim Booten startet, richten wir einen Service ein.

nano /etc/systemd/system/clipper.service

Inhalt:

[Unit]
Description=Clipper Watch Service
After=network.target

[Service]
ExecStart=/usr/local/bin/clipper-watch.sh
Restart=always

[Install]
WantedBy=multi-user.target

Aktivieren und starten:

systemctl enable --now clipper

Prüfen: Lade eine Datei in den NextcloudOrdner hoch. In /srv/clipper/out sollte ein Clip mit _clip.mp4 erscheinen. Logs siehst du mit:

tail -f /srv/clipper/logs/clipper.log

6) Optional RTMPVODs anbinden

Falls du bereits einen RTMPServer betreibst, kannst du dessen VODOrdner zusätzlich einhängen:

mount -t nfs 192.168.1.50:/vod /srv/clipper/watch

So landen Streams direkt im WatchVerzeichnis.


Ergebnis

Clipper überwacht nun automatisch deinen NextcloudOrdner. Jede neue Datei wird serverseitig verarbeitet und landet im Ausgabeordner. Optional lassen sich RTMPVODs nutzen. Dank Logs und Service läuft der Prozess stabil im Hintergrund.


Nächste Schritte

Im nächsten Kapitel kümmern wir uns um Backup (Basis, privat), damit deine Clips und die Konfigurationen dauerhaft gesichert sind.