Was macht launch-video-kit?
Sechs Komponenten für den Teil des Videos, der nicht das Design ist: Audio, Untertitel und Kamera. Die README ist die Referenz (das Warum hinter jeder Entscheidung und die Zahlen, die sie untermauern). Dies hier ist die Arbeitsreihenfolge und die Regeln, die leicht übersehen werden.
Die Reihenfolge ist wichtig
- Die Stimme zuerst, der Schnitt danach.
gen-voice.mjsgibt die tatsächliche Dauer jeder Zeile in Frames aus. Diese Zahlen legen die Szenenzeiten fest. Wenn du zuerst schneidest, bringt dich jeder echte Take aus dem Konzept und du musst alles neu machen. - Danach die Musik, wobei das Fenster anhand seines Energiebogens ausgewählt wird (
analyze-music.mjs) und bei Bedarf verlängert wird (loop-music.mjs). - Dann die Schnitte, gebunden an das Taktgitter, das die Analyse ausgibt.
- Die Untertitel zum Schluss, wenn du bereits weißt, welche Sätze einen Bildschirmtitel haben und welche nicht.
Regeln, die leicht übersehen werden
- Eine Audiodatei pro Zeile. Niemals einen langen Take.
- Untertitel nur für das, was nicht auf dem Bildschirm steht. Wenn der Satz bereits in einem Titel erscheint, erzeugt die Untertitelung eine Textverdopplung an derselben Stelle.
dureines Untertitels ist Lesezeit, nicht die Dauer der Sprachausgabe. Kürze die Bereiche von Hand, damit keiner den nächsten oder den folgenden Titel überlappt.DUCK.basenicht über ~0,85. Bibliothekstracks kommen mit 0 dB und jeder zusätzliche Effekt clippt.- Kamera: ruhig, mit kurzen Fahrten. Weder ständiges Driften (lenkt ab) noch harte Schnitte (springen). Jede Szene beginnt im Bildausschnitt, in dem die vorherige endete.
- Dieselbe Benutzeroberfläche auf beiden Seiten einer Naht, dieselbe Komponente. Wenn eine Szene von Hand gezeichnet wird, unterscheidet sie sich in einem Detail, und dieses Detail erscheint plötzlich beim Blockwechsel.
- Iteriere über die Zeiten, nicht über den Inhalt. Eine Schleife über das Inhaltsarray, die in ein kürzeres Zeitarray indiziert, bringt den Render zum Absturz, sobald du einen Beat entfernst.
Überprüfen statt raten
Ein Agent sieht das Video nicht und hört es auch nicht. Alles, was subjektiv erscheint, hat eine Zahl:
# die Mischung, abschnittsweise: Sprache über Musik sollte wie Sprache allein klingen
ffmpeg -hide_banner -ss 27 -t 4 -i out.mp4 -af volumedetect -f null /dev/null
# der globale Peak muss unter -1 dB liegen
ffmpeg -hide_banner -i out.mp4 -af volumedetect -f null /dev/null
# Kontaktbogen statt Einzelbilder einzeln zu prüfen
ffmpeg -v error -i f_%d.png -vf "scale=560:-1,tile=5x4" -frames:v 1 sheet.png
loop-music.mjs überprüft bereits seine eigenen Nähte: Wenn eine nicht in Stille endet, wird dies gemeldet, und es müssen zwei andere Lücken gewählt werden.
Umgebung
ffmpegundffprobemüssen im PATH sein, sowie Node 20 oder höher.- In Git Bash unter Windows:
ffmpegunterstützt keineglob-Muster unddrawtextfällt aufgrund fehlender fontconfig aus. Verwende nummerierte Sequenzen.bcist ebenfalls nicht vorhanden. staticFile()von Remotion kommt nicht gut mit Leerzeichen und Akzenten zurecht: Benenne Assets in ASCII um.useVideoConfig().durationInFramesinnerhalb einer<Sequence>ist die Dauer der SEQUENZ, nicht des gesamten Videos. Verwechsle dies nicht mit absoluten Frames.
Was es nicht kann
Ein TTS ist Sprache, keine Atmung. Seufzer, Lachen und Effekte müssen aufgenommen werden. Synthetische Blips hingegen kommen von ffmpeg – ein Beispiel findest du im README.