From 1e7509552a147e8763d25d983f56197889ee3d58 Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Sun, 24 Aug 2025 11:11:06 +0000 Subject: [PATCH] =?UTF-8?q?Kapitel=2013/Tutorial.md=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kapitel 13/Tutorial.md | 144 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 Kapitel 13/Tutorial.md diff --git a/Kapitel 13/Tutorial.md b/Kapitel 13/Tutorial.md new file mode 100644 index 0000000..c5c929e --- /dev/null +++ b/Kapitel 13/Tutorial.md @@ -0,0 +1,144 @@ +# 🛠️ Kapitel 13 – Clipper (Debian‑12‑LXC) – Tutorial + +Zu Beginn ein kurzer Hinweis: Grundlegendes wie das Anlegen eines LXC, SSH‑Zugang 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 Debian‑12‑LXC auf und statten ihn mit ffmpeg sowie einem kleinen Watch‑Service aus. Er beobachtet entweder einen Nextcloud‑Ordner oder optional die Ablage des RTMP‑Servers. Sobald dort neue Dateien erscheinen, erzeugt er verlustfreie Clips (oder, falls nötig, Re‑Encode‑Versionen) 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) +- Debian‑12‑LXC nach unserem Grundsetup (1 vCPU, 512 MB RAM, 8–16 GB Platte). +- ca. 10 GB Speicherplatz für temporäre Dateien. +- **Pflicht:** Zugriff auf einen Nextcloud‑Ordner (WebDAV oder lokales Mount). +- **Optional:** RTMP‑Server mit VOD‑Ordner. +- **Optional:** Nginx Proxy Manager für internen Zugriff. + +--- + +## 1) System vorbereiten +Bevor wir ffmpeg und den Watch‑Dienst installieren, bringen wir den Container auf Stand und holen uns die Basis‑Tools. + +```bash +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: +```bash +timedatectl status +``` + +--- + +## 2) Ordnerstruktur anlegen +Wir brauchen eine saubere Struktur für Eingaben, Ausgaben, Temporärdateien und Logs. + +```bash +mkdir -p /srv/clipper/{watch,out,temp,logs} +``` + +Prüfen: +```bash +ls -l /srv/clipper +``` +Die Verzeichnisse `watch`, `out`, `temp`, `logs` sollten sichtbar sein. + +--- + +## 3) Nextcloud‑Ordner einbinden +Clipper arbeitet am einfachsten mit einem Nextcloud‑Ordner. Wir binden diesen via WebDAV ein. + +1. Mountpunkt erstellen: + ```bash + 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: + ```bash + mount -t davfs https://deine-nextcloud.tld/remote.php/dav/files/USERNAME/ /mnt/nextcloud + ``` +4. Symbolischen Link setzen: + ```bash + ln -s /mnt/nextcloud/Clips /srv/clipper/watch + ``` + +Prüfen: Wenn du eine Datei in den Nextcloud‑Ordner „Clips“ hochlädst, muss sie in `/srv/clipper/watch` erscheinen. + +--- + +## 4) Watch‑Script erstellen +Jetzt kommt das Herzstück: ein Script, das neue Dateien erkennt und ffmpeg startet. + +```bash +nano /usr/local/bin/clipper-watch.sh +``` +Inhalt: +```bash +#!/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: +```bash +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. + +```bash +nano /etc/systemd/system/clipper.service +``` +Inhalt: +```ini +[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: +```bash +systemctl enable --now clipper +``` + +Prüfen: Lade eine Datei in den Nextcloud‑Ordner hoch. In `/srv/clipper/out` sollte ein Clip mit `_clip.mp4` erscheinen. Logs siehst du mit: +```bash +tail -f /srv/clipper/logs/clipper.log +``` + +--- + +## 6) Optional – RTMP‑VODs anbinden +Falls du bereits einen RTMP‑Server betreibst, kannst du dessen VOD‑Ordner zusätzlich einhängen: +```bash +mount -t nfs 192.168.1.50:/vod /srv/clipper/watch +``` +So landen Streams direkt im Watch‑Verzeichnis. + +--- + +## Ergebnis +Clipper überwacht nun automatisch deinen Nextcloud‑Ordner. Jede neue Datei wird serverseitig verarbeitet und landet im Ausgabeordner. Optional lassen sich RTMP‑VODs 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.