`Tools/demo-medien.sh` legt unter `~/.flaro-medien` einen kleinen Bestand an: Der Untergang, Matrix, Blade Runner 2049, Inception, Dark mit drei Folgen, Notruf Hafenkante. Echte Namen, damit TMDB etwas zu finden hat — aber jede Datei ist zwei Sekunden Testbild mit Ton und wiegt ein paar Kilobyte. **Eine davon hat zwei Tonspuren**, Deutsch und Audiodeskription, mit gesetzter Sprache und gesetztem Namen. Das ist der Fall, um dessentwillen der ganze Server existiert: Jellyfins Transcode-Endpunkt bildet eine Tonspur je Sitzung ab, und einmal hat die App dabei still die Audiodeskription gewählt — drei Gigabyte Mobilfunk für eine unbrauchbare Datei. Wer das nachstellen will, braucht eine Datei, die es kann. `docker-compose.local.yml` daneben: benannte Volumes statt NAS-Pfaden, Port 18080 statt 8080, Beiwerk eingeschaltet. **`user: "0:0"` ist eine Mac-Eigenheit und steht deshalb kommentiert da.** Colimas Dateifreigabe reicht die Besitzverhältnisse des Wirts nicht in die VM durch — eingehängte Ordner erscheinen im Container als root, und ein Server, der als 1000 läuft, kann dort keine NFO ablegen. Auf einem Linux-NAS gehört die Zeile weg. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
44 lines
1.7 KiB
Bash
Executable File
44 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Erzeugt einen kleinen Bestand zum Ausprobieren: echte Dateinamen, winzige
|
|
# Dateien. Jede ist eine Sekunde Testbild mit Ton — damit der Scan, die
|
|
# Metadaten und das Umpacken etwas zu tun haben, ohne Gigabytes zu brauchen.
|
|
set -euo pipefail
|
|
ZIEL="${1:-$HOME/.flaro-medien}"
|
|
command -v ffmpeg >/dev/null || { echo "ffmpeg fehlt."; exit 1; }
|
|
|
|
mach() { # mach <pfad> <schachtel> [zweite-tonspur]
|
|
mkdir -p "$(dirname "$1")"
|
|
if [ "${3:-}" = "zwei" ]; then
|
|
ffmpeg -y -loglevel error \
|
|
-f lavfi -i "testsrc=duration=2:size=320x240:rate=12" \
|
|
-f lavfi -i "sine=frequency=440:duration=2" \
|
|
-f lavfi -i "sine=frequency=880:duration=2" \
|
|
-map 0:v -map 1:a -map 2:a \
|
|
-metadata:s:a:0 language=deu -metadata:s:a:0 title=Deutsch \
|
|
-metadata:s:a:1 language=deu -metadata:s:a:1 title=Audiodeskription \
|
|
-c:v libx264 -preset ultrafast -c:a aac "$1"
|
|
else
|
|
ffmpeg -y -loglevel error \
|
|
-f lavfi -i "testsrc=duration=2:size=320x240:rate=12" \
|
|
-f lavfi -i "sine=frequency=440:duration=2" \
|
|
-c:v libx264 -preset ultrafast -c:a aac "$1"
|
|
fi
|
|
echo " $(basename "$1")"
|
|
}
|
|
|
|
echo "Filme:"
|
|
mach "$ZIEL/Filme/Der Untergang (2004)/Der Untergang (2004).mkv" mkv zwei
|
|
mach "$ZIEL/Filme/The Matrix (1999)/The Matrix (1999).mkv" mkv
|
|
mach "$ZIEL/Filme/Blade Runner 2049 (2017)/Blade Runner 2049 (2017).mp4" mp4
|
|
mach "$ZIEL/Filme/Inception (2010)/Inception (2010).mkv" mkv
|
|
|
|
echo "Serien:"
|
|
mach "$ZIEL/Serien/Dark/Staffel 1/Dark - S01E01.mkv" mkv
|
|
mach "$ZIEL/Serien/Dark/Staffel 1/Dark - S01E02.mkv" mkv
|
|
mach "$ZIEL/Serien/Dark/Staffel 2/Dark - S02E01.mkv" mkv
|
|
mach "$ZIEL/Serien/Notruf Hafenkante/Staffel 1/Notruf Hafenkante - S01E01.mkv" mkv zwei
|
|
|
|
chmod -R a+rwX "$ZIEL"
|
|
echo
|
|
echo "Fertig: $ZIEL"
|