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>
5.8 KiB
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.mp4bzw.f01_de.mp4, Startbilderf01_c08_ende.png.
Short rendern
- Zeile in
katalog_shorts.csv(siehe Spalten unten), Clips vorhanden, Audio je Sprache vorhanden. python -I short_rendern.py --id S001,S002 --audio-ordner <Ordner>(oder--allefür alle Zeilen mit Statusoffen).- 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
- Schnittliste nach
schnittlisten\f01.csvkopieren (Vorlage) und ausfüllen: Clip, Ausschnitt,tempo,halten_s(Standbild, z. B. 3 für Mitmachpause),uebergang_s. - Ton je Sprache als fertige Spur (Sprache und Lieder schon an der richtigen Stelle, mit den Pausen).
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 entstehenshorts\,folgen\,startbilder\dort). - Vorhandene Dateien werden nicht überschrieben (
--ueberschreibenerlaubt 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.