Communitygithub.com

PrankMedic/video-phu-hinh

Fügt Overlays, B-Roll-Grafiken (Zahlen, Listen, Vergleiche, Schritte, Balkendiagramme, Karaoke-Untertitel) gemäß dem gesprochenen Wort in Sprechervideos hinzu und verkleinert das Gesicht in einer Box. Basierend auf Remotion.

Was ist video-phu-hinh?

Dieses Skill ermöglicht es einem AI-Agenten, automatisch ansprechende, informierte Videos zu erstellen, bei denen der Sprecher im Vordergrund bleibt, aber visuelle Elemente wie Zahlen, Aufzählungen, Vergleiche, Schrittanleitungen, Balkendiagramme und Karaoke-Untertitel passgenau zum gesprochenen Wort eingeblendet werden. Es richtet sich an Entwickler und Content-Ersteller, die mit Remotion arbeiten und die Effizienz der Videoproduktion steigern möchten, ohne auf Qualität zu verzichten. Das Skill unterstützt die Plattformen Remotion und Terminal-Befehle (Python-Skripte). Es analysiert zunächst das Transkript, bereitet die Sprachaufnahme vor, normalisiert das Video auf ein vertikales 9:16-Format, verkleinert das Gesicht des Sprechers in einer Box und platziert dann dynamisch Overlays oder Vollbild-Grafiken (Cards). Der Agent validiert alle Daten (Face-Overlap, Timing, Zahlenabgleich) mit einem eigenen Prüfwerkzeug, rendert einen Vorschau-Clip und normalisiert die Lautstärke auf -14 LUFS. Dabei werden strenge Regeln beachtet, um keine medizinischen oder werblichen Inhalte zu verifizieren und die Verwendung von identifizierenden Gesichtsdaten zu vermeiden.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/PrankMedic/NoleXSapien/tree/main/skills/video-phu-hinh

In Ihrer bevorzugten KI fragen

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

Dokumentation

Video Overlay nach Sprache

Verwenden, wenn die Stimme und Präsenz des Sprechers erhalten bleiben sollen, aber der Fokus auf einer kleinen Box, Text und Grafiken liegt. Lies CLAUDE.md, überprüfe Inhalt und Quellen, schlage Formate vor und warte auf Auswahl, falls noch keine getroffen wurde. Verarbeite keine Medien mit Gesichtserkennungsdaten; stoppe diesen Teil und lasse die verantwortliche Person diese vorher entfernen. Keine automatischen Posts, Commits oder Pushes.

  1. Führe python3 scripts/bereite_stimme_vor.py <video> Output/video/<slug> aus. Lies den Bericht und höre die Originalstimme an; stolperstellen müssen mit scripts/finde_sprechfehler.py vor dem Schnitt erkannt werden (das Vorbereitungsskript hat sie bereits aufgerufen, kann bei Korrekturen separat ausgeführt werden). Leite nicht alle Stolperstellen aus bereits bereinigten Untertiteln ab.
  2. Normalisiere das Quellvideo auf eine vertikale 9:16-Leinwand mittels Letterbox, ohne das Gesicht zu nah heranzuzoomen. Führe die Gesichtserkennung auf dieser Leinwand durch: {x,y,radius} normalisiert auf 0–1, radius basierend auf der Breite, Standard 0,14. Quellen mit anderen Seitenverhältnissen müssen vorher konvertiert werden; überprüfe erneut, wenn sich die Gesichtsposition ändert. Keine automatische Gesichtsverfolgung; verwende einen Bereich, der alle Gesichtspositionen abdeckt, oder teile die Composition bei Layoutänderungen. Verwende nur Videos, die gemäß den Projektregeln von Gesichtserkennung befreit wurden.
  3. Konvertiere Wörter {w,s,e} in {text,startMs,endMs} mit ms = Sekunden × 1000. Behalte die ursprünglichen Wörter zusammen mit den ursprünglichen Segmenten bei; Audio aus dem Video wird mit denselben Segmenten geschnitten. Verwende nicht gleichzeitig vorbereitete Stimme und Originalwörter. Medien werden in public mit relativen Pfaden abgelegt. audio kann leer sein, da PhuHinh die Stimme im Video verwendet; music und musicVolume sind optional, Musik liegt nicht in der skalierbaren Videoebene.
  4. Erstelle Beats {atPhrase,nth?,untilPhrase,untilNth?,mode,content,source?,box?}. Die letzte Phrase endet bei der endMs des letzten Wortes; nth zählt ab 0. Keine überlappenden Beats, die Marker steigen an. Lücken werden automatisch zu Cards; es ist empfehlenswert, alle Sprache mit Beats abzudecken, um den Rhythmus klar zu prüfen. full: Sprecher passt in den Rahmen, contain, kein zu nahes Heranzoomen, maximal 8 Sekunden, auch bei mehreren aufeinanderfolgenden full-Beats; card: Sprecher klein in der oberen Ecke, Grafik darunter; over: transparente Grafik, Box vermeidet Gesicht auch während Rahmenwechsel; cover: Vollbild mit Hintergrund und Grafik, aber Audiospur des Videos läuft weiter. Rahmenwechsel erfolgen kontinuierlich über 650 ms.
  5. Content hat als kind: word, number, list, compare, steps, bars und text. number fügt value und spoken hinzu, z. B. value 12, spoken “zwölf”. spokenNth optional, zählt das Auftreten einer Zahl im selben Beat ab 0; der nth-Marker des Items bezieht sich weiterhin auf die gesamte geschnittene Sprache. Der Wert zählt hoch und erreicht erst den Endwert, wenn der gesamte Zahlenausdruck gesprochen ist. Arten mit mehreren Elementen verwenden items:[{text,atPhrase,nth?,value?,spoken?}], jedes Element wird nur angezeigt, wenn es gesprochen wird; bars verwenden value, compare teilt in Spalten, steps hat Pfeile. spoken ist eine manuelle Zuordnung, bei der der Benutzer die Bedeutung mit dem value abstimmen muss; das Skript versteht keine linguistische Bedeutung von Zahlen in Worten. Setze keine Zahlen zu früh in Titel oder Elementbezeichnungen; überlasse value die Anzeige der Zahl. Behalte maximal ein paar kurze Elemente, um Überlauf zu vermeiden. Haupttext ab 72 px.
  6. Box {x,y,width,height} in px bei 1080×1920, Grenzen x 64–1016, y 100–1260; Standard card bei y620, over bei y900. Untertitel bei y1330 im Bereich 1300–1520. Quellen unter Untertiteln müssen Autor/Organisation, Jahr, Link und Zugriffsdatum für medizinische Informationen enthalten; ungeprüfte Fakten müssen als “wartet auf Prüfung” gekennzeichnet werden. AI-Stimmenlabel verwenden aiVoice:true falls erforderlich.
  7. Schreibe JSON mit Props, führe python3 scripts/pruefe_overlay.py <daten.json> aus; korrigiere nicht gefundene Marker, zu lange full-Bilder, Overlays über Gesichtern und Zahlen, die nicht im Sprachtext vorkommen. Exit-Code 0 = Datenprüfung bestanden, 1 = Prüfungsfehler, 2 = Lesefehler. Das Gesichtserkennungswerkzeug prüft auf stabilem Frame und tastet 30 fps über 650 ms nach jedem Rahmenwechsel ab; das Komponent prüft zusätzlich jeden gerenderten Frame. Öffne den tatsächlichen Frame, um Gesichtsbewegungen und Textüberlauf zu prüfen. Erstelle dann eine TS-Datei in studio/data mit export default {id:'VideoPhu', format:'PhuHinh', props:...}. Siehe muster-neu.ts; MauPhuHinh ist ein stummes Muster mit Platzhaltervideo, nicht das endgültig freigegebene Video.
  8. Führe cd remotion && npx --no-install tsc --noEmit aus; erstelle einen Entwurf mit npx --no-install remotion render src/index.ts VideoPhu out/entwurf.mp4 --codec h264. Überprüfe alle Grafiktypen, Moduswechselrahmen, Anfang/Ende jedes Segments, höre die Stimme durch Cover hindurch, überprüfe, ob Zahlen rechtzeitig vollständig sind, und ob Listen nicht vor dem Wort erscheinen. Führe bei Bedarf eine Spracherkennung auf der endgültigen Version durch und höre die Übergänge noch einmal ab.
  9. Normalisiere den Ton auf −14 LUFS mit dem zweistufigen loudnorm-Verfahren, messe den True Peak bei −1,5 dBTP, wie im Abschnitt zur Tonnormalisierung von video-thuy-mac/SKILL.md beschrieben; schreibe immer in eine separate Datei und messe die endgültige Version erneut. Übergib die Vorschau, Quellen, Daten und noch nicht verifizierte Teile. Überprüfe, dass Skripte und Grafiken keine medizinische oder werbliche Freigabe durch die verantwortliche Person vor der Veröffentlichung ersetzen.

Verwandte Skills