Pixerate-Videoeditor
Ein Projekt ist einfaches JSON: Bildgröße, fps, ein Hintergrund, Assets (Video-, Audio- oder Bilddateien mit einem src und, bei Video und Audio, einer duration), Spuren von oben nach unten aufgelistet (Videospuren enthalten Medien, Titel und Farbclips; Audiospuren enthalten Ton; eine frühere Videospur überdeckt eine spätere) und Marker. Ein Clip hat einen start und eine duration auf der Timeline; ein Medienclip hat zusätzlich einen in-Punkt in sein Asset, speed, volume, muted; jeder Clip kann fadeIn, fadeOut, opacity, fit und transform sowie einen transition von dem Clip, der dort endet, wo er auf derselben Spur beginnt, haben.
Ein Projekt kann auch verschachtelte Sequenzen enthalten ({ id, name, tracks }, mit eigener Timeline ab 0). Ein Compound-Clip (type: "sequence", sequence, in) spielt einen Ausschnitt einer Sequenz als ein einzelnes Bild und einen einzelnen Ton ab: Seine Deckkraft, Transformation, Überblendung, Grading, LUT, Fades, Übergänge und Animationen wirken auf die Komposition der Sequenz, und sein volume, muted und Fades wirken auf den Mix der Sequenz. Compound-Clips werden mit normaler Geschwindigkeit abgespielt (kein speed oder Ramp), und die Clips innerhalb einer Sequenz können gelesen (list_video_sequences), aber noch nicht bearbeitet werden.
Alle Zeiten sind Millisekunden auf der Timeline (oder in die Quelle für in). IDs: Spuren sehen aus wie v1 / a1, Clips wie c1, Marker m1; Sie können beim Hinzufügen eigene IDs vergeben. Lesen Sie sie aus get_video_project; erfinden Sie sie nie.
Für Fehler, namespaced Tool-Namen und Undo-Konventionen siehe pixerate-agent-tools.
Workflow-Skills
Laden Sie für diese Aufgaben auch das Workflow-Skill: Es enthält die Methode, die Prüfungen zwischen den Schritten und die Fallstricke und verwendet die untenstehenden Tools.
pixerate-talking-head-edit: Dialogbereinigung per Transkript: Füllwörter, Pausen, Stottern.pixerate-bgm-alignment: Schneiden auf den Takt, Musik unter Sprache ducken, Lautstärke.pixerate-video-social-cut: Vertikale Neurahmungen, zuerst der Hook, Plattformlängen, Titel im sicheren Bereich.pixerate-video-colour-grade: Aufnahmen korrigieren und angleichen, ein Look auf einem Anpassungsclip, LUTs und Haut.pixerate-video-montage: Auswahl auf den Takt, Tempo, Übergänge, Musik und das Ende.
Arbeitsmethode
- Lesen.
get_video_projectfür Einstellungen, Assets, Spuren, Clips (mit Ende und Quellbereich), eine Zusammenfassung jeder verschachtelten Sequenz, Marker und Probleme. Bei Compound-Clips zeigtlist_video_sequences, was sie enthalten. Setzen Sie zuerst Bildgröße undfpsmitset_video_settings, wenn das Projekt neu ist; eine spätere Änderung verschiebt bildbasierte Grenzen. - Medien importieren.
add_video_assetfür jede Datei mitkind,srcund der Quell-duration(ohne diese können Trims nicht geprüft werden undcheck_video_projectwarntunknown-duration). Geben Sieposterfür Video an, damit gerenderte Frames ein Bild zeigen. - Struktur markieren.
add_video_markeran Beats, Abschnitten oder Überprüfungsnotizen; Clip-Kanten rasten im UI an Markern ein und Marker machenseek_video-Ziele. - In einem Batch montieren. Verwenden Sie
edit_videofür einen Rohschnitt:add_asset,add_track, dannadd_clip-Operationen in Reihenfolge, mit expliziten Clip-IDs, damit spätere Operationen (Trim, Transition) sie benennen können. Führen Sie es zuerst mitdry_run: trueaus; der Fehler benennt die fehlschlagende Operation. - Verfeinern mit den Einzel-Tools:
trim_video_clip,split_video_clip,move_video_clip,update_video_clip,set_video_transition,delete_video_clips/close_video_gaps; für das Timing zwischen Aufnahmen verwenden Sie die Trim-Modi, die ein Editor verwenden würde:roll_video_edit(einen Schnitt verschieben),slip_video_clip(ändern, was eine Aufnahme zeigt),slide_video_clip(eine Aufnahme zwischen ihren Nachbarn verschieben); für einen ganzen Abschnittsplit_video_at,lift_video_rangeoderextract_video_range. Animieren Sie Deckkraft, Lautstärke oder Position mitset_video_keyframes. - Nach Text schneiden, wenn das Medium Sprache enthält:
set_video_transcriptfür jedes Sprach-Asset (oder prüfen SietranscriptWordsinget_video_project),get_video_transcriptzum Lesen des Schnitts, dannfind_video_fillers,find_video_pausesoderfind_video_transcript_textund übergeben Sie die zu entfernenden Bereiche anremove_video_rangesin einem Aufruf. Lesen Sie danach das Transkript erneut: Jedes Mal, wenn ein Schnitt verschoben wurde. - Prüfen.
check_video_projectund beheben Sie jeden Fehler und jede Warnung;find_video_gapsfür unbeabsichtigte schwarze Stellen oder Stille. - Ansehen und anhören.
get_video_framean Schnitten und Übergängen für Ebenen und Audio-Gains als Zahlen;render_video_framemittimesfür ein Kontaktblatt der Sequenz. Rendern Sie nach einem Batch, nicht nach jeder Bearbeitung. - Exportieren, wenn gewünscht:
export_video_ffmpeg(ein auszuführender Befehl, kein Render) oderexport_video_edl(eine Spur) zur Fertigstellung anderswo. Lesen Sie die zurückgegebenen Hinweise. Für eine Auslieferungslautstärke lassen Sie den Host zuerstexport_video_loudness_measureausführen und übergeben Sie das Ausgedruckte alsloudness.measured; ein Durchgang (loudnessohnemeasured) ist für einen Entwurf in Ordnung. - Zuerst planen, wenn der Benutzer es sehen soll. Für alles Große oder Beurteilungsschwere (einen Rohschnitt, eine Bereinigung, Schneiden auf Musik) schlagen Sie es mit
plan_video_edits(oder einemplan_*-Tool aus den Dialog- und Musik-Skills) vor, anstatt es anzuwenden: Das Projekt ändert sich nicht, der Editor zeigt den Plan mit seiner Längenänderung und den geschnittenen Abschnitten, und Sie wenden ihn mitapply_video_edit_planan, sobald der Benutzer zustimmt (oderdiscard_video_edit_plan).list_video_edit_planszeigt, was wartet und ob sich das Projekt seitdem geändert hat. - Effekte (nur, wenn der Host einen Effekte-Anbieter registriert hat;
search_effectssagt sonstavailable: false):search_effectsmit einemuse, danndescribe_effectfür dessen Steuerelemente, dannapply_effect(Filter und Überlagerungen auf einem Clip),set_video_effect_transitionoderadd_video_effect_clip(Generatoren und Titel). Optimieren Sie mitupdate_effectundset_video_effect_keyframes; überprüfen Sie mitget_video_frame(Ebenenlisteeffects) undlist_applied_effects. Ein Effekt entlang eines Pfads (ein Strahl entlang einer Grenze, eine Spur, geschriebene Wörter):search_effectsmitaccepts: ["path"], fügen Sie ihn als Clip oder Clip-Effekt hinzu, dannset_video_effect_pathmit Frame-points, Pfaddatend, einer Clip-mask-Kontur odertext. - Kamerabewegungen (ein Anbieter mit Kamerabewegungen, wie Flair): Ein Clip ist die Aufnahme.
list_video_camera_movesmit einerrole, dannset_clip_camera_move:transitionbewegt sich vonfromzuframingvom Start des Clips (ein Gleiten, Peitschenschwenk, Punch-Zoom);holdläuft über den Rest des Clips beiframing(ein Ken-Burns-Drift auf einem Standbild). Die Bewegungen werden in die x-, y-, Skalierungs- und Rotations-Keyframes des Clips bei der fps des Projekts eingebacken, zwei Keyframes an einem Schnitt, sodass Vorschau und Exporte sie ohne den Anbieter abspielen. Überprüfen Sie mitget_video_frame. - Sequenz-Vorlagen (ein Anbieter mit Vorlagen): Für einen vorgefertigten Opener, eine Enthüllung oder einen Countdown,
list_templates, danndescribe_templatefür seine Slots, dannfill_templatemitvalues(beginnen Sie mit seinenexampleValues) undat. Es landet auf neuen Spuren über den anderen als ein Undo-Schritt: Jede Aufnahme hat ihre untere Ebene auf einer Basisspur, die den Übergang der Aufnahme trägt, andere Ebenen als Effekt-, Bild- und Text-Clips nach Rolle. Offene Slots werden als graue Platzhalter-Clips (placeholders) zurückgegeben; legen Sie das echte Bild mitadd_video_assetundadd_video_clipimoverwrite-Modus darüber. Kamerabewegungen werden nicht übernommen: Fügen Sie sie mitset_clip_camera_movehinzu.
Best Practices
- Auf Aktion schneiden. Setzen Sie einen Schnitt während einer Bewegung (eine Drehung, eine Türöffnung), damit die Kontinuität der Bewegung ihn verbirgt;
split_video_clipan der Aktion, dann trimmen Sie die ausgehende und eingehende Seite. - Jump Cuts vermeiden. Zwei aufeinanderfolgende Aufnahmen desselben Motivs aus fast derselben Kameraposition wirken wie ein Fehler. Ändern Sie den Winkel oder die Größe, decken Sie den Schnitt mit B-Roll auf einer höheren Videospur ab, oder machen Sie ihn bewusst.
- J- und L-Cuts. Lassen Sie den Ton dem Bild vorausgehen oder folgen: Legen Sie den Ton des Mediums auf eine Audiospur (ein Clip desselben Video-Assets), stummen Sie den Videoclip (
muted: true), und dannroll_video_editden Audio-Cut früher (J) oder später (L) als den Bild-Cut. Das glättet Dialoge und Szenenwechsel. - Übergänge sparsam einsetzen. Ein gerader Schnitt ist der Standard. Verwenden Sie
crossfadefür Zeitabläufe oder einen sanften Szenenwechsel,dip(zu Schwarz oder einercolor) für einen Abschnittswechsel,wipeselten. Halten Sie sie kurz (300-1000 ms).pushundslideeignen sich eher für Grafiken, Montagen und Social-Media-Schnitte als für Dramen;irisist ein stilisierter Retro- oder Comiceffekt. Jeder Typ außerdipbenötigt Handles: die halbe Dauer ungenutzten Mediums nach dem Schnitt auf beiden Clips;dipbenötigt keine. - Einfügen vs. Überschreiben.
add_video_clipundmove_video_clipakzeptierenmode:refuse(Standard; der Fehler benennt den nächsten freien Platz),overwrite(ersetzen, was darunter ist, wie ein Overwrite-Edit) oderinsert(späteres Material weiterschieben). Verwenden Sieripple: truebei Trim und Delete, undextract_video_rangeanstelle vonlift_video_range, um alles nach dem Edit synchron ohne Lücke zu halten. Ripple und Insert verschieben jede entsperrte, synchronverknüpfte Spur, sodass Dialog und Bild zusammenbleiben; schalten SiesyncLockedmitupdate_video_trackfür ein Musikbett aus, das an Ort und Stelle bleiben soll. - Mit dem richtigen Tool trimmen. Um zu ändern, wann ein Schnitt passiert, ohne etwas anderes zu verschieben,
roll_video_edit; um zu ändern, welchen Moment eine Aufnahme zeigt,slip_video_clip; um eine Aufnahme früher oder später zwischen zwei andere zu verschieben,slide_video_clip. Alle drei halten die Timeline lückenlos und melden das Delta, das sie tatsächlich angewendet haben (begrenzt auf verfügbares Medium). - Keyframes sparsam einsetzen. Verwenden Sie
set_video_keyframesfür einen Push-In (scale1 auf 1,1 über die Aufnahme), ein Ducken unter Dialog (volume) oder ein Fade, das nicht an einer Kante ist; erleichtern Sie (ease-in-out) statt linear für Bewegung. Einfache Fades an den Clip-Kanten sindfadeIn/fadeOut. - Dialog zuerst per Text straffen. Mit einem Transkript entfernen Sie Füllwörter und Pausen mit den Find-Tools und einem
remove_video_ranges; überprüfen Sie zuerst die Füllerliste (ein "weißt du" kann beabsichtigt sein). Lassen Sie 150-300 ms um Wörter (keep), damit die Sprache atmet. Ohne Transkript verwenden Sie den Ton selbst, siehe unten. - Dialog nach Gehör, in Zahlen straffen.
find_video_silencesauf einem Interview- oder Voiceover-Clip listet die Pausen in Timeline-Zeit auf; extrahieren Sie die langen (lassen Sie 150-300 ms auf jeder Seite, damit die Sprache nicht abgeschnitten klingt: verkleinern Sie jeden Bereich vorextract_video_range, und extrahieren Sie von der letzten Pause zurück zur ersten, oder lesen Sie erneut, da jede Extraktion das Folgende verschiebt). Verwenden Sieget_video_audio_levels, um zu finden, wo eine Zeile beginnt, bevor Sie daran trimmen oder splitten. - Geschwindigkeitsrampen für Betonung. Rampen Sie kurz vor dem Moment, der wichtig ist (ein Sprung, eine Enthüllung), in Zeitlupe und danach wieder heraus:
set_video_speed_rampmit einem 300-600 ms Gleiten (toSpeed) statt einer abrupten Änderung und Zeitlupe um 0,25-0,5. Ein Standbild (1-2 s) eignet sich für einen Titel oder einen "das bin ich"-Moment; fügen Sie es mitadd_video_freeze_framehinzu. Gerampter Ton ist gestuft und in Standbildern stumm, also legen Sie Musik oder Effekte unter gerampte Aufnahmen anstelle ihres eigenen Tons. - Lücken schließen. Unbeabsichtigte Lücken werden als Hintergrundfarbe und Stille abgespielt.
find_video_gaps, dannclose_video_gapsoder Ripple-Deletes. Lassen Sie Lücken nur dort, wo Sie Schwarz wünschen. - Auf Frames schneiden. Setzen Sie Starts, Trims und Splits auf Framegrenzen (Vielfache von 1000 / fps ms; 41,667 bei 24 fps, 33,333 bei 30). Bearbeitungen runden nicht für Sie.
- Audio-Pegel. Dialog ist die Referenz; halten Sie Musik darunter (Lautstärke um 0,2-0,4 unter Sprache, mehr zwischen den Zeilen) und vermeiden Sie Gains über 1, die clippen.
volumepro Clip undvolumepro Spur multiplizieren sich. Geben Sie jedem Audioclip, der mitten im Ton beginnt oder endet, ein kurzesfadeIn/fadeOut(10-50 ms), um Klicker zu vermeiden; blenden Sie Musikbetten über 1-3 s ein/aus. Formen Sie Audio-Fades mitfadeInCurve/fadeOutCurve:equal-power, wo zwei Töne überlappen (es hält die Lautstärke konstant, wo linear in der Mitte abfällt;audioCurvevon Übergängen ist bereits standardmäßig darauf für Crossfades und Wipes eingestellt),exponential, um Musik natürlich zur Stille auszublenden,s-curvefür einen sanften Start und Abschluss. Linear ist der Standard. - Auslieferungslautstärke. Normalisieren Sie den endgültigen Mix, anstatt Clip-Lautstärken zu pushen: -14 LUFS für Web und Streaming, -16 für Podcasts, -23 (EBU R128) oder -24 (ATSC) für Rundfunk, mit True Peaks bei oder unter -1 dBTP. Zwei Durchgänge erhalten die Dynamik; ein Durchgang pegelt das Niveau.
- Grading in zwei Durchgängen: korrigieren, dann Look. Bringen Sie zuerst jede Aufnahme ins Gleichgewicht, sodass eine Szene übereinstimmt (
update_video_clipgrade: Belichtung und Weißabgleich gegen die beste Aufnahme korrigieren, danncopy_video_gradevon ihr auf den Rest der Szene), dann fügen Sie einen Look mitapply_video_grade_presetin einer moderatenamount(0,3-0,6) oder einem.cube-Look, den der Benutzer hat, mitset_video_lut(oft mitstrength0,5-0,8: Filmemulationen und kreative LUTs sind bei voller Stärke stark). Eine LUT läuft nach den Grading-Einstellungen, also korrigieren Sie zuerst Belichtung und Weißabgleich; LUTs, die für Log-Material gebaut wurden, erwarten ein flaches Bild und sehen auf normalem Video verzerrt aus. Überprüfen Sie mitrender_video_framezu einigen Zeiten nebeneinander. Hauttöne sind die Referenz: Vermeiden Sie starkehueodertintbei Menschen. - Anpassungsebenen für Looks über Aufnahmen hinweg. Anstatt jeden Clip einer Szene gleich zu graden,
add_video_adjustment_clipauf einer Spur darüber mit dem Look (grade, einpresetmit eineramountoder Effekte mitapply_effectauf dem Anpassungsclip): Es ändert alles darunter, während es läuft, sodass Trims und neue Clips den Look übernehmen. Der Bereichallumfasst Titel und Spuren darüber; der Bereichtrackbeschränkt ihn auf eine Spur. Blenden Sie ihn ein und aus (fadeIn/fadeOut), um einen Look sanft einzuschleusen, und geben Sie ihm eine Maske, um ihn auf einen Teil des Bildes zu beschränken. - Masken für punktuelle Änderungen.
set_video_clip_maskschneidet einen Clip auf eine Form zu (ellipsefür ein Gesicht oder eine Vignette,rectanglemitcorner_radiusfür Bild-in-Bild,linearfür einen geteilten Bildschirm oder einen abgestuften Himmel,polygonfür eine individuelle Form;invert: truekehrt die Maske um). Eine Maske auf einem Anpassungsclip begrenzt den Look auf einen Teil des Bildes (z. B. ein Gesicht aufhellen, ohne den Hintergrund zu beeinflussen). Verwenden Sie sie sparsam, da harte Maskenkanten weichgezeichnet werden müssen (Pixel um Pixel). - Hautton-geschützte LUTs.
set_video_luthat einen optionalenskinProtection-Parameter. Wenn True, wendet der Editor die LUT auf alles außer Hauttöne an. Das beugt unnatürlichen Farbstichen auf Gesichtern vor und gibt die Freiheit, die Umgebung stark zu verändern. LUTs, die mitskinProtection: trueregistriert wurden (lautdescribe_effect), sind darauf ausgelegt, den Hautton zu bewahren. - Color-Wheels und Kurven im Grading.
update_video_clipgradeakzeptiertshadows,midtones,highlightsmithue,saturation,lift,gamma,gainundoffsetfür jede Bande. Arbeiten Sie von den Mitteltonen zu den Schatten und Lichtern: Korrigieren Sie zuerst mitlift/gamma/gain, verleihen Sie den Mitten eine Farbtönung (midtones.huemit niedrigersaturation– 0,05–0,15 für Filmlooks, mehr wird karikaturhaft). Vermeiden Sie es, Schatten oder Lichter auf null zu setzen; das schneidet ab. Verwenden Siecurves{hueVsHue,hueVsSat,lumVsSat} für Feinanpassungen. - Kamerabewegungen anwenden.
set_clip_camera_moveauf einem Clip erzeugt einen Punch/Zoom oder eine Gleitbewegung. Eintransition-Move spielt sich vom Start des Clips bis zur angegebenen Zeit ab (schnell: 200–600 ms für einen Peitschenschwenk); einhold-Move hält dieframingfür den Rest des Clips (ein Drift). Wählen Sieframingnach Rolle:close-upfür Schlagworte,midfür Gespräche,widefür Umgebungen. Bewegen Sie sich nicht vonwidezuclose-upam selben Clip; das ist ruckelig; schneiden Sie stattdessen zu einer neuen Aufnahme. - Sequenzen für Organisation. Gruppieren Sie verwandte Aufnahmen (z. B. eine Montage, eine Interview-Reihe) in einer Sequenz, um die Haupt-Timeline übersichtlich zu halten. Arbeiten Sie den Inhalt einer Sequenz aus, bevor Sie sie in die Haupt-Timeline legen, da Compound-Clips nicht in einzelne Clips aufgelöst werden können.
- Projekt prüfen, nicht nur Clips. Lassen Sie
check_video_projectnach jeder Runde größerer Bearbeitungen laufen; es fängt Overlaps, Lücken, fehlende Assets, festgefahrene Übergänge und unausgeglichene Audiopegel ab. Beheben Sie zuerst Fehler, dann Warnungen. - Transkript nach dem Schnitt erneut laden. Nach jedem
remove_video_rangesoder manuellen Schnitt liestset_video_transcriptdie neue Rohübersetzung (falls der Editor sie unterstützt); ohne dies arbeiten Find-Tools mit alten Zeiten. - Stumm-Clips für Stille. Fügen Sie für eine bestimmte stille Lücke (zwei Wörter auseinanderziehen, vor einem Schlagwort Platz lassen) einen
proto: "empty"-Clip auf der Audiospur mitmuted: falsehinzu.volume: 0macht dasselbe. - Export für die Fertigstellung.
export_video_ffmpeggibt einen Befehl aus, der auf dem Host ausgeführt werden muss; er rendert die Sequenz bei den Projekteinstellungen und wendet Fades, Überblendungen, Masken und Kamerabewegungen an, aber nicht die Audiopegel oder das Grading des Editors.export_video_edlist ein CMX-3600-ELD (ein ausgewählter Modus: eine Videospur, eine Audio-/Aux-Spur), ideal für die Farbkorrektur.export_video_fcpxml(falls vorhanden) für Final Cut Pro. - Importformate. Der Editor akzeptiert, was FFmpeg lesen kann: die gängigen Video- und Audio-Container (MP4, MOV, MXF, WAV, AIFF, MP3) und Bildformate (PNG, JPEG, TIFF, EXR). Transcodieren Sie zuerst ungewöhnliche Formate auf dem Host.
- Projekt-Dateigröße. Ein Projekt ist JSON; wenn es sehr groß wird (Stunden Rohmaterial), laden Sie nur den benötigten Teil mit
list_video_assetsundlist_video_tracksvor dem Lesen, anstatt das ganze Projekt auf einmal.
Integration tests
See tests/pixerate-video-editor.test.ts and run with npm test -- --grep video.
Related skills
pixerate-talking-head-editpixerate-bgm-alignmentpixerate-video-social-cutpixerate-video-colour-gradepixerate-video-montage