XvidEncraw-Kommandozeilenreferenz

Dieses Kapitel listet mit einer kurzen Erklärung viele Optionen auf, die für XvidEncraw zur Verfügung stehen. Im Wesentlichen handelt es sich um eine etwas ausführlichere Übersetzung des Befehls xvid_encraw.exe -help. Wir beschränken uns aber auf die wirklich nützlichen Optionen. Besonders die detaillierten Optionen für den 2nd Pass fehlen, denn die wären eher Thema für ein Spezialkapitel.

Optionen, die Standardwerte besitzen, müssen wir nur dann angeben, wenn wir einen abweichenden Wert verwenden wollen. Ansonsten arbeitet XvidEncraw automatisch mit dem Standard. Optionen ohne Standardwert sind nur dann aktiv, wenn wir sie ausdrücklich angeben.

Quelldatei

-i <Quelldateiname>
Standard: stdin
Beispiel: -i "D:\Pfad zur\Quelldatei.avs"

Pfad und Name der Quelldatei. Dabei dürfte es sich meistens um das AVS-Skript handeln. Sind Leerzeichen im Pfad enthalten, muss er in Anführungszeichen gesetzt werden.

-type <Quelltyp>
Werte: 0 (YUV), 1 (PGM), 2 (AVS/AVI)
Beispiel: -type 2

Typ der Quelldatei. Für unsere Zwecke kommt fast ausschließlich Typ 2 in Frage.

Zieldatei

-o <Zieldateiname>

Beispiel: -o "D:\Pfad zur\Zieldatei.m4v"

Definiert den Namen der Zieldatei als containerlosen Rohdatenstrom. Die übliche Dateiendung ist .m4v. Wenn der fertige Film im MP4-Container verpackt sein soll, müssen wir beim Encoding diese Option wählen.

-avi <Zieldateiname>

Beispiel: -avi "D:\Pfad zur\Zieldatei.avi"

Definiert den Namen der Zieldatei im AVI-Container.

-mkv <Zieldateiname>

Beispiel: -mkv "D:\Pfad zur\Zieldatei.mkv"

Definiert den Namen der Zieldatei im Matroska-Container. Das normale Xvid-Paket von xvidvideo.ru enthält keine Matroska-Unterstützung. Dann müssen wir auf -avi ausweichen; nicht -o, denn das lässt sich anschließend nur über Umwege nach Matroska muxen.

-par <x[:y]>
Werte: 1 (1:1), 2 (4:3 PAL), 3 (4:3 NTSC), 4 (16:9 PAL), 5 (16:9 NTSC), x:y (Benutzerdefiniert: Breite:Höhe)
Standard: 1:1
Beispiele: -par 4 oder -par 16:11

Schreibt das Pixel Aspect Ratio in den Videostrom der Zieldatei. Das entspricht dem Setzen des AR-Flags, von dem im Anamorph-Kapitel die Rede ist. Für klassische Encodings mit quadratischen Pixeln geben wir immer -par 1 an oder lassen die Option ganz weg. Für die anderen Standard-PARs dienen die Kurzformen, die dem MPEG-4-Standard entsprechend für die Werte aus der PAR-Tabelle stehen. Die Custom-Variante -par x:y ist nur für PARs gedacht, die nicht im Standard direkt definiert sind.

Für Custom-PARs definiert MPEG-4 Visual zwei Felder (für x und y), die je einen vorzeichenlosen 8-Bit-Integer enthalten. D.h. der maximale Wert, der in jedem Feld gespeichert werden kann, ist 255. Xvid versucht zwar, größere Werte in den erlaubten Bereich umzurechnen, doch das führt oft zu hohen Abweichungen. Deshalb sollten wir zu große Werte niemals eingeben.

-framerate <fps>
Werte: typisch sind 23.976, 25.0, 29.97, 30.0
Standard: 25.0
Beispiel: -framerate 25.0

Setzt die Bildrate der Zieldatei in Bildern pro Sekunden (fps). Den Punkt und nicht das Komma zu verwenden, ist Pflicht. XvidEncraw bezieht den richtigen Wert automatisch von AviSynth, weshalb wir diese Option nur in Ausnahmefällen benötigen.

MPEG-4-Tools

-max_bframes <Maximum>
Werte: 0 (keine B-Frames) und positive ganze Zahlen
Standard: 2
Beispiel: -max_bframes 1

Definiert die Anzahl B-Frames, die maximal direkt hintereinander stehen dürfen. Eine 0 schaltet B-Frames komplett ab. Empfehlenswert ist in der Regel der Standardwert 2. Mit den B-Frame-Optionen insgesamt haben wir uns im Xvid-Technikkapitel schon ausführlich beschäftigt.

-bquant_ratio <Verhältnis>
Standard: 150
Beispiel: -bquant_ratio 162 (Empfehlung)

Definiert den multiplikativen Faktor zur Berechnung des B-Frame-Quantizers als ganzzahligen Wert. Um den eigentlichen Faktor zu erhalten, wie er auch in der VfW-GUI angegeben wird, muss der Wert durch 100 geteilt werden. 150 bedeutet also ein Faktor von 1,50. Siehe auch das Xvid-Technikkapitel.

-bquant_offset <Offset>
Standard: 100
Beispiel: -bquant_offset 0 (Empfehlung)

Definiert den additiven Faktor zur Berechnung des B-Frame-Quantizers als ganzzahligen Wert. Um den eigentlichen Faktor zu erhalten, wie er auch in der VfW-GUI angegeben wird, muss der Wert durch 100 geteilt werden. 100 bedeutet also ein Faktor von 1,00. Siehe auch das Xvid-Technikkapitel.

-bvhq

Aktiviert den VHQ-Modus für B-Frames. Da es sich dabei immer um VHQ 1 handelt, leidet die Geschwindigkeit nicht allzu sehr. Da B-Frames meistens den größten Anteil der Frames in einem Film stellen, sollten wir das B-Frame-VHQ möglichst aktivieren.

-nopacked

Deaktiviert den Packed-Bitstream-Modus für B-Frames im AVI-Container. Nützlich ist die Funktion dann, wenn wir den Film manuell splitten wollen. Ist die Zieldatei keine AVI, hat diese Option keine Bedeutung.

-qpel

Schaltet die Quarter-Pixel-Bewegungssuche ein, die mit einem Viertel Pixel Genauigkeit arbeitet. Siehe auch das Xvid-Technikkapitel.

-gmc

Aktiviert Global Motion Compensation, einen Algorithmus, der gleichartige Bewegungen innerhalb eines Frames als speziellen Bewegungsvektor auszudrücken versucht. Siehe auch das Xvid-Technikkapitel.

-lumimasking

Aktiviert die adaptive Quantisierung (AQ). Je nach verwendeter Xvid-Version ist das der alte Lumimasking-Algorithmus oder das leistungsfähigere VAQ. Siehe auch das Xvid-Technikkapitel.

-qtype <Modus>
Werte: 0 (H.263), 1 (MPEG-4)
Standard: 0
Beispiel: -qtype 1

Wählt den Modus der Quantisierung. MPEG-4 (1) benutzt die Standard-MPEG-Matrix. Sie erzeugt ein etwas schärferes Bild auf Kosten der Kompression und eignet sich eher für die höhere Datenrate einer großzügigen Zielgröße. H.263 (0) ergibt dagegen ein etwas weicheres Bild und erhöht damit die Kompression ein wenig; geeignet eher für die niedrigen Datenraten von 1-CD-Encodings. Näheres zum Thema Quantisierungstyp/Matrizen haben wir im Xvid-Technikkapitel schon besprochen.

-qmatrix <Matrixdateiname>

Beispiel: -qmatrix "C:\Matrizen\SixOfNine.xcm"

Verwendet eine Custom-Quantizer-Matrix. Dazu geben wir den Pfad zur Matrixdatei an, der in Anführungszeichen gesetzt werden muss, wenn Leerzeichen enthalten sind. Sollte nicht gemeinsam mit -qtype verwendet werden. Siehe auch das Xvid-Technikkapitel.

Encoding-Modus

-cq <Quantizer>

Werte: 1.0 bis 31.0

Beispiel: -cq 2

Führt ein Single-Pass-Encoding mit einem bestimmten Quantizer durch. I.d.R. verwendet für äußerst hochqualitative Backups mit Quantizer 2. Kann nicht mit -size bzw. -bitrate kombiniert werden.

Da encoderintern als Quantizer nur ganze Zahlen gültig sind, repräsentiert diese Option zwei Encoding-Modi. Wenn wir als Wert eine ganze Zahl angeben, wird diese als konstanter Quantizer gewählt. Kommazahlen entsprechen einem Target-Quantizer. Dabei werden unterschiedliche Quantizer so beim Encoding angewendet, dass als Durchschnitt ungefähr der gewünschte Wert erreicht wird. Xvid verwendet für diese Verteilung einen extrem einfachen, kaum optimierten Algorithmus, weshalb wir uns auf ganze Zahlen und damit das echte CQ-Verfahren beschränken sollten. Siehe auch das Xvid-Technikkapitel.

-pass1 [<Statistikdateiname>]

Beispiel: -pass1 "D:\Encoding\Xvid.stats"

Definiert den ersten Durchgang eines 2-Pass-Encodings. Der angegebene Dateiname steht für die Statistikdatei, in der die ermittelten Daten des 1st Pass gespeichert werden. Geben wir keinen Dateinamen an, erzeugt Xvid eine Datei namens xvid.stats im aktuellen Ordner.

-full1pass

Normalerweise werden im 1st Pass einige unkritische Optionen automatisch abgeschaltet, um die Geschwindigkeit zu erhöhen. Dieses Verhalten können wir mit -full1pass unterbinden. Sinnvoll ist das nur, wenn wir im 1st Pass eine Videodatei erzeugen, die weiterverwendet werden soll. Normalerweise ist das nicht der Fall.

-pass2 [<Statistikdateiname>]
Standard: xvid.stats
Beispiel: -pass2 "D:\Encoding\Xvid.stats"

Definiert den zweiten Durchgang eines 2-Pass-Encodings, in dem die Zieldatei erstellt wird. Die angegebene Statistikdatei muss mit der aus dem 1st Pass identisch sein. Geben wir keinen Dateinamen an, nimmt XvidEncraw als Standardwert die xvid.stats im aktuellen Ordner.

-size <KByte>
Werte: positive ganze Zahlen
Beispiel: -size 1425466

Zielgröße in KByte. Diese Angabe ist die reine Größe der Videospur, nicht die Zielgröße des kompletten Films. Wird -size angegeben, kann nicht gleichzeitig -bitrate angegeben werden.

-bitrate <kbit/s>
Werte: positive ganze Zahlen
Standard: 700
Beispiel: -bitrate 1500

Bitrate des Zielvideos in Kilobit pro Sekunde. Wird -bitrate angegeben, kann nicht gleichzeitig -size angegeben werden.

Achtung! Werte kleiner/gleich 10000 werden als kbit/s interpretiert, Werte größer als 10000 dagegen als bit/s.

Weitere Encoding-Optionen

-max_key_interval <Frames>
Werte: positive ganze Zahlen
Standard: 300
Beispiel: -max_key_interval 250

Maximales I-Frame-Intervall. Xvid setzt automatisch nur dort I-Frames (Keyframes), wo sie sinnvoll sind (z.B. bei Szenenwechseln). Nach der mit -max_key_interval angegebenen Anzahl an P- und B-Frames wird spätestens ein I-Frame erzwungen, auch wenn dort automatisch keines gesetzt würde. Als Daumenregel hat sich das Zehnfache der Bildrate eingebürgert. Deshalb können wir den Standardwert meistens problemlos übernehmen.

-quality <Modus>
Werte: ganze Zahlen von 0 bis 6
Standard: 6
Beispiel: -quality 5

Legt fest, wie intensiv Xvid nach Bewegungen sucht (motion search precision). Es gibt kaum einen Grund, von 6 abzuweichen. 0 schaltet die Bewegungssuche ganz ab, was einen Film zufolge hat, der ausschließlich aus I-Frames besteht.

-vhqmode <Modus>
Werte: 0, 1, 2, 3, 4
Standard: 1
Beispiel: -vhqmode 4

VHQ rechnet für die einzelnen Makroblocks verschiedene Szenarien durch und entscheidet sich dann für das mit dem besten Bits/Qualität-Verhältnis (siehe Xvid-Technikkapitel). Stark komprimierte 1-CD-Encodings dürfen VHQ 3 oder 4 verwenden. Für schwächere Kompression bei höheren Zielgrößen ist 1 oder 2 angebrachter. Wenn wir außerdem GMC aktiviert haben, sollte VHQ nicht abgeschaltet sein.

-nochromame

Üblicherweise verwendet Xvid bei der Suche nach Bewegung nicht nur die Helligkeitsinformationen (Luminanz), sondern auch die Chrominanz (Farbe). Das steigert die Genauigkeit der Ergebnisse und damit die Qualität. Mit -nochromame kann die Verwendung der Chrominanz deaktiviert werden. Xvid nutzt dann nur noch die Luma-Komponente zur Bewegungssuche.

-notrellis

Trellis »überdenkt« die einmal getroffene Quantisierungsentscheidung und versucht sie zu verbessern. Heftige Gewinne bei der Qualität dürfen wir davon nicht erwarten, andererseits bremst Trellis auch nicht besonders und kann deshalb bedenkenlos eingeschaltet bleiben. Mit -notrellis können wir die Funktion deaktivieren.

-turbo

-Turbo beschleunigt die Berechnung von B-Frames und QPel, erreicht deshalb aber nicht immer das absolute Qualitätsmaximum. Der Unterschied ist kaum jemals sichtbar, trotzdem lasse ich als Qualitätsfanatiker den Turbo meistens ausgeschaltet.

Zonen

Zonen definieren Abschnitte innerhalb des Videos, für die unabhängig eine Reihe von Optionen definiert werden können. Offensichtlichster Anwendungsbereich für Zonen ist der Abspann des Films. Für die Definition von Zonen ist die Option -zones zuständig, deren Syntax folgendermaßen aussieht:

-zones Start,Modus,Wert[,Optionen][/Start,Modus,Wert[,Optionen]]...

Die einzelnen Parameter einer Zone trennen wir mit Komma (,). Zwischen mehreren Zonen steht ein Schrägstrich (/) als Trennzeichen, wobei maximal 64 Stück definiert werden können. Das Ende einer Zone ergibt sich entweder aus dem Startframe der anschließenden Zone oder dem Ende des Films. Die Zonen-Parameter haben folgende Bedeutung:

  • Start: Framenummer, bei der die Zone beginnt. Wichtig: Das erste Frame des gesamten Films hat die Nummer 0.
  • Modus: Zonen können entweder mit einem konstanten Quantizer oder einem relativen Gewicht versehen sein. Für Quantizer-Zonen steht als Modus ein q, für gewichtete Zonen ein w (Weight).
  • Wert: Für Quantizer-Zonen steht hier der gewünschte Quantizer als ganze Zahl zwischen 1 und 31. Für Weight-Zonen steht hier das relative Gewicht im Vergleich zum Rest des Films. Eine Zone, der nur die Hälfte der üblichen Datenrate zugewiesen werden soll, müsste mit Gewicht 0.5 definiert werden. Als Dezimaltrenner muss der Punkt verwendet werden, nicht das Komma.
  • Optionen: Eine Zeichenkette, die bestimmte Encoder-Optionen für die Zone ein- oder ausschaltet. Jedes konfigurierbare Feature wird von einem einzelnen Buchstaben repräsentiert.
    • K = Keyframe. Am Anfang der Zone wird ein I-Frame erzwungen.
    • O = Chroma Optimizer. Soll Pixeltreppchen an scharfen Kanten entgegenwirken, bremst aber den Encoding-Vorgang etwas.
    • G = Greyscale. Verwirft alle Farbinformationen, so dass wir ein Schwarzweiß-Video erhalten.
    • C = Cartoon Mode. Besonders nützlich bei Cartoons – wer hätte das gedacht, und da wiederum profitiert klassisch gezeichneter Zeichentrick à la Tom & Jerry oder The Simpsons am meisten. Für Realfilme sollten wir die Funktion lieber nicht einschalten.
    • Zahl = B-Frame-Empfindlichkeit. Wirkt sich darauf aus, wie gern Xvid B-Frames setzt. Erlaubt sind nur ganze Zahlen. Positive Werte ermutigen Xvid zu mehr B-Frames, negative Werte schrecken den Encoder eher ab. Für 1-CD-Encodings kann es sinnvoll sein, den Wert auf etwa 5 bis 10 hoch zu setzen. Ansonsten brauchen wir den Standard von 0 nicht verändern.

Machen wir uns diese Syntax an einem Beispiel klar. Nehmen wir an, wir möchten für einen Film drei Zonen definieren:

  • Aktivierten Chroma Optimizer am Filmanfang,
  • ab Frame 12.000 konstanten Quantizer 2 ohne weitere Optionen,
  • ab Frame 13.000 Gewicht von 0,8 sowie alle Optionen aktiviert und die B-Frame-Empfindlichkeit auf –10 gesetzt.

Die dazu passende Kommandozeile sieht folgendermaßen aus:

-zones 0,w,1.0,O/12000,q,2/13000,w,0.8,KOGC-10

Drei Dinge sind wichtig: Für die erste Zone haben wir Gewicht 1,0 angegeben. Es soll ja nur der Chroma Optimizer aktiviert und die Zone ansonsten genauso wie der Rest des Films behandelt werden. Da Start, Modus und Wert immer angegeben werden müssen, war das nötig.

Wenn wir keine Optionen aktivieren, entfällt auch das letzte Komma. Das sehen wir an der zweiten Zone. Außerdem setzen wir innerhalb des Optionen-Parameters nie ein Komma oder sonstiges Trennzeichen. Genauso darf im gesamten Zonen-String kein Leerzeichen auftauchen.

Steuerung von XvidEncraw

-threads <Anzahl>
Werte: positive ganze Zahlen
Standard: 1

Verfügbar ab Xvid 1.2. Hier stellen wir ein, wie viele Threads Xvid zum Encodieren verwenden soll. Für Computer mit nur einer CPU sollten wir die Option weglassen. Wer Hyperthreading, Dual Core oder tatsächlich ein System mit mehreren Prozessoren sein Eigen nennt, muss ein wenig testen, welche Einstellung die schnellsten Ergebnisse bringt. Die Anzahl der CPUs oder CPU-Kerne mal 1,5 ist ein guter Startwert.

-progress <Frames>
Werte: 1 (Detailansicht) und positive ganze Zahlen
Standard: 10
Beispiel: -progress 50

Legt fest, wie oft die Fortschrittsanzeige aktualisiert wird. Ein Wert von 1 gibt für jedes Frame einige Detailinformationen aus. Bei höheren Werten beschränkt sich Xvid auf allgemeine Informationen.

Kommentare