Communitygithub.com

shaycart/yap-video-skill

Roh-Talking-Head- / „Yap“-Aufnahmen in knackige Kurzvideos (9:16 Reels/TikTok/Shorts oder 16:9) schneiden – mit Transkript-gesteuerten Jump Cuts, Füller- und Stotterer-Entfernung, gesichtsgesteuerten Zoom-Effekten, Wort-für-Wort-Animationen, Sounddesign, Lautstärke-Mastering und QA.

Was ist yap-video-skill?

Dieses Skill verwandelt Rohmaterial von Talking-Head-Aufnahmen (z. B. Rants, Podcast-Clips, lange Monologe) in professionelle Kurzvideos. Es läuft vollständig lokal mit ffmpeg und Whisper – kein API-Key erforderlich; optional kann das bessere ElevenLabs Scribe verwendet werden. Der Workflow umfasst Transkription, Jump-Cuts, gesichtsgesteuerte Zooms, animierte Untertitel, Sounddesign (SFX, Musik), Grading und Lautstärke-Mastering. Es folgt einer strengen Pipeline: Zuerst wird ein Plan in Klartext erstellt und der Benutzer muss zustimmen, bevor gerendert wird. Die Quelldateien werden nie überschrieben; Zwischenschritte bleiben erhalten, bis der Benutzer die Bereinigung bestätigt. Das Skill vermeidet Schnitte innerhalb von Wörtern, kodiert jeden Schnitt neu (kein `-c copy`), fügt Untertitel erst nach Zooms/Overlays hinzu und validiert das Ergebnis mit Frame-Inspektion und Lautstärke-Messung. Es unterstützt kreative Entscheidungen wie Vibe, Caption-Stil, Sounddichte und Pacing, bietet aber auch sinnvolle Standardwerte, wenn der Benutzer „mach einfach“ sagt.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shaycart/yap-video-skill/tree/HEAD/skills/yap-video

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Yap Video Editor

Roh-Talking-Head-Aufnahmen in ein knappes, gestaltetes Kurzvideo verwandeln. Alles läuft lokal mit ffmpeg + lokalem Whisper; kein API-Key erforderlich (ElevenLabs Scribe ist ein optionaler, besserer Transkribierer).

Synthetisiert aus einer sicherheitsgeprüften Lektüre von: browser-use/video-use, adukhan98/video-edit, chrislema/videoeditor, zyziyun/video-studio, eyadhussain00-hub/Videoediting (nur Ideen), AgriciDaniel/claude-shorts, Barty-Bart/motion-graphics, ZiadAbdelkarim/beat-synced-edit, 6missedcalls/video-editing-skill, haidrrrry/claude-remotion-skill, digitalsamba/claude-code-video-toolkit, blixvip/easyedit (nur Ideen).

Genaue Zahlen befinden sich in references/params.md. Vor dem Erstellen von Filtergraphen lesen. references/pipeline.md ist das kampferprobte Implementierungsmuster aus echten Edits (Schnittplaner, L-Cut-Renderer, Pillow-Overlay, Sticker/Props, 4K-Master): diesem folgen, anstatt etwas neu zu erfinden.

Harte Regeln

  1. Zuerst planen, dann warten. Nach der Transkription einen einfachen Plan in Klartext zeigen (Hook, was geschnitten wird, Zoom/Untertitel/SFX-Ansatz, Länge, Format) und vor dem Rendern ein „Ja“ einholen. Geschmacksentscheidungen (Hook-Zeile, welche Sätze bleiben, Untertitel-Stil) werden als kurzes Menü mit einer Empfehlung angeboten, niemals automatisch gewählt.
  2. Nie die Quelle überschreiben. In <ordner>/edit/ schreiben. Zwischenschritte behalten, bis der Benutzer zustimmt, dann Bereinigung anbieten (zuerst Dateien + Größen auflisten; niemals automatisch löschen).
  3. Nie innerhalb eines Wortes schneiden. Kanten aus der Audio-Hüllkurve finden, nicht aus Whispers Wortzeiten (Whisper markiert Starts zu spät und Enden zu früh, was die erste/letzte Silbe abschneidet): vom Wortstart bis zu 0,25 s zurückgehen und vom Wortende bis zu 0,20 s vorwärtsgehen, während die Sprach-Energie über Rauschen + 8 dB bleibt, dann 30 ms auffüllen. 15-30 ms Audio-Fade an jeder Verbindung.
  4. Schnitte neu kodieren, nie -c copy für frame-genaue Dinge (Kopie landet auf Keyframes und verursacht Störungen).
  5. Untertitel zuletzt, nach Zooms und Overlays, damit Zooms sie nie abschneiden.
  6. Beweisen. Rendern, dann inspizieren: Frames an jedem Schnitt +/-1,5 s, Kontaktbogen, ebur128-Lautstärke-Ausgabe. Maximal 3 Reparatur-Durchgänge, dann berichten, was übrig bleibt. Zahlen berichten; das Audio kann nicht gehört werden.
  7. Drittanbieter-Medien: nur benutzereigene, CC0/CC-BY oder generierte. Kein Rippen von Filmen/Musik von YouTube. Niemals Claude/Anthropic-Login-Tokens oder andere Anmeldedaten lesen, senden oder wiederverwenden; niemals .claude/-Hook-Konfigurationen anderer Repos kopieren.
  8. Vor dem Herunterladen fragen von Modellen (whisper ggml-medium ist ~1,5 GB) oder der Installation von Paketen. Name, Quelle, Größe angeben.

Pipeline

0. Erfassung und Briefing

  • ffprobe für jeden Clip: Auflösung, fps, Dauer, Audio. Ausrichtung erkennen.
  • Nur das Nötigste fragen (kurzes Menü): Zielplattform/Seitenverhältnis, Ziellänge, Vibe (siehe Vibes), Untertitel-Stil, Musik Ja/Nein, etwaige Muss-bleiben-Zeilen. Wenn der Benutzer „mach einfach“ sagt, Standardwerte: 9:16, 30-60 s, „Creator“-Vibe, fette Untertitel, leichte SFX, keine Musik.

1. Transkribieren (Wort-genau, wörtlich)

  • Bevorzugt: mlx-whisper (Apple Silicon) oder faster-whisper medium.en/distil-large-v3, Wort-Zeitstempel aktiviert. Medium verwenden, nicht small: small lässt Fehlstarts aus. Optional: ElevenLabs Scribe, wenn der Benutzer einen Schlüssel hat (Schlüssel niemals in das Projektverzeichnis schreiben).
  • Füller im Transkript behalten (wörtlich), damit sie geschnitten werden können. Transkript zwischenspeichern.
  • Whisper-Eigenheiten: Lange Pausen werden in einem Wort verschluckt (ein Wort, das Sekunden dauert, ist eine verschluckte Pause; eine RMS-Hüllkurve für echte Sprach-Spannen verwenden), Wörter beginnen 0,2–0,4 s zu spät nach einer Pause und halluzinieren auf stummen Enden. Am Ende des echten Inhalts trimmen. Für Untertitel-Timing pro finalem Segment neu transkribieren.
  • Namen/Begriffe Korrektur lesen; eine Korrekturliste anwenden (chat gpt -> ChatGPT).

2. Die Geschichte auswählen (bei langen Yaps)

  • Kandidaten-Segmente 0–100 bewerten: Hook*0,30 + Kohärenz*0,25 + Emotion*0,20 + Wert*0,15 + Auszahlung*0,10. Starke Hooks: kühne/ konträre Behauptung, Neugier-Lücke, konkrete Zahl, Musterbruch. Schwach: „Also heute möchte ich über... sprechen“. Unabhängigkeitstest: kein „wie ich bereits sagte“, keine verweisenden Pronomen.
  • 15–55 s pro Segment (Sweet Spot 25–40), Punktzahl >= 60, Start an einen Wort-/Satzanfang rasten (1,5 s Fenster) und Ende an ein Satzende (3 s Fenster) + 300 ms Auffüllung.
  • Hook wird ZULETZT geschrieben/ausgewählt: ~5-12 nummerierte Kandidaten-Eröffnungen mit Text, Typ und Länge anbieten. Ergebnis-erster oder kühne-Behauptung-Kaltstart schlägt eine langsame Einleitung. Die ersten 1-3 s entscheiden alles.
  • Bei Ein-Take-Yaps: Nur umstellen, wenn es den Hook verbessert; sonst die Reihenfolge des Sprechers beibehalten.

3. Schneiden (straffen)

Straffheits-Profile (Pausen-Stauchung; Pausen werden verkürzt, nicht gelöscht):

ProfilPausen überBehalten
sanft0,80 s0,35-0,70 s
Standard0,45 s0,18-0,40 s (0,30 nach Satzende)
straff (Standard für Yap)0,25 s0,08-0,20 s
  • Erkennung: RMS-Hüllkurve in 10 ms Schritten, Sprache = Rauschen + 8 dB. Fallback: silencedetect=noise=-30dB:d=0,5.
  • Entfernen: Ähms/Ähs, Stottern und Neustarts, wiederholte Wörter, Fehlstarts, Wiederholungen (früherer Durchgang fliegt raus), Klappe/Ende, Räusperer („Also,“, „Im Grunde“). Semantische Füller („sozusagen“, „weißt du“) nur, wenn das Audio sie isoliert. Absichtliche Wiederholung zur Betonung behalten.
  • Wenig vertrauenswürdige oder mehrdeutige Schnitte (Wiederholungen, verschmolzene Füller, ASR-Rauschen) werden mit dem Benutzer bestätigt, nicht automatisch angewendet.
  • Jede Verbindung überprüfen: ein Fenster über jede Verbindung hinweg neu transkribieren; es muss die beabsichtigten Wörter ergeben. 2-3 Runden erwarten. Nach dem vollständigen Schnitt die Inhaltswörter mit dem Plan abgleichen; fehlschlagen, wenn welche verloren gehen.
  • Visuelle Prüfung: Schnittkanten vermeiden, bei denen der Sprecher auf Notizen blickt oder mitten im Blinzeln/Kopfbewegung ist; auf Kopfbewegungskanten mit <=30 ms beenden.
  • Frame-genaue Stücke: jedes Stück auf ganze Frames quantisieren (n = round(dur*fps)) und die Ausgabe-Zeitleiste daraus planen, sonst driften Untertitel (~1 s über 40 Schnitte).
  • L-Cuts: Bild und Ton getrennt rendern. Bei jeder neuen Zeile (nicht inneren Pausen-Stauchungen) liegt der Bildschnitt 2 Frames nach dem Tonschnitt; innere Stauchungen bleiben harte Schnitte. Glättet Jump Cuts ohne sichtbaren Lippensynchronfehler.
  • Auf Notizen hinunterblicken: in Abschnitten, in denen der Sprecher zwischen Phrasen nach unten blickt, härter straffen (Pausen über 0,10 s, je 0,03 s pro Seite behalten). Unterwärtsblicke während des Sprechens können nicht geschnitten werden; mit einem Zoom-In oder einem Sticker/B-Roll verstecken.
  • Die menschlichen Momente behalten, die der Benutzer wünscht (ein Lachen, eine Reaktion) als geschützte Bereiche mit rohen Kanten; auf genaue Sekunden kürzen, wenn gewünscht („0:09-0:11 schneiden“).
  • Tempo: alle 1,5-4 s ein neues visuelles Ereignis (Zoom, Untertitel-Betonung, Grafik, B-Roll); kein Standbild länger als ~8 s. Optional Beschleunigung 1,1-1,25x auf den Körper (niemals über ~1,3x, klingt unecht; Hook bis zu 1,5x ist die Obergrenze).

4. Zoom (gesichtsgesteuert)

  • Das Gesicht verfolgen: OpenCV Haar (opencv-python-headless<5) oder MediaPipe; alle 0,5 s pro Abschnitt sampeln, den Median nehmen, Detektionen unter 0,6x Medianbreite verwerfen, Totband 2 % der Frame-Breite, niemals innerhalb eines Abschnitts schwenken. Wenn ein Abschnitt weniger als 2 Treffer hat, von einem Nachbarn ausleihen.
  • Zoom-Leiter pro Abschnitt (3-6 s pro Abschnitt): normal 1,0x, Betonung ~1,15-1,25x, kritisch ~1,3-1,6x (Querformat). Für 9:16 aus 16:9 feste Höhenbrüche 1,0 / 0,92 / 0,85 verwenden (enger wirkt unangenehm).
  • Nach Dauer mischen: ~60 % normal / 30 % Betonung / 10 % kritisch. Erster Abschnitt normal. Nie mehr als 2 aufeinanderfolgende Abschnitte auf demselben Level. Betonungs-Zoom höchstens 1 von 4 Sätzen.
  • Stil-Auswahl (fragen oder aus Vibe ableiten):
    • Hard-Cut-Nahaufnahmen (Standard für Jump-Cut-Yaps): 1,0x und 1,15x über Jump-Cut-Segmente hinweg abwechseln, auf dem Hook gezoomt beginnen, Betonungssätze bei ~1,3x.
    • Sanfter Push-In bei Aufbauten: scale=w='iw*z(t)':h='ih*z(t)':eval=frame dann feste Größe crop, kubische Ausblendung (1-(1-t)^3), 0,4-0,5 s hinein. Zuerst an einem 2 s Clip testen; zoompan ist ruckelig.
    • Punch-and-Stay (1,16x, 0,5 s) 1-2 mal pro Video auf den Pointen.
  • Vertikale Rahmung: Gesicht bei ~30 % vom Crop-Oberrand; cy = min(face_cy - 0.3*ch, head_top - 0.03*ch).
  • Optionale Hiteffekte nur auf Spitzen: Schütteln, 2-Frame-Weißblitz, RGB-Split, Geschwindigkeitsrampe (siehe Parameter).

5. Untertitel (animiert, Wort-Ebene)

  • libass .ass aus Wort-Zeitstempeln generieren (nur statische Schriftinstanzen; variable Schriften hängen libass auf). Pro Segment neu transkribieren für genaues Timing.
  • Standard: 1-3 Wörter pro Stichwort (<=18 Zeichen), bei Satzzeichen und Pausen >=0,3 s brechen, min Stichwort 0,35 s (auf 3 Wörter wachsen anstatt zu blinken), 0,12 s nach letztem Wort halten. Schrift ~4,6 % der 1920-Canvas-Höhe (~88 px), ExtraBold, dicker Umriss oder weicher Schatten.
  • Looks (3 auf einem echten Frame als Raster rendern und vom Benutzer auswählen lassen):
    • Fett: Montserrat 800, GROSSBUCHSTABEN, weiß, aktives Wort gelb #FFD700, 3 px schwarzer Umriss, Feder-Pop-In.
    • Bounce: Display-Schrift, 1-2 Wörter, rotierende Akzentfarben, Überschwingen 0,7 -> 1,2 -> 1,0.
    • Clean: Inter 700, natürliche Groß-/Kleinschreibung, 3-5 Wörter, weicher Fade.
    • Hormozi-lite (Fallback): weiß mit schwarzem Umriss, zentriert.
  • Betonung: ~1 Schlüsselwort in 4 Wörtern erhält Farbe/Skalierung 112 %; Zahlen/Geld automatisch farbig (z. B. #3CE07A); ein Schlüsselwort pro Untertitelgruppe erhält 2-4x Größenbehandlung im „designten“ Vibe. Pop auf gesprochenem Wort: Skalierung 108-112 %, in ~110 ms zurückgenommen.
  • Platzierung: Plattform-Sicherheitszonen respektieren (universeller 9:16-Safe-Bereich x60-940, y285-1480). Reels-Untertitel y~1360, TikTok ~1400, Shorts ~1440. Niemals über dem Mund/Kinn. Zeilen nie mehr als 4 Wörter, ausbalancierte Stapelung.
  • Keine komprimierten Display-Schriften als Standard für Körper-Untertitel (wirkt beengt).

Creator-Typ-System (an echten Edits bewährt; Benutzer sagte „echter Content-Creator-Scheiß, aber sauber“):

  • Körper: Gotham Narrow Black (oder Montserrat 800), GROSSBUCHSTABEN, weiß, ~70 px bei 1080 w, dunkler Strich + weicher, verschwommener Schlagschatten. Wörter erscheinen, während sie gesprochen werden; nur das neueste Wort ist aktiv (gelb + 112% Pop, der über 3 Frames zurückgenommen wird). Niemals zwei hervorgehobene Wörter gleichzeitig.
  • Keine Satzzeichen in Untertiteln (Apostrophe und zensierte Schimpfwörter wie sh*t, f***ing behalten).
  • Schlüsselwörter (Produkt, Namen, Zahlen, das Thema): komprimiert Ultra (Gotham XNarrow Ultra), 1,5x, gelb, inline auf der Grundlinie.
  • Schrift-Akzent (SignPainter / eine Pinselschrift), creme, ~6 Grad geneigt, für maximal 4-6 emotionale Wörter pro Video.
  • Große Beats (Pointe, These, Produkt-Enthüllung): komprimiert Ultra Slam 1,28 -> 1,0 über 4 Frames, Wort für Wort, 200-250 px, unterhalb des Mundes (prüfen, ob der Punch-In-Zoom das Gesicht nach unten verschiebt).
  • Moment-Karten: Text, den der Sprecher nicht gesagt hat, den der Moment aber verdient (z. B. „lacht in reich“ in Schrift über einem Lachen).
  • Reihen-/Titelaufbau: Jede Titelzeile erscheint mit ihrem gesprochenen Wort (komprimierte Display-Zeile / Schrift-Zeile / Markenfarb-Zeile / nachgeführte Kapitälchen), unterhalb des Kinns platziert, niemals über dem Mund.
  • Schimpfwörter in Untertiteln nur auf Wunsch zensieren; Audio bleibt wie aufgenommen.
  • Vor dem Hinzufügen dauerhafter Labels (Tageszähler, Serien-Tags) fragen; Ersteller bevorzugen sie oft ausgeschaltet.

5b. Requisiten, Aufkleber und Ausschnitte (optional, hohe Wirkung)

  • Echte Personen-/Marken-Referenzen (z. B. „Bruce Wayne“, „Alfred“, ein Auto): EINMAL bei erster Erwähnung als weiß umrandeter Aufkleber-Ausschnitt zeigen (alpha MaxFilter ~19 px unter dem Ausschnitt), mit Überschwingen einblenden (0 -> 1,12 -> 1,0 in 0,22 s), sanftes Wackeln (+/-2,5 deg), ~1,9 s, ausblenden; oben links/rechts neben dem Kopf platzieren, niemals über dem Gesicht. Paaren mit einem SFX (Whoosh oder ein thematisches: Service-Klingel-Klingeln für einen Butler).
  • Objekte können sich bewegen: z. B. ein Auto-Ausschnitt, der auf seinem gesprochenen Wort über den unteren Rand fährt (Smoothstep über ~2 s, kleiner Sprung, 2 Geschwindigkeits-Geist-Kopien bei 18 %/32 % Alpha), mit einem Motor-Vorbeifahrt-SFX.
  • Quellen: zuerst Benutzer-Assets; für echte Personen offen lizenzierte Fotos verwenden (Wikimedia Commons CC BY / CC BY-SA / PD) und dem Benutzer die Credit-Zeile nennen; Hintergründe mit einem verfügbaren Tool (z. B. einer Hintergrundentfernungs-API oder rembg) nach Absprache entfernen. Nur für den persönlichen/sozialen Gebrauch, es sei denn, der Benutzer klärt die Rechte.

6. Sounddesign

Reihenfolge der Arbeit: zuerst Musik (falls vorhanden), dann Bild, zuletzt SFX.

  • Cues: Whoosh bei Layout-/Szenenwechseln und großen Kamerafahrten (2 Frames früher beginnen; beginnen nach Angriffszeit vor dem Kontakt-Frame); Pop bei Grafik-/Wort-Pop-Eingabe; Impact/Sub-Drop EINMAL auf dem Hook oder der Enthüllung; Riser, der auf dem nächsten Hit ENDET; Tick/Flick sparsam auf Highlights; Tippen = Tasten.
  • Zurückhaltung (am wichtigsten): SFX markieren Wechsel, nicht jedes Wort. Nichts auf Füller. Etwa 8 in 18 s wirkt designed; etwa 20 wirkt generisch. Dichte-Kappe: 2 pro 2 s Fenster für Talking-Head. Gleiches SFX innerhalb von 1,5 s wechselt Variante und reduziert sich um 1,5 dB pro Wiederholung. Intensitäts-Leiter: lockerer Yap = spärlich; Hype-Reel = Sound auf den meisten Beats; Corporate = fast keins.
  • Quellen: Benutzerbibliothek oder generieren (ElevenLabs sound-effects/generated pack) oder synthetischer Kit-Ansatz (Whoosh/Pop/Tick/Impact/Riser mit numpy/ffmpeg gebaut; keine Downloads). Platzieren per transientem Peak, +/-1 Frame.
  • Musik: optional. Bett um 10-15 dB unter Sprache geduckt (sidechaincompress=threshold=0.02:ratio=8:attack=20:release=350), Musik-Gain bei etwa -18 dB bei Ducking. Für Beat-Cut-Vibes: Beats erkennen (librosa), jeden Beat / 2 Beats / Takt schneiden, überprüfen, ob Schnitte innerhalb von 3 Frames landen.
  • Sprachkette, Mix, Limiter und Lautstärke-Ziele sind in references/params.md.

7. Look

  • Nur leichte Grading-Voreinstellung: warmer Punch-Preset oder automatischer Grading begrenzt auf +/-8 %. Keine Unschärfe bei statischen Talking Heads (sieht unecht aus). Optionales Korn 3-6 % und subtile Vignette für den „designten“ Vibe.
  • Log-Material (DJI Osmo Pocket 3 D-Log M, 10-Bit HEVC; Kamera taggt es als bt709, obwohl es Log ist): zuerst mit dem DJI D-Log M -> Rec.709 LUT konvertieren, dann darüber gradieren. In 16-Bit arbeiten: format=rgb48le,lut3d=file='<lut>.cube':interp=tetrahedral. Die LUT verdunkelt Mitten; bei Low-Key-Aufnahmen dunklerer Haut in Innenräumen Mitten anheben, anstatt zu quetschen. Getesteter Startpunkt (Look: satte Schwarztöne, leicht kühler Raum, natürliche Haut): curves=master='0/0 0.04/0.025 0.25/0.31 0.6/0.70 0.9/0.92 1/0.98',colorbalance=rs=-0.025:bs=0.04:rm=0.03:bm=-0.015,eq=saturation=1.06,unsharp=5:5:0.3. Vor dem Batch-Rendering immer Rohbild | LUT | Grading auf 2 Frames nebeneinander rendern und ansehen. Shots einzeln gradieren, wenn sich die Beleuchtung ändert; die Quell-Bildrate beibehalten (24000/1001).
  • Pocket 3 vertikale Clips sind 1728x3072 (oder 2160x3840): genug Kopffreiheit für 1,15-1,3x Punch-Ins. Bei Auswahl eines 4:3-Crops die horizontale Mitte verwenden; den vertikalen Versatz auf Basis des Gesichtsverfolgers einstellen; in der Vorschau prüfen, dass Arme/Handgesten nicht abgeschnitten werden.

8. Master und Export

  • Auflösung: Zielseitenverhältnis (9:16 oder 16:9) mit min. 1080p; skalieren, dann auf das Zielseitenverhältnis zuschneiden. Codec: libx264 CRF 18 oder libx265 CRF 22 (bei HEVC bevorzugt, wenn der Benutzer keine Kompatibilitätsprobleme erwartet). Audio: AAC 192 kbps, loudnorm=I=-14:LRA=2:TP=-1.5 (oder ebur128 auf I=-14 ±0,5 LU und TP <= -1,5 dBFS überwachen).
  • Metadaten: den Dateinamen mit einem relevanten, von der KI generierten Titel und Datum versehen; keine EXIF- oder Kamerametadaten in der endgültigen Datei (für Datenschutz).
  • Bereitstellungs-Kopie: eine separate Datei mit Standard-Beschreibung/Hashtags/Thumbnail-Vorschlag erzeugen. Dem Benutzer Angebot machen, die Datei dorthin zu verschieben, wo sie veröffentlicht werden soll.

Werkzeuge (ffmpeg + Python)

Skripte unter scripts/ – Pfade sind relativ zum Projektstamm:

SkriptZweck
transcribe.pyWörtliches Transkript + Wort-Start-/Endzeiten als JSON ausgeben
cut.pySchnittentscheidungen aus Schnittliste anwenden (übernimmt start, end Paare aus JSON)
zoom.pyEinen einzelnen gesichtsgesteuerten Zoom auf ein Segment anwenden
captions.pyEine Untertitel-Spur (ASS) aus dem JSON des Transkripts zusammenbauen und mit ffmpeg brennen
sound_design.pySFX aus dem Kit oder einer Bibliothek auf den Schnitt anwenden, Pegel und Ducking einstellen
master.pyAll-in-One: transkribieren, schneiden, zoomen, untertiteln, Sound-Design, Master-Export
qa.pyAusgabe-Inspektion: Bild-Frames an jedem Schnitt, Lautstärke, Kontaktbogen

Führe Skripte immer vom Projektstamm aus:

python scripts/transcribe.py <video> <output_json>
python scripts/cut.py <video> <cuts_json> <output_video>

Qualitätssicherung (QA)

Nach jedem Rendern: python scripts/qa.py <output_video> ausführen. Es gibt aus:

  • Frames an jedem Schnitt +/-1,5 s (zur visuellen Inspektion).
  • ebur128-Lautstärke-Ausgabe (integrierte LUFS, LRA, Spitzenpegel).
  • Kontaktbogen (eine Seite mit jedem 10. Frame im Ausgabe-Video).

Wenn der Benutzer nach 3 Reparatur-Durchgängen nicht zufrieden ist, das Problem melden, nicht weiter optimieren.

Referenzen

  • references/params.md – Erklärte Farben, Zoom-Dauer, Schriftgrößen, Lautstärke-Ziele.
  • references/pipeline.md – Das bewährte Pipeline-Muster (Schnittplaner, L-Cut-Renderer usw.).
  • references/sfx/ – Synthetisches Kit (Whoosh, Pop, Tick, Impact, Riser), generiert mit numpy/ffmpeg.

Lass uns eine Yap bearbeiten. Gib eine Videodatei an (oder einen Ordner mit Clips) und ich erstelle einen Edit-Plan für deine Freigabe.

Verwandte Skills