VEnc¶
Auf dieser Seite
Seit es das Preset/Tuning-System gibt, ist x264 an sich ja schon hübsch und bequem bedienbar. Naja … fast. Ihr kennt das sicher: Eine Logdatei will man haben und x264 64bit verwenden. Aber mal braucht man AviSynth für intensiveres Filtern und muss dann über Avs2yuv pipen, mal reicht ein simpler Crop und AviSynth/Avs2yuv ist unnötiger Balast.
VEnc übernimmt fürs 1-Pass-CRF-Encoding die lästige Tipparbeit.
Konfiguration¶
Die Ini-Datei von VEenc erstellen wir im gleichen Ordner wie das Skript und nennen sie venc.ini. Folgende Einträge sind möglich:
- avs2yuv, x264_32, x264_64
- Pfade/Dateinamen für avs2yuv und x264 32bit und 64bit. Standardmäßig werden die Programme gefunden, wenn sie im gleichen Ordner wie das Skript oder sonst irgendwo im systemweiten Suchpfad liegen. Als Dateinamen für x264 wird standardmäßig
x264.exe
für die 32bit-Variante undx264_x64.exe
für 64bit angenommen. - crf
- Standard-CRF-Wert in üblicher Notation von
0.0
bis51.0
. Wenn nicht in der Ini-Datei gesetzt, nimmt das Skript CRF 19. - sar
- Voreingestelltes Pixel Aspect Ratio. Steht auf
1:1
, wenn nicht in der Ini-Datei definiert. - x264_opts
- Standard-x264-Optionen außer SAR und CRF. Wenn nicht definiert, benutzt das Skript
--preset slow --tune film
. - out_format
- Standard-Zielformat. Kann
mp4
,mkv
oderraw
(containerloser H.264-Videostream mit Dateiendung .264) sein. Wenn nicht gesetzt, benutzt das Skript Matroska als Vorgabewert. - out_name
- Hier können wir Pfad und Dateinamen (ohne Punkt und Erweiterung) für die Zieldateien angeben. Es gibt zwei Platzhalter:
%in_path%
steht für den Ordnerpfad der Quelldatei (einschließlich Backslash am Ende),%in_name%
für deren Dateinamen (wieder ohne Punkt und Erweiterung). Standardmäßig wird die Zieldatei im gleichen Ordner wie die Quelle erstellt und ihrem Namen ein -ENCODED angehängt.
Anwendung¶
VEnc hat eine ganze Reihe von Optionen, die sich in zwei Kategorien aufteilen: solche, die das Skript selbst auswertet und solche, die unverändert an x264 weitergegeben werden. Damit die beiden Varianten eindeutig unterschieden werden können, beginnen die VEnc-Optionen mit einem Doppelpunkt. Alles, was mit einem einfachen oder doppelten Bindestrich anfängt, wird dagegen als x264-Option interpretiert und durchgereicht. Die formale Syntax sieht so aus:
venc
<Quelldatei>
[:32bit]
[:avspipe]
[:mkv|:mp4|:raw]
[:hibernate|:shutdown]
[:<crf>]
[:<sar>]
[:<crop>]
[:clear]
[x264-Optionen]
VEnc kümmert sich automatisch darum, so viel 64bit wie möglich zu benutzen. Im Detail heißt das:
- Auf 32bit-Systemen wird immer x264 32bit genutzt und die Quelle nie über avs2yuv geladen.
- Auf 64bit-Systemen wird immer x264 64bit genutzt. AviSynth-Quellen lädt das Skript mit dem Umweg über avs2yuv, alles andere wird direkt an x264 gefüttert.
- Es gibt zwei Optionen, um dieses Verhalten zu beeinflussen.
:32bit
erzwingt 32bit-x264 und:avspipe
erzwingt das Laden über avs2yuv.
Die folgende Liste erklärt kurz alle VEnc-eigenen Optionen. CRF, SAR und Crop sollten wir nur so angeben. Das Skript ist nicht dafür ausgelegt, diese drei in x264-Bindestrichnotation durchzureichen.
- :<crf>
- Eine einzelne Zahl nach einem Doppelpunkt interpretiert VEnc als CRF-Wert. Beispielsweise würden wir CRF 20,5 als
:20.5
angeben. - :<sar>
- Das Pixel-Seitenverhältnis in x264-kompatibler Notation, z.B. steht
:16:11
für das MPEG-4-16:9-PAR. - :<crop>
- Crop-Werte zum Abschneiden schwarzer Balken in der Reihenfolge links, oben, rechts, unten; jeweils getrennt durch Doppelpunkt. Wenn wir z.B. link/rechts je 10 Pixel und oben/unten je 120 Pixel abschneiden wollen, geben wir
:10:120:10:120
an. Das Cropping wird immer von x264 durchgeführt, unabhängig davon, ob die Quelle ein AviSynth-Skript ist oder nicht. - :clear
- Ignoriert alle Voreinstellungen für zusätzliche x264-Optionen, die entweder aus der Ini-Datei oder hart verdrahtet aus dem Skript stammen. Nur x264-Optionen, die wir direkt beim Aufruf des Skripts angeben, werden weitergereicht.
- :hibernate, :shutdown
- Versetzt den Computer fünf Minuten nach dem Ende des Encodings in den Ruhezustand oder fährt ihn herunter. Die Optionen können mit
:hib
bzw.:shu
abgekürzt werden.
Ein Beispiel kann denke ich nicht schaden. Nehmen wir an, wir wollen ein AviSynth-Skript mit CRF 20, dem voreingestellten SAR und den Crop-Werten von oben encodieren und außerdem Open-GOP aktivieren. Anschließend soll der Computer herunterfahren. Der VEnc-Aufruf dafür sieht so aus:
venc
Quelle.avs
:20
:10:120:10:120
:shu
--open-gop
VEnc erstellt für jedes Encoding eine Logdatei namens encstats.log im Ordner der Zieldatei.
Kommentare