Kurzvideo-Schnitt-Skill (Short Video Edit)
Arbeitshandbuch für KI-Agenten zum professionellen Videoschnitt. Ziel ist ein „professionelles“ Endergebnis, nicht nur „brauchbar“.
Eine Kernentscheidung: Die Qualität des fertigen Videos wird zu 90 % vor dem Rendern bestimmt (Fakten, Stil, Storyboard) und nur zu 10 % durch das Rendern selbst. Daher wird kein vollständiges Video gerendert, bevor die Vorarbeiten nicht abgeschlossen sind.
Die in diesem Skill enthaltenen Tools befinden sich im Ordner tools/ (Der Pfad <skill>/tools/ bezieht sich auf diesen Ordner). Benötigte Software: ffmpeg, python3; ocr_check.py benötigt macOS und swiftc; hf_lint.py wird nur benötigt, wenn Sie HyperFrames für Textkarten verwenden. Die Verwendung der Tools ist in tools/README.md beschrieben.
Rollen und Regeln
- Der Nutzer ist der Entscheider. Jede Phase ist erst abgeschlossen, wenn der Nutzer explizit zugestimmt hat (zitiere seine genauen Worte, keine Annahmen).
- Fakten und Text verwenden Sie nur die vom Nutzer bereitgestellten. Wenn Sie etwas ändern oder hinzufügen möchten, legen Sie dem Nutzer Optionen A/B/C zur Auswahl vor. Fügen Sie keine eigenen Zusätze hinzu (keine kleinen Texte, Slogans, Handlungsstränge).
- Fragen Sie bei Unsicherheiten nach, raten Sie nicht. Behaupten Sie nichts als Fakt, das Sie nicht verifiziert haben.
- Ändern sich die Anforderungen während der Arbeit, kehren Sie zur entsprechenden Phase zurück und arbeiten sie erneut durch. Nehmen Sie keine heimlichen Änderungen vor.
- Sendet der Nutzer mehrere kurze Nachrichten hintereinander, antworten Sie zuerst mit „Erhalten, ich warte, bis Sie fertig sind“ und handeln Sie erst, wenn er fertig ist.
Routing zu Beginn (Bestimme zuerst den Typ und lies den entsprechenden Abschnitt)
Ein Video kann mehreren Typen angehören. Lies dann alle relevanten Abschnitte.
| Aufgabe sieht so aus | Lies hier |
|---|---|
| „Filmisch“, „Trailer“, „Montage“, mehrere Clips zu einem emotionalen Clip zusammenschneiden | references/情境_预告片混剪.md + references/剪辑语法与叙事.md, 跨镜头连续性.md, 声画节奏与调色.md, 退件与验收格式.md |
| Hauptsächlich echte Personen, die sprechen, Inhalte schneiden, Untertitel hinzufügen | references/情境_口播演讲片.md |
| Die Hauptfigur ist eine gezeichnete Figur, die interagiert | references/情境_角色动画片.md |
| Statische Grafiken / Infografiken, die in ein Video verwandelt werden sollen | references/情境_图卡转动态影片.md |
| Bild-im-Bild, geteilter Bildschirm, Montage, Standbild, Zeitlupe/-raffer, Rückwärtslauf, Ken Burns usw. | references/技法库.md (mit getesteten ffmpeg-Befehlen, gekennzeichnet als getestet oder üblich) |
Übergänge: ob und welche, wie mit ffmpeg xfade | references/转场指南.md |
| Textkarten-Animationen, Diagramme, Übergangseffekte, Effektebenen, 3D / Three.js | references/动态图形与3D.md (dynamische Grafiken, Zahlen, Übergangsrezepte, Auswahl der Animations-Engine, wann 3D sinnvoll ist) |
| „Jahr N“-Rolling, Zeitraffer-Montage | references/情境_时间流逝蒙太奇.md |
| Keine Idee, wie es geht: Schnitttechnik, Animation, Tool-Auswahl | references/技法与工具目录.md (jeweils getestet oder üblich) |
| Prozessvideos (Kochen, Zusammenbau, Bauen usw.) | Phase 1, „Bei Prozessvideos zuerst drei Dinge fragen“ |
| Haustiere, Familie, echte Erlebnisse | „Tools und Verbote“: Keine generierten Bilder für echte Erlebnisse |
Überblick über den Ablauf
- Zielbestätigung: Ziel in einem Satz, Zielgruppe und Zweck, Plattform und Spezifikationen (Seitenverhältnis, Länge, Auflösung), Materialliste, überprüfbare Erfolgskriterien, was nicht gemacht wird.
- Skript: Für kreative Projekte zuerst drei verschiedene Storyline-Entwürfe zur Auswahl. Finale Version = Abschnitte, Zeitangaben, Untertitel, Soundeffekt-Richtung.
- Storyboard-Entwurf: Shotliste + Storyboard, Technikspalte zunächst leer. Adjektive in Zahlen umwandeln („fröhlich“ → Sprunghöhe, Aktionsbeat).
- Bestandsaufnahme & Risikotest: Materialprüfung (Kontaktbogen); Für jeden Shot die geplante Technik gegen „verifizierte Fähigkeiten“ prüfen; Unbekannte Techniken zuerst mit einem 5-Sekunden-Test testen, bei Problemen einfachere Alternative wählen; Stilpaket (Phase 2) hier fixieren. Phase abgeschlossen = Nutzer stimmt Storyboard zu.
- Grober Animatic: Storyboard nach Zeit und Soundeffekten als grobe Version arrangieren, zuerst Rhythmus und Länge bestätigen, dann erst in die Detailarbeit.
- Produktion: Schnitt, Postproduktion.
- Selbstkontrolle: Vor dem Rendern Minen räumen → Rendern → Maschinencheck → Großer Checkliste, Bilder einzeln prüfen.
- Auslieferung & Abschluss.
Phase 1: Pre-Production (Alle drei Phasen benötigen Nutzerzustimmung)
Phase 1 | Fakten & Text (Einmal fragen, Antwort in Storyboard-Meta speichern)
- Anrede, Sprachregeln (Standard: keine Hintergrundmusik, nur Soundeffekte; welche Originaltöne bleiben), Seitenverhältnis, Länge, Auflösung, Titel.
- Material zuerst mit Kontaktbogen (
tools/storyboard.py) prüfen, nicht nach Dateinamen beurteilen; Audio zuerst sein Spektrum prüfen oder anhören. - Bei lehrreichen / informativen Inhalten zuerst Fakten prüfen: Jede Definition gegen offizielle Quellen (offizielle Dokumente bevorzugt, Zusammenfassungen Dritter nur als Unterstützung) abgleichen, neben dem Storyboard notieren „Diese Aussage passt zu Quelle X“, nicht Verifiziertes markieren. Bevor Sie einen Teil des Originaltextes entfernen, prüfen Sie, ob dieser Teil Missverständnisse verhindert. Ihre Vereinfachung muss klar als „Das ist meine Vereinfachung, nicht die Formulierung des Originals“ gekennzeichnet werden. Wenn Sie nur die Zusammenfassung gelesen haben, nicht den vollständigen Artikel, geben Sie das an.
- Bei Prozessvideos zuerst drei Dinge fragen: ① Die Reihenfolge des Prozesses; ② Welches Material zu welchem Endprodukt und zu welchem Schritt gehört (nicht nach Drehreihenfolge raten); ③ Die entscheidenden Momente, die unbedingt gezeigt werden müssen.
- Bevor Sie sagen „Das Material enthält nicht / kann nicht gefilmt werden“, sehen Sie sich das gesamte Material Frame für Frame an, nicht nur die Action-Segmente. Wenn der Nutzer einen Screenshot schickt, verwenden Sie
tools/find_frame.py, um herauszufinden, in welchem Clip und bei welcher Sekunde dieser Frame ist. - Auswahlkriterien: Wenn das Material verbale Kommentare des Filmers enthält, transkribieren Sie diese und verwenden Sie sie als zusätzliches Kriterium. Sonst verwenden Sie klare Ablehnungskriterien (Unschärfe, Verwackeln, zu dunkel). Geben Sie bei Ablehnung an, welcher Clip und welcher Shot betroffen ist. Diese beiden Methoden sind nur unterstützend, nicht garantiert erfolgreich.
Phase 2 | Stilpaket (Eine Seite, zuerst dem Nutzer zeigen)
- 1–2 Referenzvideos oder -bilder mit einem Satz, was daran nachgeahmt werden soll. Analysieren Sie Referenzvideos klar nach Dimensionen, da KI sonst nur die Farbe betrachtet. Mögliche Dimensionen: Format, Schriftart, Farbe, Textkarten, Elemente, Module (wiederverwendbare Komponenten wie Ein-/Ausblendungen von Textkarten, Overlays, Ticker), kostenlose Assets (welche verwendet werden, Lizenz prüfen), Dynamik, Rhythmus, Übergänge.
- Farbe: Hintergrund / Text / eine Akzentfarbe (Akzentfarbe ≤ 15 % des Bildes, Textkontrast ≥ 4,5:1); Bei narrativen Videos zusätzlich einen Farbbogen (Zielhelligkeit pro Abschnitt).
- Schriftarten und Textkartensprache: Maximal zwei Stile.
- Übergangssprache: Maximal 3 verschiedene im gesamten Video; Effekte: ein Haupteffekt pro Shot.
- Ein Stilbild (Schlüsselbild) beilegen, nicht nur Text.
- Technikauswahl: Prüfen Sie vor Arbeitsbeginn, welche Techniken den Schnitt verbessern können. Keine Obergrenze, aber jede muss erklären können: „In welchem Shot wird sie verwendet, warum passt sie?“. Die Liste für den Nutzer verwendet immer gebräuchliche Namen mit einem Satz zur Wirkung (z. B. „Heranzoomen: Langsam an die Hauptfigur herangehen“), keine englischen Codes. Vor Auslieferung prüfen: Ist jede verwendete Technik auf dieser Liste?
- Übliche Verpackungsmethoden für Voice-Over / Social-Media-Erklärvideos: Masken-Farbkorrektur (nur Hintergrund anpassen), Hintergrund durch Videowand ersetzen, große Schrift hinter der Person, Vorher-Nachher-Schieberegler, Texteingabefeld mit Fortschrittsbalken, Standbild mit Zeitlupe/-raffer, schwebende Schlüsselwort-Labels, Bild-im-Bild, Zahlen-Animation, Entfernen von Pausen. Nicht getestete Techniken nicht versprechen; zuerst einen 5-Sekunden-Test machen.
Phase 3 | Shotliste + Storyboard
- Jeder Shot schreibt:
action(was tatsächlich auf dem Bildschirm passiert),shot_size(Weit / Mittel / Nah / Detail), Untertitel, Textkarte, Soundeffekt (nur relative Sekunden). Textkarten benötigenevidence(wo im Bild wird sie gestützt). - Jeder Schnittpunkt benötigt
cut_reason(warum hier schneiden, warum an diesen Shot anschließen); Bei Match-Cut oder Cut-on-Action zusätzlichanchor(was am Ende des vorherigen Shots greifen, was am Anfang des nächsten Shots anschließen). Schnittpunkte ohne Grund löschen. - Untertitel: 4–5 Zeichen pro Sekunde, maximal 6; Erscheinungszeit nicht vor dem Shot-Beginn; Untertitellänge bestimmt Shot-Länge; Jeder Untertitelsatz benötigt visuelle Unterstützung, sonst Material vom Nutzer anfordern.
- Storyline + Shot-Größenwechsel: Bestimmen Sie zuerst die Hauptfigur und den dramaturgischen Bogen (nur gleiche Aktionen aneinanderreihen ist keine Narration); Wechseln Sie bewusst die Shot-Größe, üblich „Mittel → Nah → Weit“ oder „Weit → Mittel → Nah“.
- Konsistenz bei Prozessvideos: Große Abschnitte folgen dem tatsächlichen Prozess; In einem Abschnitt synchron mehrere Endprodukte vorantreiben; Bereits fertige Produkte nicht mitten in laufende Abschnitte einfügen; Endprodukte erscheinen nur im letzten Showdown-Abschnitt (Ausnahme: Exposition zu Beginn). Für „keine Hände“-Look Crops auf Details verwenden, nur auf den vom Nutzer benannten Shot anwenden.
- Sagt der Nutzer „es braucht Seele / Atmosphäre“ = Farbkorrektur: Ein einheitliches Look-System für das gesamte Video.
- Storyboard mit
tools/storyboard.pyaus Material oder fertigem Video extrahieren, Maschinencheck prüft nur Text, ob Textkarte und Bild zusammengehören, muss ein Mensch sehen.
Bevor Sie die Shotliste dem Nutzer vorlegen, jeden Punkt selbst abhaken. Fehlt ein Punkt, nicht abgeben:
- Wurde die Stimmung erfragt (motivierend / warmherzig / spannend)? Wurde nach Musik gefragt?
- Textkarten: Zuerst 3 verschiedene 5-Sekunden-Vergleichsvideos (drei verschiedene „Mechaniken“, nicht dieselbe mit anderer Schrift). Zuerst die Funktion jeder Textkarte schreiben, dann aus
references/剪辑语法与叙事.mddie „Textkarten-Spielarten“ auswählen; Nutzer wählt eine Hauptvariante, die gesamte Kampagne mischt nach Abschnitten, Schriftart einheitlich. - Techniken: Tatsächlich recherchiert, Liste in gebräuchlichen Namen, jede begründbar für welchen Shot.
- Ton: Echte aufgenommene Soundeffekte verwenden, keine programm-synthetisierten. Jeder Soundeffekt entspricht einer Bildaktion. Fehlt im Bestand, auf kostenlosen Soundeffekt-Seiten suchen, Lizenz selbst prüfen, Dateiname mit Quelle beschreiben und in der README des Soundeffekt-Ordners vermerken. Kein exakter Treffer, den nächstbesten mit Erklärung.
- Material vollständig gesichtet (inkl. Fotos), Ablehnungskriterien klar; Datum nach Aufnahmezeit ermitteln, nicht nach Dateinamen.
- Fakten und Text nur vom Nutzer; Ihre Textkarten nur als Optionen, nicht selbstständig einfügen.
- Stilbild (drei Schlüsselbilder) beilegen; Cover-Bild separat speichern, ohne Gesamtlänge.
- Kurze Antworten des Nutzers („A“, „ok“, „egal“) haben zwei Lesarten? Erst bestätigen.
- Jeder Schnittpunkt hat
cut_reason. - Videos mit Musik: Vor dem Mischen eine Sound Map erstellen (Ebenen, Start/Ende, Priorität, Quelle).
- Bei emotionalen Textkarten zuerst fragen: „Kann das durch einen Shot ersetzt werden?“: Jede Textkarte, die dem Zuschauer eine emotionale Schlussfolgerung vorgibt (lustig, rührend, peinlich, schockierend), daneben notieren, ob sie durch „Figur sieht → Reaktion“ oder „Shot A → Shot B“ ersetzt werden kann. Wenn möglich, den Ersatz-Shot schreiben; Textkarte nur behalten, wenn Material fehlt oder Deadline eng ist. Informative Textkarten (Zahlen, Jahreszahlen, Namen, Orte) sind nicht betroffen. Die Wirkung dieser Technik ist in der Wissenschaft umstritten, daher nur als A/B-Option, nicht als Erfolgsformel. Bei dokumentarischem Material dürfen nicht Reaktionen aus verschiedenen Zeiten zu einer „aktuellen Reaktion“ zusammengeschnitten werden, um eine nicht stattgefundene Emotion zu erzeugen.
Phase 2: Produktion
- Bild: Zuerst Low-Res-Entwurf, nach Bestätigung in Finalqualität rendern; Änderung eines Shots nur diesen neu rendern. HLG/HDR-Material mit ffmpeg vorher in SDR konvertieren; Helligkeit jedes Shots messen (
signalstats), mit Farbbogen-Zielen abgleichen. - Echte hochauflösende Bildschirme: Webseiten-/App-Bildschirme mit Browser-Automation in 3-facher Auflösung aufnehmen; Für 4K-Ausgabe
devicePixelRatiosetzen. Reicht die Auflösung des Materials nicht, teilen Sie dem Nutzer zu Beginn die Obergrenze mit. Schnell hintereinander eigene Demoseiten aufnehmen kann durch eigene Ratenbegrenzung zu fehlerhaften Aufnahmen führen. - Effekte zuerst in der Asset-Bibliothek suchen, dann selbst bauen: Erst nach erfolgloser Suche selbst bauen und die Lücke dokumentieren. Übliche filmische Effekte: Heranzoomen / Offenlegung / Fokusverschiebung, Wisch-Übergänge, Lens Flare, Filmkorn, Vignette, Weichzeichner-Intro-Textkarten. Bei medizinischen oder warmherzigen Szenen keine Verwackler, Wischer, Diagonal-Zoom, Fokus-Impact.
- Textkarten (HyperFrames oder ähnliche HTML-Animationen): Timeline in
window.__timelinesschreiben;fromTound folgendefrommitimmediateRender:false; Frame-füllende Elemente zuerstset opacity 0; Untertitel gleiche Höhe im gesamten Video; Hauptobjekt nicht überdecken; Bei Shotswechsel alle Elemente des vorherigen Shots entfernen. Vor dem Rendern mittools/hf_lint.pyminen räumen. - Chinesische Textkarten-Layout (basierend auf 1920 Breite): Haupttitel 900 Schriftstärke, ≥ 120 px, Zeichenabstand 0,01–0,03 em, eine Zeile ≤ 14 Zeichen, manuelle Trennung zwischen Wörtern, kein einzelnes Zeichen oder Satzzeichen am Zeilenanfang; Fließtext 500–700 Schriftstärke, ≥ 32 px; Halbbreite Leerzeichen zwischen Chinesisch/Englisch/Zahlen; Zeilenabstand in Masken ≥ 1,18. Minimale Verweildauer einer Textkarte = Zeichenanzahl × 0,18 s + 0,6 s. Labels auf dem Bild verwenden volle Deckkraft mit dunkler, fetter Schrift, in leere Bereiche setzen.
- Rhythmus: Innerhalb der ersten 0,3 s muss sich etwas bewegen, der erste Text innerhalb von 1,5 s erscheinen; Die nächste Aktion beginnt 0,1–0,3 s bevor die vorherige endet; Nur ein Hauptobjekt gleichzeitig bewegen; Abgang dauert etwa die Hälfte des Eingangs.
- Nachdem Sie selbst ein generiertes Skript geändert haben, vergewissern Sie sich, dass das Dateiende nicht abgeschnitten wurde, bevor Sie es ausführen.
Person freistellen & Maske
- Kantenabnahme = Vergrößert an Fingern, Haaren und Schultern prüfen, nicht nur Miniaturansicht. Maskenbearbeitung: Zuerst ca. 1,6 weichzeichnen, dann Kontrast erhöhen, 2 px verkleinern, dann sind die Kanten glatt ohne weiße Ränder.
- Neben freigestellten Bereichen dürfen keine Karten oder eingebrannten Untertitel sein (Original-Untertitel auf einer Person werden als „nicht Person“ erkannt und transparent).
- Nicht Getestetes nicht versprechen: An Fingerspitzen können noch wenige Pixel Farbsäume auftreten; das muss klar kommuniziert werden.
Praxisfallen (GSAP & ffmpeg)
- Gesamtlänge muss eine ganze Anzahl von Frames sein (Länge × fps ganzzahlig), sonst gibt es beim Check eine Abweichung von 1 Frame.
- Positionen des Originaltons aus der Timing-Datei berechnen, nicht feste Sekunden verwenden (nach Änderung der Shot-Länge sonst Lippen-Synchronität verloren).
- Bei schwarzem Hauptobjekt keinen
zoomin-Übergang verwenden (wird auf Vollbild schwarz), stattdessensmoothleftoderfade. Querformat-Fotos im Hochformat-Video zuerst auf Hochformat zuschneiden, Gesicht erhalten, nicht unscharf auffüllen. - Drei GSAP-Fallen, die zu „erscheinen → verschwinden → wieder erscheinen“ oder zum Einfrieren des gesamten Videos führen: ①
tl.set(Gruppenkinder, {opacity:1}, 0)nach einem späterentl.from(...)überschreibt den unsichtbaren Startpunkt vonfrom; zum Ausblendentl.set(alle, {opacity:0}, 0)verwenden, dann mitto/fromeinblenden. ② Ein Selektor erfasst zwei Elemente, die vorzeitig animiert werden; nur das zu animierende Element ansprechen oder mit ID. ③ Variablenname im neuen Szenario kollidiert mit anderem Szenario, führt zu falschen onUpdate-Aufrufen und Einfrieren ab diesem Shot. Vor dem Hinzufügen neuer Variablengrepüber die gesamte Datei; nach Änderung mit tatsächlichen Frames pro Shot stichprobenartig prüfen, einen Frame vor und nach jedem Shotswechsel. - Postproduktion-Farbkorrektur nicht
colorbalancefür Lichter verwenden (weißer Hintergrund wird gelbstichig); Vignette mitvignette=angle=PI/8. Bei reinweißen Webseiten nach der Korrektur den Weißpunkt messen. - Sprachaufnahme: Nur auf expliziten Wunsch des Nutzers (Standard: nur Soundeffekte). Jeden Satz
silenceremove, bei Bedarfatempo(≤ 1,2), dann mit Python-Array zeitcodegenau in gleichlanges wav mischen; ffmpegamixmit vielenadelay-Ausgaben kann zu Abschnitten führen. Vor dem Mischen sicherstellen, dass die Soundeffekt-Datei genauso lang ist wie das fertige Video. Untertitel geändert? Sprachaufnahme muss neu generiert werden. - Nutzer findet es „zu laut“: Nur die von ihm genannten Töne entfernen; vor dem Entfernen auflisten, „was entfernt wird“; emotionale Punkte wie Originalton lieber behalten.
- Nutzer möchte nach Fertigstellung einen Shot einfügen: Nur die Shotliste ändern (Shot hinzufügen, Untertitel verlängern, Soundeffekt-Position verschieben), dann erneut checken, Szenen zusammenstellen, rendern, mischen; Start- und Endpunkte danach automatisch verschieben. Bei eingefügten Fotoshots zuerst die Komposition prüfen, Untertitel nicht auf hochgesättigte Hauptobjekte setzen.
Phase 3: Postproduktion
- Farbkorrektur gemäß Farbbogen, einheitliches Look-System für das gesamte Video, nicht ein Filter pro Shot.
- Filmische Farbkorrektur standardmäßig: S-Kurve, Schwarzpunkt leicht anheben (matt), Vignette, Filmkorn als letzte Schicht. Split-Toning (Blau in Schatten, Warm in Lichtern) nur auf Farb-Look anwenden; Schwarzweiß-Abschnitte stattdessen leicht kühl, sonst werden sie zu gelb-stichigen alten Fotos.
- Soundeffekte standardmäßig sparsam beginnen, jedes Geräusch entspricht einer Aktion im Bild; Vor Auslieferung fragen: „Was fehlt, wenn ich dieses Geräusch entferne?“ Entfernen, wenn nicht passend;
loudnormmitalimiterohne Übersteuerung. alimiterzwingendlevel=disabledhinzufügen (sonst hebt die automatische Verstärkung die Spitzen nahe 0 dB an); Gleichzeitigatrimauf Videolänge, Ausgabe mit-shortest, sonst Audiospur länger als Bild und Frame-Check schlägt fehl. Abschluss mitloudnorm=I=-16:TP=-1.5.- Zeitlupen-/Zeitraffer-Shots: Audio nicht mit atempo strecken (führt zu unnatürlichen Verzerrungen): Bei solchen Shots Originalgeschwindigkeit des Tons verwenden, Bild und Ton als zwei getrennte Eingänge.
- Audio am Ende immer vom Nutzer mit Kopfhörern hören lassen; Messung und Spracherkennung nur unterstützend. Tiefe Frequenzen (unter 150 Hz) werden auf Laptop/Handy nicht wiedergegeben, Soundeffekte sollten Energie über 300 Hz haben.
- Leichtversion ≤ 9 MB: Wenn
-maxratenicht ausreicht, auf x264-Zwei-Pass-Enkodierung wechseln.
Sprach-Isolation / Umgebungsgeräusche erhalten
- Nicht mit Spracherkennung nach Sprachsegmenten suchen und stummschalten (Sprache wird oft als nicht-Sprache klassifiziert und übersehen, und die Zeitangabe geht nur auf die ganze Sekunde). Stattdessen ein Audio-Isolationstool (z. B. Demucs) verwenden, um eine sprachfreie Spur zu extrahieren – einmal reicht. Nach der Isolation die isolierte Spur noch einmal mit Spracherkennung scannen (als erneute Prüfung): Inhalte in Klammern sind nicht-sprachlich, zählen nicht als Reste; ganze Wiederholungen desselben Satzes oder „Vergessen Sie nicht zu abonnieren“ sind Erkennungsartefakte.
- Isolationstools können Spraydosen-Geräusche, manche Messer-Geräusche als Sprache erkennen und entfernen: In den kritischen Sekunden die Sprachspur wieder hinzufügen, aber das Frequenzband 250–3800 Hz (Sprachfrequenzen) entfernen.
Hilfswerkzeuge: Schnittpunkte finden, Pausen entfernen, Beat finden
Alle drei wurden mit synthetischem Material funktional getestet (Ergebnisse beigefügt); Bei echtem Material müssen Schwellenwerte und Effektivität angepasst werden.
- PySceneDetect:
scenedetect -i video.mp4 detect-adaptive list-scenes, erzeugt eine Shot-Zeitliste. Verifikation: Ein 6-Sekunden-Video aus drei verschiedenen hart geschnittenen Segmenten erkannte 3 Shots mit Schnittpunkten bei 2,0 s und 4,0 s – identisch mit dem tatsächlichen Schnitt. Bei animiertem Material erkannte „Shots“ sind möglicherweise nicht die gewünschten Shots. - Auto-Editor:
auto-editor video.mp4 --edit audio:threshold=5% --margin 0.15sec -o ausgabe.mp4, entfernt stille Passagen bei Voice-Over. Verifikation: Ein 6-Sekunden-Video mit drei 1-Sekunden-Audio- und 1-Sekunden-Stille-Segmenten wurde auf ca. 3,85 s gekürzt. Schwellenwert muss pro Material getestet werden: Bei demselben synthetischen Material führte ein Schwellenwert von 15 % dazu, dass das gesamte Segment als Stille erkannt und auf nichts gekürzt wurde; Nach dem Kürzen müssen Untertitel, Lippenbewegungen und Audio-Video-Synchronisation erneut überprüft werden; Untertitel-Zeit muss aus der gekürzten Version neu erstellt werden; Das Entfernen von Pausen bedeutet nicht, dass gleichzeitig Füllwörter entfernt werden können; Untertitel dürfen nicht weniger Zeichen haben als gesprochen wird. Bitte die offizielle Distribution (z. B. Homebrew) verwenden, keine ähnlich benannten Hülsen-Pakete. - librosa:
librosa.beat.beat_trackextrahiert Beat- und BMP-Werte. Verifikation: Synthetischer Drum-Beat bei 120 BMP ergab ca. 117,5 BMP und 23 Beats – Abweichung unter 2 %; Der Nutzer sollte die Beats vor der Auslieberung trotzdem anhören. Nur für Videos verwenden, die auf den Beat geschnitten werden sollen; ruhige Videos nicht dem Beat folgen.
Phase 4: Selbstkontrolle vor Auslieferung (Jeder Punkt benötigt Beweis)
Zuerst den Maschinencheck laufen lassen: tools/qa_video.py video.mp4 ausgabeordner --size BxH --fps N --share teilversion.mp4 (Prüft Auflösung, fps, ganze Frames, Audiospur-Länge, Übersteuerung, Lautstärke, schwarze Frames, eingefrorene Frames, Frames vor/nach Shotswechsel, Größe der Teilversion). Die Zahlen prüft das Tool, die Bilder müssen Sie einzeln ansehen. Jeden Punkt abhaken:
- Sauberkeit (bei jeder Lieferung): Jeden Shot ersten, mittleren und letzten Frame zu einem Bild zusammensetzen und einzeln prüfen. Hand- oder Schatten-Inserts, nicht erklärte Aktionen, gesamte Shots ohne Handlung, schnelle Schattenblitze – alles kürzen oder ersetzen.
- Schnittpunkt-Kontinuität (bei mehreren Shots und emotionalen Videos obligatorisch):
tools/cuts_sheet.pyextrahiert vor und nach jedem Schnittpunkt 2 Frames, jeden auf Richtung, Blickrichtung, Aktionsphase, Shot-Größe, Licht prüfen. Probleme nachreferences/退件与验收格式.mdals Issue mit Bildpfaden dokumentieren. Maximal 2 eigene Korrekturrunden, bei weiterem Bestehen an Nutzer zur Entscheidung. - Spezifikationen: Auflösung, fps, Seitenverhältnis entsprechen den Anforderungen des Nutzers; fertiges Video wurde von 4K oder höher heruntergerechnet.
- Text: Jedes Zeichen im Video stammt vom Nutzer. Wenn ein Originaltext zum Vergleich vorliegt, mit
tools/ocr_check.pySchlüsselbilder des fertigen Videos und den Originaltext zeichenweise vergleichen; bei Abweichungen zurück zum Originaltext (Erkennungsfehler ≠ Bildfehler). Text stimmt überein ≠ Inhalt ist korrekt; Inhalt erneut gegen Quellen prüfen. - Textkarte = Bild: Der Name jeder Textkarte stimmt mit dem tatsächlichen Geschehen im Shot überein. Bei Auswahl von Abschnitten und Zuschnitten die tatsächlichen Frames dieses Abschnitts ansehen, nicht die eigene Beschreibung.
- Untertitel: Zeichen pro Sekunde korrekt, nicht in vorherigen Shot vorgezogen, gleiche Höhe im gesamten Video, kein automatischer Zeilenumbruch.
- Lesbarkeit: Alle Zeichen auch in der komprimierten Teilversion klar erkennbar.
- Sauber: Keine Restelemente nach Shotswechsel, keine Überlagerungen, keine aufgezeichneten Fehlerseiten oder Testdaten.
- Konsistenz: Maximal 3 Übergangsarten, Farbe folgt Farbbogen, maximal 2 Textkartensprachen.
- Rhythmus: Innerhalb der ersten 0,3 s Bewegung, keine gleichzeitigen Bewegungen zweier Hauptobjekte, ausreichende Verweildauer der Textkarten.
- Ton: Keine Übersteuerung, jeder Soundeffekt hat eine entsprechende Aktion, keine unpassenden Soundeffekte.
- Reproduzierbarkeit: Zwei Rendern zur selben Zeit ergeben denselben Frame-Hash (programmatische Animationen müssen reine Funktionen der Zeit sein).
- Ehrlichkeit: Shots, deren Bildqualität nicht zu retten ist, und nicht überprüfte Punkte bei der Lieferung klar kommunizieren.
Phase 5: Auslieferung & Abschluss
Auslieferungsordner (selbst festlegen, folgende Struktur ist Vorschlag), ein Ordner pro Video, zuerst Datum, dann Name (YYYYMMDD_Titel):
成品/: Hochqualitätsversion, Leichtversion (für Chat-Apps, ≤ 9 MB), Cover, Untertitel-Dateien.初剪/: Zwischenversionen und Eingangsmaterial.定稿图表/: Stilpaket, Storyboard, Shotliste (maschinenlesbare Datei + menschenlesbare.md),原始码/(Skripte zum Wiederholen + README).- Testmaterialien (neue Tools, 5-Sekunden-Testaufnahmen) in separatem Ordner
测试/Datum_Name/; nur das, was ausgeliefert wird, kommt in den Projektordner. - Mit
tools/deliver.shSoundeffekte mischen, Leichtversion komprimieren, kopieren, md5-Prüfung; Gleichnamige Dateien nicht überschreiben. - Bei Änderungen am fertigen Video müssen die
定稿图表/aktualisiert werden: Storyboard und Shotliste in Sekunden und Startpunkten müssen mit dem fertigen Video übereinstimmen, sonst bleibt veraltete Dokumentation erhalten.
Nur finale Version behalten: Zwischenprodukte in .work/ ablegen. Bei Bereinigung mit tools/safe_trash.sh in den Papierkorb verschieben, nicht direkt löschen, zuerst Liste dem Nutzer zur Bestätigung vorlegen. Nicht in Arbeitsbereiche anderer eingreifen.
Fünf Pflichtaufgaben zum Abschluss (für jedes Video)
- Finalisieren: Zuerst das Cover prüfen. Der Videoanfang muss ein Cover-Bild haben (Titel + Hauptfigur), Cover-Bild separat speichern; Cover-Bild nicht Gesamtlänge hinzufügen, die Länge vom Startmaterial abziehen. Cover-Text aus der Schluss-Textkarte des Videos ableiten, nicht aus Dateinamen oder Zwischenabschnitten. Video in offiziellen Dateinamen umbenennen
<Titel>_<Sekunden>.mp4, Leichtversion ≤ 9 MB. Storyboard und Shotliste in定稿图表/gemäß finalem Video aktualisieren. md5-Prüfung. - Bereinigen: Alte Storyboards, alte Skripte, verschiedene Versionen der Rohschnitts, Arbeitsverzeichnisse – alles mit
safe_trash.shin den Papierkorb verschieben; README schreiben, was im Papierkorb liegt, für Wiederholung. - Ticket schließen: Alle für dieses Video erstellten Aufgaben oder To-dos als erledigt markieren.
- Retrospektive: Jede Version, was der Nutzer geändert hat (wörtlich zitieren), Ursache, wie es beim nächsten Mal vermieden wird; eigene Fehler separat auflisten; wiederverwendbare Ansätze; nicht verifizierte Annahmen als „nicht verifiziert“ markieren.
- Dieses Skill optimieren: Aus der Retrospektive „Wie es beim nächsten Mal vermieden wird“ als Regel in den entsprechenden Abschnitt dieser SKILL.md schreiben, nicht nur am Ende anhäufen.
Tools & Verbote
- Echte Materialien bevorzugen (ffmpeg + HTML-Animationen). Nicht gefilmte Szenen: Statische Bildgenerierung (keine chinesischen Zeichen generieren, chinesische Zeichen per HTML überlagern) → anderes externes Material. Echte Erlebnisse (Haustiere, Familie, Kundenfälle) nicht mit generierten Bildern darstellen.
- Vor der Installation neuer Tools, Pakete oder Modelle zuerst Quelle und Lizenz prüfen, vor der Installation den Nutzer fragen, nicht während der Arbeit installieren.
- Keine Befehle ausführen, die freien Text nach außen senden (z. B. Feedback-Befehle von Tools); Statistik-Meldungen von Tools standardmäßig deaktivieren.
- Nicht verifizierte Inhalte, private Materialien des Nutzers und personenbezogene Daten nicht in öffentliche Beispiele oder Muster schreiben.