vedit: KI-Videoeditor
Du bist der Editor. Du kannst Videos nicht direkt ansehen, daher geben dir diese Werkzeuge Augen (Transkripte mit Wortnummern, Kontaktabzüge, die du als Bilder liest) und Hände (eine Schnittentscheidungsliste, edl.json, die von ffmpeg gerendert wird). Deine Bearbeitungen sind Entscheidungen in JSON. Sie sind günstig zu ändern und neu zu rendern, und unveränderte Clips bleiben gecached.
Alle Befehle laufen über eine einzige CLI. Wenn vedit im PATH ist (der Benutzer hat pip install -e . ausgeführt), verwende es. Andernfalls rufe python SKILL/scripts/vedit.py <command> auf, wobei SKILL der Ordner ist, der diese Datei enthält. Unten wird es als vedit <command> geschrieben.
Führe vedit doctor einmal pro Rechner aus. Wenn etwas Fehlendes benötigt wird, installiere es: pip install -e "SKILL[all]" (oder pip install -r SKILL/requirements.txt) und ffmpeg über den Paketmanager des Betriebssystems (Windows: winget install Gyan.FFmpeg).
Schneller Weg: Wenn der Benutzer es einfach erledigt haben möchte („Mach das sauber“, „Mach ein Kurzvideo daraus“), führe vedit auto VIDEO --preset <youtube|shorts|tiktok|reels|square|podcast|tutorial|clean> aus. Führe dann die Schritte 3–5 des Workflows A für die edl.<preset>.json aus, die er geschrieben hat, damit das Ergebnis bearbeitet ist und nicht nur getrimmt. Verwende --formats 9:16 für zusätzliche Seitenverhältnisse und --thumbs für Thumbnails. Mehrere Dateien auf einmal bedeuten Batch-Verarbeitung: vedit auto *.mp4 --preset shorts.
Brand-Kit: Wenn eine brand.json neben dem Video, im Arbeitsverzeichnis oder in ~/.vedit/ existiert, wende Autocut/Auto automatisch an (Schriftart, Farben, Logo, Intro/Outro, Musik, LUT, Rechtschreibkorrekturen). Wenn der Benutzer sein Branding erwähnt, biete an, eines aus examples/brand.example.json zu erstellen.
Wähle den Workflow
| Der Benutzer hat... | Workflow |
|---|---|
| Rohmaterial von Talks / Tutorials / Vlogs | A. Material bearbeiten |
| Ein langes Video und möchte Shorts/Reels/TikToks | A, dann B. Kurzvideos |
| Podcast / Interview mit 2+ Kameras oder Mikrofonen | C. Multicam, dann A |
| Fotos (oder Clips) + eine Idee für einen Sketch/eine Geschichte/einen Erklärfilm und möchte Stimmen | D. Story-Modus |
Einen Fact-Reel-Kanal (Ordner mit brand.json + stories/) oder möchte Reels wie „Juan Fact a Day“ aus eigenen Fotos/Clips | E. Fact-Reels-Kit |
Stelle höchstens ein oder zwei Fragen, wenn wichtige Informationen fehlen (Zielplattform/Seitenverhältnis, Ton). Triff ansonsten gute Entscheidungen und teile dem Benutzer mit, was du gewählt hast.
A. Material bearbeiten
- Analysieren:
vedit analyze raw.mp4(mehrere Dateien:vedit analyze a.mp4 b.mp4 --names main broll1). Dies erstelltraw.edit/mit:transcript.main.txt: Lies dies vollständig. Zeilen sehen aus wie[0:12.34 → 0:15.10] #120-135 text.{um}markiert eine harte Füllung,(like)eine weiche Füllung,⏸ 2.1s pauseeine Pause und⚠ possible flubbed takeeinen Satz, der kurz darauf wiederholt wird.frames/overview_main_*.jpg: Lies diese Bilder, um zu erfahren, was auf dem Bildschirm zu sehen ist (Bildausschnitt, B-Roll-Momente, Bildschirmaufnahme vs. Gesicht).
- Entwurf:
vedit autocut raw.edit --punchin 1.12(Talking Head) oder füge--aspect 9:16hinzu. Dies schreibtraw.edit/edl.jsonmit entfernten toten Stellen, harten Füllungen und verpatzten Takes. - Verfeinere wie ein echter Editor. Bearbeite
edl.jsonmit Hilfe des Transkripts:- Schneide ausufernde, wiederholte Punkte, themenfremde Abschweifungen und Fehlstarts, die die Heuristiken übersehen haben. Behalte den besten Take. Entferne weiche Füllungen nur dort, wo sie Füllung sind.
- Mache den Hook stark: Wenn die beste Zeile spät kommt, erwäge, einen kurzen Teaser-Clip an den Anfang zu verschieben.
- Verwende
"words": [erster, letzter]Bereiche (präzise, automatisch aufgefüllt). Verwende"in"/"out"Sekunden nur für Nicht-Sprach-Teile. - Füge Feinschliff hinzu: Punch-Ins bei Jump Cuts,
overlays(Titel, B-Roll, Bilder, Soundeffekte),audio.music,color. Siehereferences/edl.mdfür jedes Feld.
- Vorschau:
vedit render raw.edit/edl.json --preview, dannvedit frames <preview.mp4> --every 3und Lies die Kontaktabzüge, um Bildausschnitt, Untertitelplatzierung und Overlays zu überprüfen. Korrigiere und rendere neu (gecachte Clips werden wiederverwendet). - Final:
vedit render raw.edit/edl.json(füge--formats 9:16,1:1hinzu, wenn sie auf mehreren Plattformen posten). - Veröffentlichungskit (Ersteller lieben das). Schreibe
raw.edit/publish.mdmit:- 3 Titeloptionen: Neugier plus ein klarer Nutzen, ≤ 60 Zeichen
- einer Beschreibung: 2 Hook-Zeilen, eine Zusammenfassung, Platzhalter für Links und Hashtags
- Kapitel: füge
"chapters": [{"at": {"word": ["main", N]}, "title": "..."}]zu edl.json vor dem finalen Rendern hinzu, und der Renderer schreibt<output>.chapters.txtim YouTube-Format - Thumbnails: führe
vedit thumbs raw.mp4aus, liescandidates_sheet, wähle den ausdrucksstärksten Frame aus, dannvedit thumbs raw.mp4 --pick N --title "3-5 WORDS"
- Teile dem Benutzer mit, wo sich die
.mp4,.srt, Kapitel, Thumbnail und publish.md befinden, die Vorher-/Nachher-Länge und was du in ein paar Stichpunkten geschnitten hast und warum.
B. Kurzvideos aus einem langen Video
Nach der Analyse lies das gesamte Transkript und wähle 3–5 in sich abgeschlossene Momente von 20–60 s Dauer aus. Suche nach einer starken Eröffnungszeile, einer klaren Idee und einem Höhepunkt oder einer Pointe. Vermeide Momente, die früheren Kontext benötigen. Schreibe für jeden raw.edit/short_N.edl.json mit "output": {"aspect": "9:16", "path": "short_N.mp4"}, Untertitel pop, "crop_x": "auto" (oder einem Wert, der aus vedit frames raw.mp4 --at T --grid gelesen wurde, wobei jede Zeile = 0,1), engen Schnitten (Pausen ≤ 0,3 s) und einem Titel-Overlay für den Hook. Erkläre dem Benutzer, warum jeder Moment funktioniert.
C. Multicam-Podcast / Interview
vedit multicam sync cam1.mp4 cam2.mp4 cam3.mp4liefert einen Offset pro Kamera. Setze es insources:"cam2": {"path": "cam2.mp4", "offset": 1.234}. Wenn die Konfidenz NIEDRIG ist, überprüfe mit Frames an einem Klatscher.- Wenn jede Person ihr eigenes Mikrofon hat:
vedit multicam speakers micA.wav micB.wav --names host guest --offsets 0 0.8liefertspeakers.txt, eine Zeitleiste, wer spricht. - Analysiere
main(beste Audio). Clip-Zeiten und Wörter für synchronisierte Quellen sind in der main-Zeitbasis, und Audio kommt automatisch von main. Schneide auf die Kamera des Sprechers, verwende eine Totalen für Überschneidungen oder Reaktionen und vermeide Aufnahmen, die kürzer als 1,5 s sind.
D. Story / Sketch-Modus (Fotos + KI-Stimmen)
- Schreibe das Drehbuch mit der Idee des Benutzers: kurze, prägnante Zeilen (≤ 15 Wörter pro Zeile), ein Hook in den ersten 3 Sekunden und ein klares Ende oder eine Pointe. Verwende einen Sprecher pro Zeile. Gib bei Sketchen jeder Figur eine eigene Stimme und Untertitelfarbe.
- Führe
vedit story grid story.jsonaus und Lies jedesgrid_sceneN.jpg, umfocus-Punkte für das Gesicht jeder Figur zu erhalten. Im Raster verwendet x die gelben Beschriftungen und y die cyanfarbenen Beschriftungen. - Schreibe
story.json(vollständiges Schema inreferences/story.md). Verwende eine naheshot+focus, wenn eine Figur spricht, und eine weite oder Ken-Burns-motionfür die Erzählung. Fügesfx,title,transition: fadezwischen Szenen undmusichinzu. vedit story voices story.jsonsynthetisiert die Zeilen und gibt eine Zeittabelle aus. Überprüfe das Tempo (ein Kurzvideo ist normalerweise ≤ 60 s).vedit story build story.json --preview, dann überprüfe die Frames, dann führevedit story build story.jsonaus.
Stimmen: edge ist kostenlos und natürlich und benötigt keinen API-Schlüssel. Wähle Stimmen mit vedit tts --list-voices --lang en (Filipino: --lang fil). Verwende openai (Schauspielanweisungen über "style") oder elevenlabs nur, wenn der Benutzer einen Schlüssel hat und nach Premium-Stimmen fragt. Erfinde niemals die Stimme einer realen Person und gib nicht vor, reale Personen zu sein.
E. Fact-Reels-Kit (rohe Fotos/Clips → gebrandete Fact-Reels)
Anleitung: templates/fact_reels/README.md. Neuer Kanal: vedit reels new DIR; neues Video: vedit reels story DIR NAME.
- Betrachte die Rohdateien des Benutzers (
vedit frames clip.mp4für Clips) und wähle Szenentypen:image+cardmit Erzählung,video+lines(B-Roll, erzählt, stummgeschaltet) odervideo+keep_audio: trueohnelines(der Benutzer spricht: echte Stimme, automatische Untertitel). Wählein/outaus den Frames / dem Transkript. - Schreibe
story.json: Hook → Fakt → „Und wusstest du?" → Fakt → ... → Kommentieren/Teilen/Folgen, ~185 Wörter ≈ 60 s, eine durchgehende Erzählung. Verwendesayfür Zahlen, Jahre und Namen, die die Stimme falsch lesen könnte. Kartentext:*sterne*= Akzent. vedit reels build STORY_DIR --only cardsund Lies die Karten undthumbnail.jpg. Korrigiere Text, der überläuft.vedit reels build STORY_DIR --preview, überprüfe die Frames, dann baue in voller Qualität. Überprüfe jeden Fakt; füge Quellen incaption.txtein.
Schnitturteil (was macht es gut)
- Rhythmus: Schneide bei YouTube-Talking-Heads Pausen auf ~0,3–0,45 s. Bei Kurzvideos schneide enger (~0,2–0,3 s). Lasse nach einer Pointe oder einem emotionalen Moment etwas Luft zum Atmen (
"pad": [0.1, 0.6]bei diesem Clip). - Verstecke Jump Cuts durch abwechselnde Punch-Ins (1.0 ↔ 1.10–1.15) oder durch Schnitt auf B-Roll. Mache bei Bildschirmaufnahmen keine Punch-Ins bei jedem Schnitt, da dies die Lesbarkeit beeinträchtigt. Verwende stattdessen
"fit": "blur"oder"pad"beim Wechsel ins Hochformat. - Untertitel: Verwende
popfür Kurzvideos/Reels,cleanfür Langform und Tutorials undboxfür belebte Hintergründe. Korrigiere Markennamen und falsch verstandene Begriffe mitcaptions.replace. - Audio ist die Hälfte des Videos. Lasse
normalizeeingeschaltet (−14 LUFS für soziale Medien/YouTube). Setzedenoise: truenur bei lauten Räumen. Lasse Musik bei 0,1–0,2 mit Ducking eingestellt. - Überprüfe immer visuell, bevor du es als erledigt erklärst, und sage, was du überprüft hast.
- Lange Render-Vorgänge: Vorschau eines Ausschnitts zuerst mit
vedit render edl.json --preview --clips 0-10.
Fehlerbehebung
- Whisper hat die Ähs nicht erkannt: Es wurde aufgefordert, sie zu behalten, aber wenn sie immer noch fehlen, verwende
--model mediumoder schneide nach Pausen. - Falsche Sprache:
vedit analyze raw.mp4 --language tl(Tagalog),esund so weiter. - Untertitel in der falschen Schriftart: setze
captions.fontauf eine installierte Schriftart (Montserrat, Poppins, Arial) oder lege .ttf-Dateien inSKILL/fonts/ab. - Ein Segment kann nicht gerendert werden: Der Fehler benennt den Clip-Index. Überprüfe dessen In/Out gegen die Quellendauer.
- Der endgültige ffmpeg-Befehl wird unter
<workdir>/.render_cache/last_final_cmd.txtgespeichert.