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 und x264_x64.exe für 64bit angenommen.
crf
Standard-CRF-Wert in üblicher Notation von 0.0 bis 51.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 oder raw (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