4.6 Verwendung des Videorecorders

Beginnend mit Hollywood 4.0 ist es möglich, Hollywood-Skripte als AVI-Videodateien zu speichern. Dies ist nützlich, wenn Sie zum Beispiel DVDs Ihrer Hollywood-Skripte erstellen möchten oder einfach Ihr Programm auf einer derzeit nicht unterstützten Plattform zeigen wollen. Als Video können Sie die Datei auch in Video-Editing-Software zur Weiterverarbeitung oder in Formatkonvertierer importieren.

Hollywoods Videorecorder wurde mit der Idee konzipiert, das genaue Verhalten des Hollywood-Skriptes in einer Videodatei zu reproduzieren. So werden Sie je nach Art des Skriptes höchstwahrscheinlich keinen Unterschied zwischen der Videodatei und dem tatsächlichen Hollywoodskript bemerken. Hollywoods Videorecorder versucht das Skript so aufzunehmen, wie es im Echtzeitmodus erscheinen würde. Daher ist es kein Problem für den Videorecorder mit Skripten umzugehen, die genaues Timing erfordern - zum Beispiel für die Synchronisierung mit der Musik. Der Videorecorder wirft ein besonderes Augenmerk darauf und versucht, alles in der richtigen Zeit aufzunehmen.

Um den Videorecorder-Modus zu aktivieren, müssen Sie einfach das Argument -videoout zusammen mit einem Dateinamen für das Video angeben. Hollywood wird dann im Aufnahmemodus starten und Grafiken sowie Sounds werden nun in den Videostrom umgeleitet werden. Somit werden im Aufnahmemodus keine Töne gespielt, weil die Tondaten sofort in den Videostrom wiedergegeben werden. Bitte beachten Sie, dass bestimmte Optionen außer Acht gelassen werden, wenn Hollywood sich im Video-Aufnahmemodus befindet. Zum Beispiel wird Hollywood im Videoaufnahmemodus nie im Vollbildmodus öffnen, auch wenn Sie es deklariert haben, sondern immer im Fenstermodus. Auch wird das Fenster nicht skalierbar sein usw.

Die durch den Videorekorder geschriebene Videodatei wird im Format AVI Open DML (AVI 2.0) abgespeichert, somit sind Dateien größer als 2GB möglich. Hollywood verwendet derzeit den Motion-JPEG-Codec, um die Videobilder zu komprimieren. Audiodaten werden ohne Kompression in die Videodatei geschrieben. Sie können die Qualität der Motion-JPEG mit dem -videoquality Argument einstellen.

Um das beste Ergebnis erzielen zu können, müssen Sie einige Parameter im Videorecorder einstellen:

  1. Erstens ist es ratsam, dass Sie den Videorecorder mitteilen, wie viele Bilder pro Sekunde aufgezeichnet werden sollen. Dies erreichen Sie mit dem -videofps Argument. Der Wert, den Sie hier angeben, sollte mit der Frequenz Ihrer Hauptschleife im Skript identisch sein. Wenn Ihre Hauptschleife mit 25 Einzelbilder pro Sekunde läuft, z.B. mit dem folgenden Code:

     
    SetInterval(1, p_MainLoop, 1000\25)
    

    Dann sollten Sie Ihre Video-Datei auch mit 25 Einzelbildern pro Sekunde laufen lassen. Das würden Sie mit

     
    -videofps 25
    

    in der Kommandozeile dem Videorecorder angeben müssen.

  2. Sie können für die Videodatei eine Skalierung angeben. Denken Sie daran, dass sich die Videoauflösung nicht ändern kann, sondern während des gesamten Videos statisch ist. Hollywood kann jederzeit die Auflösung der Anzeige ändern, aber für Videodateien ist dies nicht möglich. Wenn Hollywood die Anzeigegröße ändert, während das Programm Videoaufnahme-Modus ist, werden die Grafiken auf die Videoauflösung skaliert werden. Standardmäßig wird die Videoauflösung auf die Auflösung des ersten Hintergrundbildes eingestellt. Wenn Sie eine andere Auflösung möchten, müssen Sie jedoch das mit den Argumenten -scalewidth und -scaleheight angeben.

  3. Ihr Hollywood-Skript muss einem bestimmten Muster folgen, um es als Videodatei zu speichern. Insbesondere muss der Recorder wissen, wann sein Einzelbild-Puffer in die Videodatei gespeichert werden soll. Normalerweise geschieht dies, wenn er einer der Wartebefehle antrifft. Zum Beispiel:

     
    VWait()
    Wait()
    WaitEvent()
    WaitTimer()
    etc.
    

    Daher ist es notwendig, dass Sie in Ihrem Skript einen der obengenannten Befehle verwenden! Ihr Skript muss ein Zeitmechanismus verwenden, sonst kann es nicht richtig in eine Videodatei umgewandelt werden. Empfohlene Zeitmechanismen sind entweder eine Intervallfunktion, die eine bestimmte Anzahl Mal pro Sekunde oder mit WaitTimer() oder VWait() aufgerufen wird. Siehe Zeitsteuerung des Skripts für mehr Informationen über Verwendung eines richtigen Skriptzeitsteuerung-Mechanismus.

    Das Leeren/Abspeichern des Einzelbild-Puffer, wenn ein Wartebefehl auftritt, ist die Standardeinstellung. Normalerweise sollte diese "Wartestrategie" für alle Zwecke geeignet sein. Mit zeitlich richtig getakteten Skripte, liefert die Wartestrategie die besten Ergebnisse. In einigen sehr seltenen Fällen - oder für die Fehlersuche - möchten Sie vielleicht stattdessen die "Rohstrategie" verwenden. Wenn -videostrategy auf raw gesetzt ist, wird der Videorecorder jedes Einzelbild im Strom gleich behandeln, egal ob gewartet wird oder nicht. In den meisten Fällen führt dies zu falsch getakteten Videos. So werden Sie wahrscheinlich nie die Rohstrategie verwenden.

  4. Schließlich müssen Sie entscheiden, ob der Mauszeiger im Videostrom wiedergegeben werden soll. Standardmäßig ist dieser deaktiviert, weil dies nur Sinn in besonderen Situationen macht, z.B. wenn Sie ein Demo-Video erstellen, auf dem Benutzereingabe sichtbar sein sollen. Mit dem -videopointer Argument schalten Sie den Mauszeiger für die Aufnahme ein. Alle Mauszeiger Bewegungen werden dann in der Videodatei aufgezeichnet.


Navigation zeigen