Communitygithub.com

Video-Edit

Schneidet Videos, fügt Clips zusammen, fügt Titelbilder hinzu, extrahiert Frames/Audio und exportiert MP4 (Android-Host weizhi:video). Nicht für Desktops ohne MediaCodec geeignet.

Was ist Video-Edit?

Diese Skill ermöglicht die Videobearbeitung auf Android-Geräten über die `weizhi:video`-Schnittstelle. Sie unterstützt das Trimmen von Clips, das Zusammenfügen ohne Neucodierung (v1), sowie erweiterte Funktionen wie Bildspuren, Ken-Burns-Effekte und Crossfade-Übergänge (v2). Der Workflow beginnt mit `load_skill`, gefolgt von `find_caps`, um die aktuellen API-Signaturen zu ermitteln. Die eigentliche Verarbeitung erfolgt in JavaScript-Skripten unter `jobs/*.js`, die mit `run_js` ausgeführt werden. Die Skill bietet `probe` zum Auslesen von Metadaten, `extractFrame`/`extractFrames` zum Extrahieren von Standbildern und `exportVideo` für den finalen Export. Wichtig ist die strikte Einhaltung der JSON-Struktur für Zeitachsen (v2), insbesondere bei Übergängen und Überlappungen. Die Ausgabe erfolgt als MP4-Datei, und dem Benutzer wird ein Link zur fertigen Datei präsentiert.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/fengshihao/agent1-skills/tree/main/skills-src/video-edit

In Ihrer bevorzugten KI fragen

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

Vorschau

Aus dem Skill-README

Dokumentation

Videobearbeitung (weizhi:video)

Umfang

MachtMacht nicht
probe, Frames/Audio extrahieren, exportVideo exportierenMit webview_exec ganze MP4-Datei dekodieren
v1 Remux: Anfang/Ende kürzen, nahtloses ZusammenfügenVorgeben, Desktop-Transcoding zu unterstützen (kein Paket auf Desktop)

Startprotokoll

  1. Zuerst load_skill (video-edit) ausführen, um diesen Text zu lesen.
  2. Vor exportVideo oder komplexer Timeline: Einmal find_caps aufrufen (query enthält exportVideo weizhi:video oder die konkrete Fähigkeit), dann das zurückgegebene Aufrufbeispiel verwenden. Keine Feldnamen erraten.
  3. Skripte in jobs/*.js ablegen, mit run_js über file ausführen; timeout_ms kann erhöht werden (max. 600000).
  4. API-Fehler im Skript (z. B. bad argument, unsupported): Erneut find_caps aufrufen, die Signatur prüfen und das Skript korrigieren.

Routenwahl

AufgabeAPI
Nur einen Abschnitt schneiden, mehrere Abschnitte aneinanderhängen, ohne Neucodierungv1 exportVideo({ clips: [{ path, startMs?, endMs? }], output })
Mehrere Spuren, Titelbild, Ken Burns, Crossfadev2 exportVideo({ width, height, tracks, output })

Timeline v2 (Wichtig)

  • Standbilder / Bilder: Spur mit type: "image", durationMs ist Pflicht.
  • MP4-Clips: Spur mit type: "video", inMs / outMs. Bilder nicht in Video-Spuren einfügen.
  • Crossfade (nur image-Spur): Nächster Clip erhält transition: { type: "crossfade", durationMs: D }, und
    startMs_next = startMs_prev + durationMs_prev - D (Überlappung exakt D Millisekunden). Es gibt kein crossfadeMs-Feld.
  • Clips auf derselben Spur ohne deklariertes transition dürfen sich zeitlich nicht überlappen; Fehler overlapping clips: dann obige Formel und transition prüfen.
  • transition und selbst geschriebene Opacity-Keyframes im selben Clip dürfen nicht gleichzeitig verwendet werden.
  • Audiospur: type: "audio" als separate Spur.

Beispiel (zwei Bilder mit Überblendung + anschließendem Video):

import { exportVideo } from "weizhi:video";

const D = 300;
await exportVideo({
  width: 720,
  height: 1280,
  tracks: [
    {
      type: "image",
      clips: [
        { src: "a.jpg", startMs: 0, durationMs: 1000 },
        {
          src: "b.jpg",
          startMs: 1000 - D,
          durationMs: 1000,
          transition: { type: "crossfade", durationMs: D },
        },
      ],
    },
    {
      type: "video",
      clips: [{ src: "clip.mp4", startMs: 1700, inMs: 0, outMs: 5000 }],
    },
  ],
  output: "out/final.mp4",
});

Empfohlener Workflow

  1. probe auf Quellvideo anwenden: Dauer und Auflösung ermitteln.
  2. Titelbild benötigt: extractFrame / extractFrames (siehe find_caps).
  3. Komplexes Projekt: Zuerst mit v1 Zwischenergebnisse part1.mp4, part2.mp4 exportieren, dann mit v1 oder v2 zusammensetzen. Vermeiden, Clips ohne deklarierte Überblendung einfach übereinanderzulegen.
  4. Hintergrundmusik: Separate audio-Spur, outMs an die Gesamtlänge des Bildes anpassen.

Ablauf

  • Ein Skript jobs/render.js führt Erkennung, Export und Überprüfung (erneutes probe der Ausgabe) nacheinander aus.
  • Äußere Ebene nicht mehrere Werkzeuge anstelle eines vollständigen Skripts verwenden.

Was dem Benutzer gesagt wird

Dateiname und Dauer des fertigen Videos nennen. Mit [Fertiges Video](out/xxx.mp4) verlinken. Keine Fachbegriffe anhäufen.

Verwandte Skills