youtube/schnitt/ANLEITUNG.md
Lara c27a7ab9f5 Pino-Material aus Laras Chat und Plan-Dokument ins Repo übernehmen
Alle 44 Tabs des Plan-Dokuments (Drehbücher, Sprechtexte DE/ES/FR,
Clip-Prompts, Adventskalender, Kanaltexte, Produktionsliste) als Markdown
unter drehbuecher/, konzept/, ideen/ und veroeffentlichung/. Dazu Projektstand
und Entscheidungen (wissen/), Schnitt-Pipeline, Shorts-Katalog,
Figuren-Referenzbilder und das Kinderkanal-Team als Subagenten
(.claude/agents/). Videos, Startbilder und Ton bleiben außerhalb des Git.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:50:01 +01:00

96 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Schnitt-Pipeline: Anleitung
Stand 27.10.2026. Alles liegt in `C:\Users\lk-lo\Pino-Kanal\schnitt\`.
## Überblick
| Datei / Ordner | Zweck |
|---|---|
| `pipeline\short_rendern.py` | Short (1080x1920) je Sprache aus einer Katalogzeile |
| `pipeline\folge_exportieren.py` | Folge oder Türchen (1280x720) je Sprache |
| `pipeline\letztes_bild.py` | letztes Bild eines Clips als PNG (für „Ende N“) |
| `pipeline\laengen_check.py` | Video gegen Audio je Sprache, Bericht als Textdatei |
| `pipeline\katalog_pruefen.py` | Katalog prüfen (Regeln, Längen, fehlende Clips, Abdeckung der Plätze) |
| `pipeline\testlauf.py` | Selbsttest mit Dummy-Material (schreibt nur nach `schnitt\test\`) |
| `katalog_shorts.csv` | Moment-Katalog (mit Excel öffnen, Trennzeichen Semikolon, UTF-8) |
| `schnittlisten\schnittliste_vorlage.csv` | Vorlage für eine Folge/ein Türchen |
| `ausgabe\` | Standard-Ausgabe: `shorts\`, `folgen\`, `startbilder\` |
| `berichte\` | Textberichte der Läufe |
| `tmp\` | Zwischendateien (die Skripte räumen eigene Dateien selbst auf) |
## Aufruf
Immer mit `python -I` (isolierter Modus). In Git Bash oder PowerShell:
```
cd C:\Users\lk-lo\Pino-Kanal\schnitt\pipeline
python -I katalog_pruefen.py
python -I short_rendern.py --id S001 --audio-ordner C:\Users\lk-lo\Pino-Kanal\ton\shorts
python -I folge_exportieren.py --name f01 --schnittliste ..\schnittlisten\f01.csv --audio-ordner C:\Users\lk-lo\Pino-Kanal\ton\f01
python -I letztes_bild.py --clip f01_c08
python -I laengen_check.py --name f01 --export-ordner ..\ausgabe\folgen
```
`--trocken` zeigt nur die ffmpeg-Befehle an. `--help` bei jedem Skript zeigt alle Optionen.
ffmpeg wird unter dem WinGet-Pfad gefunden (Umgebungsvariable `PINO_FFMPEG_ORDNER` überschreibt ihn).
## Namensregeln
- Clips: `f01_c09.mp4` (Folge 1, Clip 9), `t09_c03.mp4` (Türchen 9, Clip 3), `k_05.mp4` (Baustein, z. B. `k_01_kerze3.mp4`).
Ordner: `clips\folge01`, `clips\folge02`, `clips\folge03`, `clips\tuerchen`, `clips\bausteine`.
Wiederverwendete Clips immer unter dem Original-Namen nennen (Folge 2 Clip 54 = `f01_c54`).
- Clip-Listen im Katalog und in Schnittlisten: `f01_c08-13` = Clip 8 bis 13, mehrere mit Komma: `f01_c08-09, f01_c11-13`.
- Audio je Sprache: `S001_de.wav`, `S001_es.wav`, `S001_fr.wav` (Shorts) bzw. `f01_de.wav` … (Folgen). Auch mp3/m4a/flac.
Standard-Ordner, wenn nichts angegeben ist: `Pino-Kanal\ton\shorts` (noch nicht angelegt, per `--audio-ordner` änderbar).
- Ausgabe: `S001_de.mp4` bzw. `f01_de.mp4`, Startbilder `f01_c08_ende.png`.
## Short rendern
1. Zeile in `katalog_shorts.csv` (siehe Spalten unten), Clips vorhanden, Audio je Sprache vorhanden.
2. `python -I short_rendern.py --id S001,S002 --audio-ordner <Ordner>` (oder `--alle` für alle Zeilen mit Status `offen`).
3. Ohne Katalog: `--clips "f01_c08-13" --modus blur --audio de=a.wav es=b.wav fr=c.wav --name probe`.
Was passiert: Clips mit 0,5 s Überblendung aneinander, Zuschnitt `crop` (Mitte per `crop_x` 0 bis 1) oder `blur`
(scharfes 16:9-Bild in der Mitte, unscharfer Rahmen), `tempo` 0,8 bis 1, dann `start_s`/`ende_s` auf der entstandenen Folge,
1 s Ausblenden am Ende (Bild und Ton), Sprache (+ optional `--musik`, leise, wird bei Sprache abgesenkt), zweistufig auf −14 LUFS.
Jede Sprache wird so lang wie ihr Ton (+0,8 s). Ist der Ton länger als die Clips, wird das letzte Bild gehalten, ab 3 s mit Warnung.
Pro Clip können `modus` und `crop_x` mit `|` getrennt angegeben werden (`crop|blur|blur`).
Katalog-Spalten: `id; quelle; clips; tempo; start_s; ende_s; modus; crop_x; musik; thema; titel_de; titel_es; titel_fr;
frueheste_veroeffentlichung; fenster; ton_hinweis; status_de; status_es; status_fr`.
`fenster` A = bis 27.11., B = bis 10.12., C = danach. `status_*`: `offen`, `gerendert`, `eingeplant`, `veröffentlicht` (von Hand pflegen).
## Folge / Türchen exportieren
1. Schnittliste nach `schnittlisten\f01.csv` kopieren (Vorlage) und ausfüllen: Clip, Ausschnitt, `tempo`, `halten_s` (Standbild, z. B. 3 für Mitmachpause), `uebergang_s`.
2. Ton je Sprache als fertige Spur (Sprache und Lieder schon an der richtigen Stelle, mit den Pausen).
3. `python -I folge_exportieren.py --name f01 --schnittliste ..\schnittlisten\f01.csv --audio-ordner <Ordner>`.
Eine Bildspur für alle Sprachen. Die Länge richtet sich nach der längsten Sprache; alle Fassungen werden gleich lang.
Das Skript warnt, wenn das Bild am Ende mehr als 3 s gehalten werden muss, wenn eine Sprache mehr als 8 s vor Bildende endet
oder wenn die Sprachen mehr als 20 % auseinanderliegen. Dann besser eine Schnittliste je Sprache:
`--schnittliste ..\schnittlisten\f01_{lang}.csv` (dann entsteht je Sprache eine eigene Bildspur).
Mehr als 70 Clips in einer Schnittliste werden abgelehnt: die Gesamtfolge aus fertigen Türchen-Exporten zusammensetzen.
## Letztes Bild
`python -I letztes_bild.py --clip f01_c08 f01_c09` oder `--ordner folge01` schreibt `f01_c08_ende.png` (Original-Auflösung, verlustfrei).
Das ist das Startbild für Clip 9.
## Längen-Check
- Vorab: `--name f01 --schnittliste … --audio-ordner …` (Bildlänge gegen Ton je Sprache, Differenz in Sekunden).
- Nachher: `--name f01 --export-ordner ..\ausgabe\folgen` (Auflösung, Bild- und Tonlänge, Lautheit, True Peak).
- Bericht: `berichte\laengen_<name>_<zeit>.txt`. Rückgabecode 1 = es gibt Warnungen.
## Sicherheitsregeln der Skripte
- Geschrieben wird nur unter `schnitt\`. Andere Ziele (z. B. `Pino-Kanal\shorts`) nur mit `--ausserhalb`, z. B.
`--ausgabe C:\Users\lk-lo\Pino-Kanal --ausserhalb` (dann entstehen `shorts\`, `folgen\`, `startbilder\` dort).
- Vorhandene Dateien werden nicht überschrieben (`--ueberschreiben` erlaubt es).
- Clips und Audio werden nur gelesen.
## Zielwerte
−14 LUFS integriert, True Peak höchstens −1,5 dBFS, AAC 192 kbit/s, 48 kHz, H.264 CRF 18, 24 fps.
Shorts 20 bis 45 s, Ende ruhig. Kein eingebrannter Text, Untertitel nur als eigene SRT.