remotion-ffmpeg-skill
FFmpeg-Skill misst → Remotion zeichnet → FFmpeg-Skill prüft und liefert aus. Skripte befinden sich im Ordner scripts/ neben dieser Datei; führen Sie sie mit python3 <skill-verzeichnis>/scripts/<name>.py aus. --help bei einem Skript zeigt die vollständige Liste der Flags; references/timeline.md enthält das Timeline-Format und die Optionen, die jede Komposition benötigt.
Dieses Skill ist abhängig von FFmpeg-Skill (neben diesem Skill in ~/.claude/skills/ffmpeg-skill oder über FFMPEG_SKILL_DIR). Es führt selbst nie einen rohen ffmpeg/ffprobe-Befehl aus: Messen, Prüfen und Ausliefern erfolgen über die Skripte des FFmpeg-Skills, sodass deren Garantien übernommen werden.
Gemeinsame Flags (jedes Skript): --json (ein JSON-Objekt auf stdout; bevorzugt), --dry-run (planen, nichts schreiben), --overwrite (der einzige Weg, eine vorhandene Ausgabe zu ersetzen), --timeout SEKUNDEN.
Arbeitsablauf (in dieser Reihenfolge)
- Projekt einmalig. Kein Remotion-Projekt vorhanden:
init.py ./motion --install(kopiert die Vorlage, führtnpm installaus; der Remotion-Headless-Browser wird beim ersten Rendern heruntergeladen). Ein vorhandenes Projekt aus diesem Skill: wiederverwenden. - Messen.
analyze.py QUELLE [--captions DATEI.srt] [--beats] -o QUELLE.timeline.json. Lesen Sie die Zusammenfassung und diewarnings: Eine VFR- oder HDR-Quelle muss mit dem FFmpeg-Skill vor dem Zeichnen korrigiert werden (color.py --to-sdr, ein Export mit konstanter Bildrate) – Remotion rendert SDR auf einem festen Bildraster. Timeline-Zahlen niemals von Hand schreiben oder bearbeiten; stattdessen neu messen (--threshold,--min-silencefür einen leisen Raum). - Standbilder in der Vorschau anzeigen.
still.py --project ./motion --comp NAME --timeline TL --at 1.5 --at 6und die PNGs ansehen: Untertitelplatzierung, Punch-in, Farben. Günstig; vor einem vollständigen Rendern durchführen. - Rendern.
render.py --project ./motion --comp NAME --timeline TL [--options look.json] -o OUT.mp4(--fast= Vorschau in halber Größe,--frames 0-89= ein Bereich,--codec prores -o master.mov= ein Master). Es überprüft die Ausgabe anhand der Timeline (Bildanzahl, fps, Größe, Audio) und beendet sich mit einem Fehler bei Nichtübereinstimmung.- Form: In der Form zeichnen, in der ausgeliefert wird.
--aspect 9:16für Reels / TikTok / Shorts (auch1:1,4:5,16:9);--fit blur(Standard, wenn sich die Form ändert: enthalten über einer unscharfen Kopie),contain(Balken) odercover(Beschnitt – Motiv zuerst im Standbild prüfen). Niemals 16:9 rendern und von einer 9:16-Vorlage beschneiden lassen: Untertitel verlieren ihre Ränder.pipeline.py --platformwählt das Seitenverhältnis aus der Vorlage des FFmpeg-Skills für Sie aus. - Schriftarten: Japanische / chinesische / koreanische Untertitel erhalten automatisch die CJK-Schriftart, die der FFmpeg-Skill auf dem Rechner findet (in das Projekt eingebunden, also keine leeren Quadrate);
--font-file F.ttfverwendet eine bestimmte Schriftart; die Berichtszeilefont:gibt an, welche verwendet wurde oder dass keine gefunden wurde. - Ebene für Schnittprogramm:
--overlay --keep-graphics(Captioned / PeakPulse, Quellformat) zeichnet die Grafiken allein als transparentes ProRes 4444.graphics.movund setzt sie mit dem FFmpeg-Skilloverlay.pyüber die unbearbeitete Quelle; das.movan jemanden übergeben, der in Premiere / Resolve / Final Cut nachbearbeitet. Es ist nicht schneller als ein normales Rendern.
- Form: In der Form zeichnen, in der ausgeliefert wird.
- Ausliefern.
deliver.py OUT.mp4 --platform youtube|reels|tiktok|shorts|x|...führt die Auslieferungsvorlage des FFmpeg-Skills sowie dessencheck.py-Tabelle aus. Formatzeilen sind sicher zu korrigieren; Bewertungszeilen (Dauer, Seitenverhältnis) ändern den Inhalt – nachfragen. WARNs erwähnen, nicht verfolgen. Kein Ziel angegeben: diesen Schritt überspringen und dies mitteilen. - Prüfen. Nicht abgeschlossen, bis die Antwort das Kontaktblatt benennt, das render.py geschrieben hat (
Look: PFAD) und sagt, was es zeigt. Mechanisch (prüfen und berichten): Text ist dort, wo er verlangt wurde; Stichworte erscheinen zu ihren Zeiten; nichts wird vom Bildrand abgeschnitten. Bewertung (sagen, was Sie sehen, der Benutzer entscheidet): Text über einem Gesicht; ein Sprung, der schlecht sitzt. Keine Bildansicht:Look: PFAD (Pixel nicht geprüft)– niemals behaupten, Sie hätten gesehen. Kein Kontaktblatt (look_errorim Ergebnis, z.B. ein FFmpeg ohnedrawtext): stattdessenstill.py-Bilder ansehen und die vom Fehler genannte Lösung weitergeben.
Optionsdateien werden vor dem Rendern geprüft: ein unbekannter Schlüssel oder ein falscher Typ wird abgelehnt (kind: input), anstatt stillschweigend nichts zu tun.
MCP: mcp/server.py stellt dieselben Werkzeuge bereit (Schemata aus scripts/_contract.py, contract --json gibt sie aus).
Alles in einem Durchgang: pipeline.py QUELLE --project ./motion --comp NAME [--captions F] [--platform P] führt 2→4→5 mit denselben Prüfungen aus und stoppt beim ersten fehlgeschlagenen Schritt.
Anfrage → Skript / Komposition
| Anfrage | Ausführen |
|---|---|
| „animierte Untertitel auf diesem Video |