Motion-Grafiken auf dem eigenen Video des Benutzers
Workspace-Ebene über den installierten HyperFrames-Skills. Für HTML/Timeline-Mechaniken lade
hyperframes-core (Kompositionsvertrag) und hyperframes-animation (GSAP-Regeln); die nächstgelegene
vorgelagerte Route ist talking-head-recut. Dieses Skill fügt die Hausregeln des Erstellers hinzu, die bei Konflikten Vorrang haben.
Schnellpfad (bewährt auf reel-sep30, 3:20 Urdu/Englisch Reel, Paper Cut)
powershell -NoProfile -ExecutionPolicy Bypass -File tools/new-project.ps1 -Name <n> -Video raw/<file> -Transcribe→ Deepgram-Transkript in Sekunden.transcript-words.txtausgeben (index:text@start) → lesen, zusammenfassen, Momente auswählen.- Untertitel:
captions-src.json(Roman Hinglish Blöcke nach Wortindex) →node tools/build-captions.mjs projects/<n>. - Stilvorlage:
kit/templates/paper-cut-vertical.htmlkopieren →index.html; beidedata-durations setzen; die BEISPIEL-Aufrufe durch die Momente dieses Videos ersetzen. lint→snapshot --at ...(2 Batches von ~12 Frames) → Kontaktabzüge ansehen → korrigieren.- Sounds:
sfx.jsonaus der Offset-Tabelle inmg-soundschreiben →node tools/sfx.mjs projects/<n>(VOR dem Rendern, damit ein Render sie enthält). - Dem Benutzer die Renderzeit im Voraus mitteilen (siehe
mg-export: ~25–30 min pro Minute 1080x1920 Video auf einem 4-Kern-Laptop), dann einmal rendern, nachexports/kopieren. - Spätere Anpassungen: Nur Audio →
sfx.mjs --mix(Sekunden, kein Neu-Render). Visuelle Anpassungen → zuerst Snapshot, dann ein Neu-Render.
Nicht: Lokale Spracherkennungsmodelle installieren, abgebrochene Downloads fortsetzen, zum „Überprüfen“ rendern (Snapshots verwenden) oder im VS Code-Player Vorschau anzeigen (kein AAC-Audio — VLC verwenden).
1. Projekt einrichten
- Wenn das Video nicht in
raw/liegt, kann es dort bleiben, wo es ist. Wähle einen kurzen Kebab-Case-Projektnamen aus dem Dateinamen. - Führe aus (vom Workspace-Root):
powershell -NoProfile -ExecutionPolicy Bypass -File tools/new-project.ps1 -Name "<name>" -Video "<Pfad>" -Transcribe- Transkription verwendet Deepgram (
nova-3, standardmäßiglanguage=multi; beherrscht Urdu/Hindi + Englisch Code-Switching; Hindi/Urdu-Wörter können in Devanagari zurückkommen — in Hinglish romanisieren, Zeitangaben behalten). Benötigt die UmgebungsvariableDEEPGRAM_API_KEYdes Benutzers; falls nicht vorhanden, den Benutzer bitten,powershell -NoProfile -ExecutionPolicy Bypass -File tools/set-deepgram-key.ps1selbst auszuführen (niemals im Chat). Nur englisches Video:-Language en. Alleiniges erneutes Ausführen:powershell -NoProfile -ExecutionPolicy Bypass -File tools/transcribe-deepgram.ps1 -Project projects/<name>. - Verwende nicht
npx hyperframes transcribemit Whisper oder installiere es (zu laut/langsam); verwende Deepgram. - Erzeugt
projects/<name>/mitclip.mp4(CFR H.264),audio.mp3,metadata.json,transcript.json,fonts/,sfx/,renders/. - Füge
-Screenshots "<ordner>"hinzu, wenn der Benutzer Screenshots für einen Moment bereitstellt.
- Transkription verwendet Deepgram (
- Arbeite ab hier innerhalb von
projects/<name>/(dorthincdwechseln, bevor einnpx hyperframesBefehl ausgeführt wird).
2. Video wirklich analysieren
- Lese
metadata.json(Breite, Höhe, fps =r_frame_rate, Dauer) undtranscript.json(flach[{text,start,end}]). - Korrigiere offensichtliche ASR-Fehler an Ort und Stelle, behalte Zeitstempel. Sprache-zu-Text kann ca. 1 s abweichen: Wenn ein Moment wichtig ist, mit
ffmpeg -ss <t-0.5> -t 2 -i clip.mp4 ...oder Snapshots überprüfen, anstatt der Zahl zu vertrauen. - Lange oder gemischtsprachige Transkripte: Gib eine indizierte Wortliste aus (
index:text@start, ein Satz pro Zeile) alstranscript-words.txtund lese diese.
Untertitel (wenn der Benutzer sie möchte)
- Schreibe
captions-src.json:[[ersterWortIndex, letzterWortIndex, "Untertiteltext", ["Schlüssel","Wörter"]], ...], 3–7 Wörter pro Block, die jedes Wort abdecken. Urdu/Hindi/Hinglish Sprache → Text in Roman Hinglish schreiben (z.B. „ke 9 maah guzar gaye hain“), englische Wörter wie gesprochen lassen, Fehlhörer durch Kontext korrigieren („नौ मां“ → 9 maah, „New York“ → New Year). - Erstellen:
node tools/build-captions.mjs projects/<name>→captions.js(window.CAPTIONS = [{s,e,text,key}]), warnt vor nicht abgedeckten Wörtern. Laden mit<script src="captions.js">. - Finde heraus, wo das Gesicht ist:
npx hyperframes snapshotist nicht verfügbar, bevor eine Komposition existiert, daher extrahiere Frames:ffmpeg -nostdin -v error -ss <t> -i clip.mp4 -frames:v 1 renders/_probe_<t>.pngan 3–4 Stellen und sieh sie dir an. - Schreibe eine ein-absätzige Zusammenfassung: Worum es im Video geht, und die 3–8 wichtigen Momente (Zahlen, Listen, Vorher/Nachher, Schlüsselaussage, CTA).
- Frage den Benutzer nach dem Stil, falls er keinen genannt hat (siehe
mg-styles). Standard: saubere weiße, matte Karten (Liquid Glass).
3. Planen (dem Benutzer vor dem Bauen zeigen, wenn das Video > 30 s ist oder die Aufgabe vage ist)
Für jeden Moment: Triggerwort + dessen exakte start, Grafiktyp, Inhalt, Zone, Endzeit. Grafiktyp folgt dem Gesagten:
- Zahl → Count-up · Liste → Checkliste Haken · Vorher/Nachher → Vergleich · Schlüsselzeile → Punch-in oder großer Text
- Screenshots / Beweise → Pop-ups in Folge (PROMPT 12) · Neues Thema → Reframe (Video schrumpft zu einer Karte)
Bewegungsvokabular und Stile leben im
mg-stylesSkill.
4. Hausregeln (nicht verhandelbar)
- Das Video genau so lassen, wie es ist: gleiche Größe, fps, Audio, Schnitt. Komposition
data-width/height= Videogröße, fps = Video-fps, Rootdata-duration= Videodauer (aufmetadata.jsonbegrenzen). Video ist<video id="a-roll" class="clip" src="clip.mp4" data-has-audio="true" data-start="0" ...>ohnemuted, ohnecrossorigin. - Jede Grafik beginnt mit dem exakten Wort (
startdieses Wortes im Transkript). - Ein Stil über das gesamte Video hinweg.
- Nichts in den ersten 3 Sekunden — das ist der Haken.
- Grafiken weg vom Gesicht, aus dem unteren Drittel (Untertitel) und innerhalb der mittleren 80% der Breite (10% Rand links/rechts) halten.
- Schriftarten nur aus dem
fonts/Ordner des Projekts via@font-face(niemals Google Fonts URLs); GSAP via<script src="vendor/gsap.min.js">. - Milchglas benötigt etwas dahinter; über Footage funktioniert es, für transparenten Export feste Karten verwenden.
5. Bauen, prüfen, überprüfen
index.htmlschreiben (eigenständige Komposition, eine pausierte GSAP-Timeline registriert beiwindow.__timelines["<id>"]). Paper Cut Stil: beginne mitkit/templates/paper-cut-vertical.html. Low-Res Handy-Footage (z.B. 480x864 WhatsApp): trotzdem auf einer 1080x1920 Leinwand erstellen, damit Grafiken/Untertitel scharf bleiben; das Video skaliert darunter hoch.npx hyperframes lintdannnpx hyperframes check— jeden Fehler beheben.npx hyperframes snapshot --at <t1>,<t2>,...an jedem Grafik-Mittelpunkt und die PNGs ansehen — auf Gesichts-/Untertitel-Überlappung und Text-Beschneidung prüfen.- Einen Entwurf rendern:
npx hyperframes render . -o renders/with-cards.mp4(Rendervorgänge sind auf typischen PCs langsam; Snapshots zum Iterieren verwenden, nur rendern, wenn die Frames richtig aussehen). - Die genehmigte finale Version nach
exports/<name>.mp4kopieren.
6. Folgeaufgaben (gleiche Sitzung)
- Eine Stelle (PROMPT 12): „Wenn ich sage, zeige “. Finde den Satz im Transkript, ändere nur diesen Moment, behalte alles andere identisch, rendere erneut in dieselbe Datei.
- Sound: das
mg-soundSkill verwenden. Exportvarianten / transparent:mg-exportSkill. - Anpassungen in Klartext (Oberfläche, Farbe, Typografie, Bewegung, Timing, Layout) → nur das bearbeiten, alles andere gleich lassen, erneut rendern.
Erst die Basis, dann eine Stelle nach der anderen. Nicht versuchen, alles in einem Durchgang zu erreichen.