Was macht Bildschirmaufnahme mit Sprachkommentar?
Der zeitaufwändige Teil beim Vertonen einer Bildschirmaufnahme ist nicht die Stimme, sondern die Synchronisation: das Ausrichten jedes Satzes an dem Klick, den er beschreibt, und das Beheben der Stellen, an denen der Satz länger ist als die Aktion. Diese Fähigkeit erledigt beides automatisch und verhindert, dass der Kommentar driftet oder sich überschneidet.
Wann verwenden
- "Füge einen Sprachkommentar zu dieser Demo / diesem Tutorial / dieser Bildschirmaufnahme hinzu."
- "Ich habe meinen Bildschirm stumm aufgenommen, vertone es" oder "Ich möchte meine eigene Stimme / meinen Akzent nicht verwenden."
- "Sorge dafür, dass der Kommentar mit dem übereinstimmt, was auf dem Bildschirm passiert."
Schritte
-
Überprüfe, ob
MIRAGEA_API_KEYgesetzt ist (niemals ausgeben). Stimme: Frage einmal nach der Miragea-Stimmen-ID des Benutzers oder einer öffentlichen URL eines Sprachclips plus dessen genauen Wortlauts. Schlageexport MIRAGEA_VOICE_ID=...vor, damit es nie wieder abgefragt wird. Klone nur eine Stimme, die dem Benutzer gehört oder für die er die Nutzungserlaubnis hat. -
Finde die Schritte und erstelle eine Drehbuchvorlage:
python3 scripts/scenes.py demo.mp4 # -> demo.frames/*.jpg, demo.frames/steps.json, demo.script.txt -
Sieh dir die Einzelbilder in
demo.frames/an (du kannst Bilder lesen) und schreibe einen klaren Satz pro Schritt indemo.script.txtnach jedem Zeitstempel, wobei du den# step-Kommentar ersetzt. Bleibe innerhalb des~N Wörter-Hinweises, damit der Satz vor dem nächsten Schritt passt. Führe nach Belieben Schritte zusammen, verschiebe oder lösche sie. Wenn der Benutzer ein eigenes Skript bereitgestellt hat, setze dessen Sätze stattdessen an die passenden Zeitstempel. -
Überprüfe das Timing ohne Kosten:
python3 scripts/voiceover.py demo.mp4 demo.script.txt --dry-runKürze jede mit
will freezemarkierte Zeile, wenn der Benutzer keine eingefrorenen Bilder wünscht. -
Rendern:
python3 scripts/voiceover.py demo.mp4 demo.script.txt --voice VOICE_ID # Untertitel als Dateien python3 scripts/voiceover.py demo.mp4 demo.script.txt --burn --music bed.mp3 # eingebrannte Untertitel + leise gestellte Musik -
Gib dem Benutzer die Pfade aus dem gedruckten JSON:
video(kommentiertes MP4),voice_track(WAV für seinen Editor),srt/vtt. Erwähnefrozen_seconds, falls es größer als Null ist. -
Um eine Zeile zu ändern, bearbeite das Skript und führe Schritt 5 erneut aus: unveränderte Zeilen kommen kostenlos aus dem Cache.
Skriptformat
[00:00] Willkommen bei Acme. Hier ist das Dashboard, das Sie nach der Anmeldung sehen.
[00:04] Klicken Sie auf Neues Projekt, geben Sie einen Namen ein und wählen Sie das Team, das es besitzen soll.
[01:02.5] Das war's. Ihr Projekt ist fertig.
Akzeptierte Zeitstempel: [mm:ss], [h:mm:ss], mm:ss.s, 12.5s. Zeilen, die mit # beginnen, sind Kommentare.
Wie die Synchronisation funktioniert
- Jede Zeile beginnt exakt zu ihrem Zeitstempel; 0,25 s Luft werden vor dem nächsten Schritt freigehalten.
- Eine Zeile, die länger ist als ihr Slot, wird beschleunigt, maximal um
--max-speed(Standard 1,15x, immer noch natürlich). - Wenn sie immer noch nicht passt, hält das Video das letzte Bild dieses Schritts, bis der Satz endet, und fährt dann fort. Spätere Zeilen verschieben sich um denselben Betrag, sodass die Synchronisation nie verloren geht.
- Untertitel werden an die tatsächliche Sprechdauer jeder Zeile angepasst (max. 2 Zeilen à 42 Zeichen).
- Die Lautstärke wird auf etwa -16 LUFS normalisiert (YouTube/Web-Standard). Musik, falls angegeben, wird unter der Sprache leiser gestellt.
Optionen
| Flag | Standard | Beschreibung |
|---|---|---|
--voice ID / --ref-url URL --ref-text TEXT | env | Gespeicherte Miragea-Stimme oder Klonen von einem öffentlichen Clip (exakter Text = günstigerer 1x-Tarif) |
--model | expressive | oder standard |
--max-speed | 1.15 | Maximale Beschleunigung vor dem Einfrieren von Bildern |
--burn | aus | Untertitel in das Video einbrennen |
--music DATEI | keine | Hintergrundmusik, wiederholt und automatisch leiser gestellt |
--keep-audio | aus | Die Originaltonspur der Aufnahme leise unter der Stimme behalten |
--dry-run | Zeigt den Slot-Plan mit einer geschätzten Sprechrate; keine API-Aufrufe | |
-o DATEI | VIDEO.voiceover.mp4 | Ausgabepfad; das Original wird nie verändert |
Kosten und Grenzen
Sprache wird zeichenweise von Miragea abgerechnet (1x mit einer gespeicherten Stimme oder exaktem Referenztext; aktuelle Tarife unter GET https://miragea.ai/v1/capabilities). Eine 3-minütige Demo hat normalerweise 2.000–3.000 Zeichen. Jede Zeile muss unter 2.000 Zeichen liegen. Referenzclips müssen öffentliche URLs sein, bis der Upload-Endpunkt von Miragea bereitgestellt wird.
Fehlerbehebung
no timestamp/not after the previous line-> Korrigiere die in der Fehlermeldung genannte Skriptzeile.no voice chosen-> Übergib--voiceoder setzeMIRAGEA_VOICE_ID.401falscher Schlüssel,402Guthaben aufladen unter miragea.ai,429warten und erneut ausführen (zwischengespeicherte Zeilen werden nicht erneut abgerechnet).- Zu viele oder zu wenige Schritte von
scenes.py->--threshold 0.02(mehr) /0.08(weniger),--min-gap.
Siehe examples/ für ein echtes Skript, den Plan-JSON und die daraus erzeugten Untertitel.