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>
96 lines
5.8 KiB
Markdown
96 lines
5.8 KiB
Markdown
# 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.
|