Communitygithub.com

Agentchengfeng/chengfeng-videocut-skills

Exportiert vorbereitete Mundpropaganda-Videos in eine finale MP4-Datei: Buchausschnitte, Zooms, Untertitel, HTML-Ebenen – alles auf einmal in das MP4 gebrannt.

Was ist chengfeng-videocut-skills?

Diese Fertigkeit ist der letzte Schritt in der Videoproduktionskette und der einzige, der tatsächlich Pixel rendert. Sie nimmt eine Edit-Liste, optional Untertitel und visuelle Ebenen entgegen und brennt alles in eine einzelne MP4-Datei. Die Fertigkeit ist für den Einsatz in CLI-Umgebungen konzipiert, in denen Google Chrome (für Text- und Animationsüberlagerungen) sowie FFmpeg ≥ 6 verfügbar sind. Sie unterstützt Trockenläufe, verschiedene Skalierungsoptionen und alternative Ausgabepfade. Nach der Ausführung wird die Ausgabe automatisch auf Konsistenz mit dem Plan überprüft, wobei etwaige Abweichungen als Fehler gemeldet werden. Die Fertigkeit ist besonders nützlich für Entwickler und Content-Ersteller, die eine zuverlässige, einmalige Videoproduktion ohne Bearbeitung der Quelldateien benötigen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Agentchengfeng/chengfeng-videocut-skills/tree/HEAD/plugins/chengfeng-videocut/skills/chengfeng-export

In Ihrer bevorzugten KI fragen

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

Dokumentation

Export (Finales Video)

Dies ist das letzte Glied in der Kette und der einzige Teil des gesamten Produkts, der tatsächlich Pixel zeichnet.

Alles davor ist Annotation: Das Buch merkt sich „welche Wörter gesprochen werden“, die Untertitel merken sich „was auf dem Bildschirm erscheint“, die visuellen Elemente merken sich „welche Ebenen überlagert werden“. Die Vorschau zeigt diese drei Dinge in Echtzeit für den Menschen an, ohne sie zu speichern. Der Export brennt sie in eine Datei.

Benötigt   edit-list.json (zwingend), subtitles.json, visuals.json + modules/
Erzeugt    finalvideo.mp4

Voraussetzung: Auf dem Rechner muss Google Chrome installiert sein (zum Rendern von Untertiteln und Animationen als Bilder). Die Desktop-Installation von FFmpeg / FFprobe wird zusammen mit der App in das verwaltete Produktverzeichnis übernommen; eine reine CLI-Installation erfordert weiterhin systemweit ffmpeg ≥ 6. Fehlt Chrome, wird ein klarer Fehler ausgegeben – versuchen Sie nicht, dies zu umgehen: Ohne Chrome gibt es keine Untertitelebene und keine Animationsebene.

Lesen und führen Sie zuerst den Abschnitt „Schlussfolgerungsstufen“ aus dem Geschäfts-Skill-Phasenvertrag aus. Der Export betritt nicht den Bearbeitungszustandsautomaten: Er ändert keine Projektdateien, schreibt nicht in die CAS, treibt keine Phase voran. Die Ausgabe ist eine neue Datei; ein erneutes Ausführen überschreibt sie. Daher ist kein Bestätigungsdialog erforderlich.

0. Bereitschaft

Führen Sie zuerst die „Bereitschaftsprüfung“ aus Prüfung auf Updates aus – ob die Skills aktuell sind und die Runtime kompatibel ist; das Plugin-Stammverzeichnis wird dort auch lokalisiert (alle <plugin-root> in diesem Befehl werden durch diesen wörtlichen Pfad ersetzt). Nur bei „Bereit“ fortfahren; bei „Neue Sitzung erforderlich“ oder „Stopp“ gemäß dessen Anweisungen vorgehen (einschließlich des Verbots „keine selbstgebauten Ersatzoberflächen“). Der Geschäfts-Skill enthält keine eigene Umgebungslogik.

Wenn das Ergebnis der Bereitschaftsprüfung runtime.kind=desktop-managed ist, direkt die stabilen CLI- und Medienwerkzeuge sowie denselben launchd/windows-task-Dienst der Desktop-App wiederverwenden; nicht den Electron-Pfad auflösen, FFmpeg/Bun separat installieren oder eine zweite Runtime starten.

Befehle

node "<plugin-root>/scripts/ensure-running.cjs" --json
node "<plugin-root>/scripts/videocut-cli.cjs" export <projekt> --dry-run --json          # Zuerst den Plan ansehen, nicht codieren
node "<plugin-root>/scripts/videocut-cli.cjs" export <projekt> --json                    # Finales Video erstellen (Standard: 2x, Quellbildrate)
node "<plugin-root>/scripts/videocut-cli.cjs" export <projekt> --out /pfad/zielvideo.mp4 --json
node "<plugin-root>/scripts/videocut-cli.cjs" export <projekt> --scale 1 --json          # Nur Quellgröße
node "<plugin-root>/scripts/videocut-cli.cjs" export <projekt> --keep-work --json        # Zwischendateien und Einzelbild-PNGs für die Fehlersuche behalten

Wenn ensure-running mit Identitätskonflikt, Portkonflikt oder fehlerhaftem Dienst antwortet, sofort anhalten; nicht mit einem temporären Vordergrund-Ersatz fortfahren.

Zwei Schritte, nicht nur den zweiten ausführen

① --dry-run zeigt zuerst den Plan an      Dauer, Bilderanzahl, Untertitelanzahl, Ebenenanzahl, Zoomabschnitte, Ausgabegröße
                                          Dem Benutzer vorlesen. Sind die Zahlen falsch, liegt der Fehler upstream – zehn Minuten Kodierung beheben das nicht
② Tatsächliche Ausführung                 montieren → überlagern → zusammensetzen → verifizieren: vier Fortschrittsabschnitte

Die warnings im --dry-run müssen wörtlich weitergegeben werden. Sie melden nur eine Sache: Bestimmte Untertitel oder Ebenenwörter wurden bereits herausgeschnitten, daher erscheinen sie nicht im finalen Video. Dies ist eine Entscheidung des upstream, nicht etwas, das der Export verschlucken sollte.

Schärfe: Die Quelle ist die Obergrenze, zuerst die Quelle betrachten, dann vergrößern

Vor dem Export die Quellauflösung prüfen (das source-Feld von --dry-run enthält sie bereits):

Quellbreite ≥2560 (Retina native Bildschirmaufnahme) → --scale 1, Ausgabe ist native Pixel, das ist der beste Fall
Quellbreite <1920 (z. B. 960×720) → kurz anhalten: Benutzer fragen, ob es einen HD-Export derselben Aufnahme gibt.
                                Bildschirmaufnahme-Tools können oft dieselbe Aufnahme in 3-facher Auflösung exportieren;
                                Quellenwechsel ist effektiver als jede Nachbearbeitung (siehe nächster Abschnitt). Falls nicht → --scale 2

Warum --scale 2 bei niedriger Quellauflösung hilft: Das Vergrößern des Grundmaterials macht es nicht schärfer, aber Untertitel und Animationen werden in der Ausgabegröße neu gezeichnet – der Betrachter liest genau diese. Wenn die Plattform erneut komprimiert, erhält das größere Bild auch eine höhere Bitrate.

Nicht --fps ändern, um „schärfer“ zu machen. Die Bildrate folgt der Quelle; eine Änderung führt dazu, dass die Animationen nicht mit der Bildschirmaufnahme synchron sind.

Quellenwechsel: Wenn der Benutzer eine HD-Version derselben Aufnahme bereitstellt

Dies ist kein Teil des Exportvorgangs – der Export selbst ist immer schreibgeschützt. Der Quellenwechsel ist ein separater Materialvorgang nach ausdrücklicher Zustimmung des Benutzers, danach wird wieder normal exportiert.

Zuerst prüfen, ob es dieselbe Aufnahme ist (die ersten beiden Kriterien sind bereits ausreichend):

ffprobe -v error -show_entries format=duration -of csv=p=0 <zwei dateien>   # Dauer auf Millisekunde genau gleich
ffmpeg -v error -i <datei1> -map 0:a:0 -c copy -f md5 -                  # Audiostream bitweise identisch
# Dann zwei bis drei Bilder vergleichen, um den visuellen Inhalt zu prüfen, mit eigenen Augen bestätigen

Audiostream bitweise identisch = gleiche Timeline: Wortprotokoll, Buch, Untertitel und Ebenen sind alle an Wort-IDs gebunden, nichts muss geändert werden. Genau das bedeutet „Bindung an Wörter, nicht an Sekunden“ beim Quellenwechsel.

Vier Schritte für den Quellenwechsel (2026-07-29 tatsächlich durchgeführt; Schritt ③ wurde damals vergessen, die Vorschau meldete sofort „Generierung fehlgeschlagen“ – der Fingerabdruck wird nicht nur an einer Stelle gespeichert, alle alten Fingerabdrücke mit grep finden, bevor gehandelt wird):

① Datei austauschen   input/source.mp4 und uploads/source.mp4 sind ein Hardlink-Paar –
                      beide löschen, neue Datei nach input/ kopieren, dann Hardlink zurück zu uploads/ erstellen
                      (macOS: ln verwenden; Windows: New-Item -ItemType HardLink)
② Fingerabdruck aktualisieren   source.sha256 in project.json auf den neuen Datei-Hash ändern
③ Noch eine Stelle prüfen   workbench.json speichert ebenfalls sourceSha256 als Fingerabdruck der Quelle,
                      der von der Vorschau-Pipeline validiert wird – wenn dies fehlt, verweigert die Vorschau die Generierung
                      (Dies ist das korrekte Verhalten des Produkts: bei Fingerabdruck-Konflikt lieber fehlschlagen, nicht alte Vorschau als aktuell ausgeben)
④ Erneut exportieren   --scale 1 – Quellenwechsel dient der nativen Pixel, nicht erneuter Vergrößerung

Sicherheitsmaßnahme: Mit Ihrem Suchwerkzeug in allen *.json-Dateien im Projektverzeichnis nach den ersten 8 Zeichen des alten Fingerabdrucks suchen; jede gefundene Stelle muss bearbeitet werden (Cache-Einträge wie preview-edited/current.json werden automatisch neu berechnet, müssen nicht manuell geändert werden).

Wenn der Audiostream unterschiedlich ist (neu aufgenommen, geschnitten, andere Länge) – das ist kein Quellenwechsel, sondern ein neues Projekt: Das Wortprotokoll muss neu transkribiert werden, alle Annotationen verfallen. Keine Ausnahmen machen.

Abnahme: Drei Dinge, nur wenn alle erfüllt, gilt der Export als abgeschlossen

① Befehl erfolgreich zurückgekehrt       Das Produkt zählt die Größe, Bildanzahl und Audiospuren des Zielvideos und vergleicht sie Punkt für Punkt mit dem Plan.
                                        Bei Abweichung wird ein readback_mismatch-Fehler gemeldet, die Datei bleibt als Beweis auf der Festplatte,
                                        der Export gilt nicht als abgeschlossen
② Einzelbildentnahme zur visuellen Prüfung   Ein Bild aus dem Zielvideo entnehmen und mit eigenen Augen prüfen. Mindestens abdecken: einen Zoomabschnitt,
                                        einen Vollbild-Animationsabschnitt, einen Abschnitt nur mit Untertiteln, einen Übergang zwischen Ebenen
③ Hörprüfung durch Menschen             Niemand hat es wirklich gehört, immer als human listening UNVERIFIED vermerken

② Nicht durch Vorschaubilder ersetzen. Vorschau und Zielvideo sind zwei verschiedene Rendering-Pfade; die Abnahme soll genau prüfen, ob sie übereinstimmen – ein Vorschaubild als Beweis für das Zielvideo zu nehmen, setzt die zu prüfende Sache als gegeben voraus.

Zur Beurteilung von Zooms eindeutige Orientierungspunkte suchen, der Gesamteindruck kann täuschen (2026-07-29 wirklich erlebt): Bei 1,6-fachem Zoom sieht der Bildschirminhalt immer noch wie „eine ganze Seite“ aus, im Thumbnail kaum unterscheidbar von der Gesamtansicht – es wurde fälschlicherweise angenommen, der Zoom sei verloren gegangen, was zu 30 Minuten Fehlersuche und zwei erneuten Exporten führte. Die richtige Methode: Nach nur durch Beschneiden verursachten Beweisen suchen: halb abgeschnittene Elemente (Sprechblase von der Mitte getrennt), verschwundene Rand-Elemente (Seitenleiste, Titelleiste). Vergleich mit dem Quellbild desselben Zeitpunkts gibt sofortige Klarheit.

Einzelbildentnahme mit ffmpeg:

ffmpeg -v error -ss 8.84 -i zielvideo.mp4 -frames:v 1 -y frame.png

Bei Problemen: Wo nachschauen

Mit --keep-work werden im Projektverzeichnis .chengfeng-videocut/export/ drei Dinge hinterlassen, die direkt anzeigen, „welche Hälfte falsch ist“:

assembled.mkv    Nur Schnitt, ohne Überlagerungen. Fehler hier = Fehler im Buch oder Schnitt
overlay/*.png    Nur die überlagerten Elemente, transparenter Hintergrund. Fehler hier = Fehler im Untertitelstil oder Modul
spans/*.mp4      Zusammengesetzte Segmente. Fehler hier = Fehler im Zoom oder Alignment

Referenztabelle:

Keine Untertitel/Animationen im Zielvideo      Ist overlay PNG vollständig transparent? Hat das Modul seek nicht beantwortet?
Animation bleibt auf erstem Bild               Modul hat seek nicht implementiert, oder GSAP-Timeline war nicht paused
Komplett weißes Bild                           Modul fehlt `:root { color-scheme: dark }`
Zoom-Rechteck ist verschoben                   viewBox des Moduls und zoom der Ebene sind nicht dasselbe Wertepaar
Zielvideo ist kürzer als geplant               Ein span hat nicht genug Bilder; Fehlermeldung der compose-Phase prüfen
Kurzes Aufblitzen des Originalmaterials an Ebenenübergängen   overlay-Bild ist veraltet (Bildmarkierungsvalidierung fehlgeschlagen). Das Produkt weist über den Bildmarkierungsstreifen oben selbst nach, zu welchem Bild jedes Bild gehört; bei Wiederholung zuerst prüfen, ob overlay PNG den Markierungsstreifen oben enthält und compose ihn mit crop entfernt hat
Chrome nicht gefunden                          Google Chrome installieren, keinen anderen Rendering-Pfad verwenden

Was nicht erlaubt ist

  • Nicht „Export erfolgreich“ als „Abnahme bestanden“ bezeichnen – die erfolgreiche Befehlsrückgabe bedeutet nur, dass das Produkt sich selbst überprüft hat, nicht die visuelle Qualität
  • Keine Vorschaubilder, DOM oder Logs als Ersatz für Zielvideo-Einzelbildentnahme verwenden
  • Nicht human listening PASS melden, wenn niemand zugehört hat
  • Keine Projektdateien ändern, um den Export durchzuführen (Untertitel bearbeiten, Ebenen löschen, Buch ändern). Der Export ist schreibgeschützt
  • Keine Arbeit von upstream im Export nachholen: Fehlende Untertitel → Untertitel schreiben, fehlende visuelle Elemente → visuelle Elemente erstellen; in diesem Abschnitt nicht provisorisch etwas zusammenbasteln

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Agentchengfeng/chengfeng-videocut-skills

剪辑环境的唯一管理者:就绪检查(skills 是否最新 → Runtime 是否配套)、Skills 更新激活、Runtime 安装与体检。用户说检查更新、安装剪辑环境、装播放器、检查剪辑环境、剪辑环境就绪了吗、配置转录凭证时使用;业务 Skill(剪口播/字幕/画面/导出)第 0 步也引用本 Skill 的就绪检查。不用于剪辑、字幕、画面、导出本身或项目数据迁移。

Agentchengfeng/chengfeng-videocut-skills

剪辑中文口播原素材:逐词转录、词典修字出修字表、五轮扫描找口误与重复、汇总表与重复句子表、打开 Studio 让用户复核、复盘沉淀用户偏好与词典。只产出一份已复核的删词账本,不切媒体、不做字幕、不做分镜动画。用户说剪口播、处理口误、生成口播基础素材、继续剪口播,或确认卡回传 action=return_cut_review 时使用。不要用于执行物理剪切、导出剪后视频、单独安装、单独打开工作台或口播分镜成片。

Agentchengfeng/chengfeng-videocut-skills

整理、脱敏并上报 chengfeng-videocut 的 GitHub Bug。用户说上报 Bug、反馈剪口播问题、提交 GitHub Issue、这个问题告诉开发者,或要求继续提交已预览的 Bug 草稿时使用。不要用于功能建议、普通排错、代码提交或未获用户确认的自动上报。

Agentchengfeng/chengfeng-videocut-skills

给剪好的口播做字幕:直接用已有的逐词稿加账本算出剪后时间(不必导出、不必重新转录)、用词典和作者文稿改写听错的专名、按句子分屏、在 Studio 里逐屏复核。用户说做字幕、加字幕、改字幕、重新分屏、字幕不对时使用。不要用于删词剪辑、物理剪切、分镜动画或成片渲染。

Agentchengfeng/chengfeng-videocut-skills

操作 chengfeng-videocut 剪辑工作台的已有工程,通过 Runtime CLI 查工程与词句位置、添加或替换画面覆盖层、移除画面、删除明确指定的词句或片段、拆分裁剪移动已有片段、调整画布比例并回读核验。用户说插入片段、删掉这句、移除动画、换个画面、调整顺序或管理时间线时使用;先区分画面覆盖与主轨顺延插入,不负责自动判断口误、创作动画、制作字幕、导出或排查安装故障。

Agentchengfeng/chengfeng-videocut-skills

Create Ian Xiaohei-style HTML/SVG motion illustrations for Chinese articles, scripts, storyboard scenes, workflow explanations, concept metaphors, and short video visual aids. Use when the user asks for 小黑 SVG、漫画感 HTML、分层 SVG 动效、把小黑生图做成 HTML/SVG、可编辑矢量动效、口播流程动画、手绘漫画动效、正文配图动画, or wants a Xiaohei illustration style adapted into controllable HTML/SVG/GSAP output instead of raster image generation.

Agentchengfeng/chengfeng-videocut-skills

给剪好的口播配画面:在录屏上盖 HTML 层(圈重点标注 / 小黑整屏动画 / 推近),层绑字幕屏、由播放器逐帧驱动、直接在预览里看。用户说做分镜、配画面、加动画、圈重点、B-roll、做 storyboard 时使用。不要用于删词剪辑、字幕、物理剪切或成片渲染。

Verwandte Skills