Encoderscripte

Es besteht die Möglichkeit verschiedene Encoder für die Berechnung neuer Videoteile einzusetzen. Die Benutzung der Encoder wird über Scripte geregelt. Im folgenden einige Beispiele.

Benötigte Programme:

Die Scripte für Encoder werden im Verzeichnis Encoder gespeichert. Für jeden Encoder muß ein eigenes Script geschrieben werden. Damit ein Encoder vom Programm verwendet werden kann muss unter Optionen -> externe Programme -> Encoder das Encoderscript ausgewählt werden.

Script für den Encoder HCEnc:

[Encoder HC021]
X0X=*interlaced
X1X=
:enc
Echo Videoteil berechnen ($BeginIndex#, $EndIndex#)
cpsourcefile
copyx "$ProgramDirectory#\Encoder\HC-M2S-org.ini" "$TempDirectory#\HC-M2S.ini"
:eff
copyx "$ProgramDirectory#\Encoder\HC-M2S-Eff-org.ini" "$TempDirectory#\HC-M2S.ini"
Rem :all
Rem "$ProgramDirectory#\Encoder\DGmpgdec\DGIndex.exe" -IF=[$PartFile#] -OF=[$PartFiled2v#] -hide -exit
:enc
RunnotCml "$ProgramDirectory#\Encoder\HCEnc\HCenc_021.exe" -i "$PartFiled2v#" -o "$NewFile#" -ini "$TempDirectory#\HC-M2S.ini"
:eff
RunnotCml "$ProgramDirectory#\Encoder\HCEnc\HCenc_021.exe" -i "$TempDirectory#\AViSynthscript.avs" -o "$NewFile#" -ini "$TempDirectory#\HC-M2S.ini"
:all
Rem DeleteTempFiles=0

Für den framegenauen Schnitt und die Neuberechnung zu langer GOPs ist bei diesem Script kein AVISynth nötig. Videoeffekte benötigen auch mit diesem Script ein installiertes AVISynth.
Am Anfang eines Encoderscriptes steht immer ein eindeutiger Name in eckigen Klammern, in diesem Fall Encoder HC021. Durch Marker wird das Script in verschiedene Bereiche unterteilt. Wird das Script direkt vom Programm zum berechnen von Videoteilen aufgerufen werden die Bereiche nach den Markern :enc durchlaufen. Ruft ein Videoeffektscript dieses Encoderscript auf werden die Bereiche nach den Markern :eff durchlaufen. Die Bereiche nach dem Marker :all werden immer durchlaufen. Als erstes werden benutzerdefinierte Variablen erzeugt die in den HC-M2S*.ini Dateien benötigt werden. Der Befehl Echo sorgt für eine Ausgabe in des Protokoll des SchnittTools. Die Variablen werden vorher durch Werte ersetzt. Der Befehl cpsourcefile kopiert den zu verändernden Teil der Videodatei in eine neue Datei. Der Name dieser Datei steht in der Variablen $PartFile#. Der Befehl copyx erzeugt aus einer Quelldatei (*.org.ini) eine Ini-Datei für den Encoder. Die Variablen werden dabei durch die entsprechenden Werte ersetzt. Die durch den Befehl Rem auskommentierten Zeilen werden übersprungen. Soll die D2V-Projektdatei vom Programm DGIndex.exe erzeugt werden müssen diese Zeilen durch entfernen des Befehls Rem aktiviert werden. Das Encoderprogramm wird durch Aufruf mit dem Befehl RunnotCml mit seiner grafischen Oberfläche gestartet. Wird die Variable DeleteTempFiles in letzte Zeile durch entfernen des Befehls Rem aktiviert und auf Null gesetzt werden tempoäre Dateien nicht gelöscht.

Script für den Encoder HCEnc (verwendet AVISynth):

[Encoder AVISynt HC021]
X0X=
X1X=no
:enc
Echo Videoteil berechnen ($BeginIndex#, $EndIndex#)
cpsourcefile
copyx "$ProgramDirectory#\Encoder\AViSynthscript-org.avs" "$TempDirectory#\AViSynthscript.avs"
:all
Rem "$ProgramDirectory#\Encoder\DGmpgdec\DGIndex.exe" -IF=[$PartFile#] -OF=[$PartFiled2v#] -hide -exit
RunnotCml "$ProgramDirectory#\Encoder\HCEnc\HCenc_021.exe" -i "$TempDirectory#\AViSynthscript.avs" -o "$NewFile#" -b $Bitrate# -aspectratio $Aspectratio# -dc_prec $DCPrezision# -$X$Progressive#X#interlaced -$Fieldfirst#
Rem DeleteTempFiles=0

Dieses Script ist etwas einfacher da immer AVISynth verwendet wird. Der Bereich vom Marker :enc bis zum Marker :all wird übersprungen wenn das Script von einem Effektscript aufgerufen wird.

Script für den Encoder QuEnc:

[Encoder AVISynt QuEnc]
X0X=
X1X=no
:enc
Echo Videoteil berechnen
cpsourcefile
copyx "$ProgramDirectory#\Encoder\AViSynthscript-org.avs" "$TempDirectory#\AViSynthscript.avs"
:all
Rem "$ProgramDirectory#\Encoder\DGmpgdec\DGIndex.exe" -IF=[$PartFile#] -OF=[$PartFiled2v#] -hide -exit
RunnotCml "$ProgramDirectory#\Encoder\QuEnc\QuEnc.exe" -i "$TempDirectory#\AViSynthscript.avs" -o "$NewFile#" -b $Bitrate# -maxbitrate 6000 -1 -aspectratio $Aspectratio# -dc $DCPrezision# -$X$Progressive#X#interlaced -$Fieldfirst# -auto -close
Rem DeleteTempFiles=0

Um den QuEnc zu verwenden ist immer ein installiertes AVISynth nötig. Auch hier wird der Bereich vom Marker :enc bis zum Marker :all übersprungen wenn das Script von einem Effektscript aufgerufen wird.

Verweise: