Zum Inhalt springen
Brother Johns Encodingwissen Wechseln zu: Inhalt, Abkürzungen

x264-Kommandozeilenreferenz

Wir sprechen in diesem Kapitel nahezu sämtliche Parameter von x264.exe kurz an. Wenn wir noch überhaupt nicht mit x264 vertraut sind, sollten wir besser im Kapitel x264-Detailkonfiguration einsteigen, wo das Zusammenspiel der Optionen bei einem konkreten Encoding erklärt wird.

Wir sollten auf jeden Fall eine aktuelle Version von x264 verwenden (d.h. mindestens Revision 1117); zum einen, weil sich der Encoder ständig weiterentwickelt, zum anderen, damit sich die Kommandozeile tatsächlich so verhält wie hier beschrieben. Bei Problemen hilft zunächst ein x264.exe --longhelp, das mit einer kurzen Erklärung sämtliche verfügbaren Parameter auflistet. Außerdem verrät uns der Befehl ganz am Anfang seiner Ausgabe die x264-Revisionsnummer und ob der Encoder mit Unterstützung für AviSynth und MP4 compiliert wurde. AviSynth ist Grundvoraussetzung, damit wir arbeiten können. MP4-Unterstützung benötigen wir nur dann, wenn wir uns für MP4 als Container der Zieldatei entschieden haben.

Ein kleines Stern-Symbol [wichtiger Parameter] dient zur Kennzeichnung aller Optionen, die für ein 2-Pass- oder CRF-Encoding interessant sind. Die wichtigsten davon haben wir uns schon im x264-Konfigurationskapitel näher angesehen. Ebenfalls eine Erklärung und Empfehlung zu vielen Optionen bietet Selurs man x264 (inzwischen leider teilweise veraltet).

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

Normalerweise beginnen x264-Paramter mit zwei Strichen (--). Daneben existieren für einige besonders häufig verwendete Optionen Kurzformen, die aus einem einzelnen Buchstaben bestehen und im Gegensatz zur ausgeschriebenen Variante mit einem einfachen Strich beginnen (z.B. --bframes und -b). Zur Übersichtlichkeit habe ich darauf verzichtet, die Kurzformen aufzulisten.

Frametypen

--keyint <Frames>

Standardwert: 250

Beispiel: --keyint 250

Maximales IDR-Frame-Intervall. Siehe auch das x264-Technikkapitel. Als Daumenregel hat sich das Zehnfache der Bildrate eingebürgert. Deshalb können wir den Standardwert problemlos übernehmen.

--min-keyint <Frames>

Standardwert: 25

Beispiel: --min-keyint 25

Mindestabstand, der zwischen zwei IDR-Frames liegen muss. Siehe auch das x264-Technikkapitel. Als Daumenregel hat sich die Bildrate eingebürgert. Deshalb können wir den Standardwert problemlos übernehmen.

--scenecut <Empfindlichkeit>

Werte: Ganze Zahlen von 0 bis 100

Standardwert: 40

Beispiel: --scenecut 40

Szenenwechselerkennung. Legt fest, wie stark sich der Bildinhalt von einem Frame zum nächsten ändern muss, damit ein I-Frame eingefügt wird. Der Wert 0 deaktiviert die Szenenerkennung, d.h. I-Frames werden unabhängig vom Bildinhalt im mit --keyint definierten Abstand eingefügt. Wir sollten die Standardeinstellung beibehalten.

--no-scenecut
Deaktiviert genauso wie --scenecut 0 die Szenenerkennung zur intelligenten Verteilung von I-Frames.
--no-cabac

CABAC (Context Adaptive Binary Arithmetic Coding) ist eine Neuheit des H.264-Standards. Es handelt sich um eine Kompressionsmethode in der verlustlosen Phase des Encodingprozesses, die gerade bei hohen Datenraten die nötige Bitrate deutlich senken kann. CABAC ist ein zentrales Element von H.264 und sollte nicht deaktiviert werden.

--ref <Frames> [wichtiger Parameter]

Werte: Ganze Zahlen zwischen 1 und 16

Standardwert: 1

Beispiel: --ref 5

Anzahl der erlaubten Referenzframes. x264 erlaubt maximal 16 Stück; sinnvoll sind 4 bis 5. Mehr steigert hauptsächlich die Codierzeit, nicht mehr die Qualität. Lediglich Zeichentrick profitiert oft von deutlich höheren Werten. Die Einstellung wirkt sich auch auf B-Frames aus.

--deblock <alpha>:<beta> [wichtiger Parameter]

Werte für alpha bzw. beta: Ganze Zahlen zwischen -6 und 6

Standardwert für beide: 0

Beispiel: --deblock 0:-1

Konfiguriert die Stärke des Inloop-Deblocking-Filter, mit dem wir uns schon ausführlicher im x264-Technikkapitel beschäftigt haben. Hohe Datenraten sollten vorsichtig gefiltert werden (z.B. mit 0:0 oder 0:-1), niedrige vertragen etwas mehr (etwa 1:2).

--no-deblock
Deaktiviert den Deblocking-Filter. Sollte ohne sehr guten Grund nie gesetzt werden.
--interlaced
Aktiviert den Modus für interlaced Encoding. Ist zwingend erforderlich, wenn schon das Quellmaterial interlaced vorliegt und wir das fürs Zielvideo beibehalten wollen. Der Normalfall ist ein Deinterlacing vor dem Encoding, um progressives Material zu erhalten. --interlaced darf dann nicht gesetzt werden.
--b-adapt <Modus> [wichtiger Parameter]

Werte: 0 (aus), 1 (schnell), 2 (optimal)

Standardwert: 1

Beispiel: --b-adapt 2

Legt fest, welcher Algorithmus für die adaptive (»intelligente«) Verteilung von B-Frames verwendet wird. Siehe auch das x264-Technikkapitel. Mit dem Wert 0 schalten wir die intelligente Verteilung ab, was nicht empfehlenswert ist. 1 steht für den klassischen schnellen Algorithmus und 2 für den optimaleren, aber auch langsameren. I.d.R. sollten wir --b-adapt 2 wählen.

--no-b-adapt
Nicht mehr verfügbare Option. Seit Revision 969 durch --b-adapt ersetzt.
--bframes <Maximum> [wichtiger Parameter]

Werte: Ganze Zahlen von 0 bis 16

Standardwert: 0

Beispiel: --bframes 3

Legt fest, wie viele B-Frames maximal direkt hintereinander stehen dürfen. Siehe auch das x264-Technikkapitel. Ein Wert von 0 deaktiviert B-Frames vollständig. Empfehlenswert ist das Maximum von 16 zusammen mit --b-adapt 1 oder 4 bis 5 mit --b-adapt 2.

--b-bias <Empfindlichkeit>

Werte: Ganze Zahlen von -100 bis 100

Standardwert: 0

Beispiel: --b-bias 0

Steuert x264s Vorliebe für B-Frames. Negative Werte halten den Encoder vom B-Frame-Einsatz ab, positive ermuntern ihn, öfter B-Frames zu setzen. Benötigt in der Regel keine Anpassung.

--b-pyramid [wichtiger Parameter]

Erlaubt es, B-Frames als Referenzframes zu verwenden. Siehe auch das x264-Technikkapitel. Sollte für beste Qualität aktiviert sein.

--direct <Modus> [wichtiger Parameter]

Werte: spatial, temporal, auto

Standardwert: spatial

Beispiel: --direct auto

Gibt an, ob in B-Frames zeitliche oder räumliche Informationen zur Komprimierung von Direct-Blocks (d.h. Blocks ohne eigenen Bewegungsvektor) herangezogen werden. Siehe auch das x264-Technikkapitel. Die Entscheidung können wir mit auto x264 überlassen.

--weightb [wichtiger Parameter]

Aktiviert die gewichtete Bewegungssuche für B-Frames. Siehe auch das x264-Technikkapitel. Sollte für beste Qualität aktiviert sein.

--bime

Nicht mehr verfügbare Option. Seit Revision 996 in --subme integriert.

--b-rdo

Nicht mehr verfügbare Option. Seit Revision 996 in --subme integriert.

Encoding-Modus

--crf <nominaler Quantizer> [wichtiger Parameter]

Werte: 1.0 bis 51.0

Beispiel: --crf 20

Führt ein 1-Pass-Encoding mit eine Zielquantizer durch (Constant Rate Factor). Kommawerte müssen zwingend mit dem Punkt als Dezimaltrenner angegeben werden. Dieser Modus ist interessant, wenn wir keine exakte Zielgröße anstreben. Sinnvolle Werte liegen grob zwischen 18 und 25.

--qp <Quantizer>

Werte: ganze Zahlen zwischen 0 und 51

Beispiel: --qp 20

Führt ein 1-Pass-Encoding mit festem Quantizer durch. --qp 0 aktiviert den verlustlosen Modus von x264. Ist für unsere Zwecke uninteressant.

--pass <Modus> [wichtiger Parameter]

Werte: 1, 2, 3

Beispiel: --pass 2

Steuert ein Multipass-Encoding. 1 führt einen 1st Pass durch, in dem die Statistikdatei angelegt wird. 2 führt einen Nth- bzw. 2nd-Pass durch, ohne die Statistikdatei zu aktualisieren. 3 führt ebenfalls einen Nth- bzw. 2nd-Pass durch und aktualisiert dabei die Statistikdatei. Mit der Durchführung eines 2-Pass-Encodings haben wir uns im x264-Konfigurationskapitel schon ausführlicher befasst.

--bitrate <kbit/s> [wichtiger Parameter]

Definiert die Bitrate in kbit/s. Für ein 1-Pass-ABR-Encoding (also nicht --qp oder --crf) stellt der Wert die angestrebte durchschnittliche Datenrate dar. Im 2-Pass-Encoding definiert --bitrate die gewünschte Zielgröße der Videospur.

--zones <Start>,<Ende>,<Modus>[/<Start>,<Ende>,<Modus>]...

Definiert Zonen, d.h. Abschnitte im Video, für die individuell das Qualitätsniveau angepasst werden kann. Die einzelnen Parameter einer Zone trennen wir mit Komma (,). Zwischen mehreren Zonen steht ein Schrägstrich (/) als Trennzeichen. Jede Zone besitzt drei Parameter, die alle zwingend angegeben werden müssen.

Start steht für die Nummer des ersten Frames der Zone. Das erste Frame des gesamten Videos hat die Nummer 0. Ende steht für die Nummer des letzten Frames der Zone.

Modus definiert den Encodingmodus der Zone. Mit q=<Quant> legen wir fest, dass die Zone mit einem konstanten Quantizer (zwischen 0 und 51) encodiert wird. Mit b=<Gewicht> definieren wir eine Zone, die mit einem relativen Gewicht zum restlichen Film behandelt wird. Werte liegen zwischen 0.01 und 100.0 (Punkt als Dezimaltrenner!).

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

  • Für die ersten 10.000 Frames des Videos ein konstanter Quantizer von 22.
  • Die Frames 20.000 bis 25.000 sollen bei der Bitratenverteilung als doppelt so wichtig wie der Rest des Films behandelt werden.

Die dazu passende Kommandozeile sieht folgendermaßen aus:

--zones 0,9999,q=22/20000,25000,b=2.0

Quantisierung, Ratecontrol

--vbv-maxrate <kbit/s>

Werte: 0 (nicht definiert) und positive ganze Zahlen

Standardwert: 0

Legt im Rahmen des VBV (Video Buffer Verifier) die maximal erlaubte Datenrate des Videos fest. Ist hauptsächlich für die Hardware-Wiedergabe interessant.

--vbv-bufsize <kbit>

Werte: 0 (nicht definiert) und positive ganze Zahlen

Standardwert: 0

Legt die Größe des VBV-Pufferspeichers (Video Buffer Verifier) fest. Ist hauptsächlich für die Hardware-Wiedergabe interessant.

--vbv-init <Füllstand>

Werte: 0.0 (leer) bis 1.0 (voll)

Standardwert: 0.9

Legt fest, zu welchem Prozentsatz der VBV-Puffer (Video Buffer Verifier) gefüllt werden muss, bevor zu die Wiedergabe startet. Ist hauptsächlich für die Hardware-Wiedergabe interessant.

--qpmin <Quantizer>

Werte: Ganze Zahlen von 1 bis 51

Standardwert: 10

Definiert den minimalen Quantizer, den x264 niemals unterschreitet. Eine Anpassung ist nicht nötig.

--qpmax <Quantizer>

Werte: Ganze Zahlen von 1 bis 51

Standardwert: 51

Definiert den maximalen Quantizer, den x264 niemals überschreitet. Eine Anpassung ist nicht nötig.

--qpstep <Quant-Delta>

Werte: Ganze Zahlen von 1 bis 50

Standardwert: 4

Legt für die Encodingmethoden 2-Pass und 1-Pass Bitrate fest, wie stark der Quantizer von einem Frame zum nächsten schwanken darf. Eine Anpassung ist nicht nötig.

--ratetol <Schwankung>

Werte: 0.1 bis 100.0, inf

Standardwert: 1.0

Definiert für die Encodingmethode 1-Pass Bitrate, wie stark die Bitrate eines einzelnen Frames von der angestrebten durchschnittlichen Bitrate abweichen darf.

--ipratio <Faktor>

Werte: 1.00 bis 10.00

Standardwert: 1.40

Legt fest, um welchen Faktor ein P-Frame stärker quantisiert werden soll als das I-Frame, das es als Referenz verwendet. Der Standardwert ist gut abgestimmt und sollte ohne sehr guten Grund nicht verändert werden.

--pbratio <Faktor>

Werte: 1.00 bis 10.00

Standardwert: 1.30

Legt fest, um welchen Faktor ein B-Frame stärker quantisiert werden soll als das P-Frame, das es als Referenz verwendet. Der Standardwert ist gut abgestimmt und sollte ohne sehr guten Grund nicht verändert werden.

--chroma-qp-offset <Quant-Delta>

Werte: Ganze Zahlen von -12 bis 12

Standardwert: 0

Ermöglicht es, die Farbinformationen (Chroma) des Bildes anders zu quantisieren als die Helligkeitsinformationen (Luma). Da Chroma weniger wichtig ist als Luma, ist die üblichere Wahl eine stärkere Quantisierung des Chroma-Anteils. Im Normalfall sollten wir die Option jedoch weglassen.

--aq-mode <Modus> [wichtiger Parameter]

Werte: 0 (aus), 1 (ein). Achtung: Die Bedeutung der Werte hat sich mit Revision 968 wie unten beschrieben geändert!

Standardwert: 1

Beispiel: --aq-mode 1

Aktiviert oder deaktiviert den Algorithmus zur adaptiven Quantisierung, der die Quantisierung von Makroblocks anpasst, je nachdem, wie empfindlich der menschliche Sehapparat für den jeweiligen Bildbereich ist. Den Standardwert 1 sollten wir beibehalten.

--aq-strength <Stärke> [wichtiger Parameter]

sinnvolle Werte: ca. 0.5 bis 1.5

Standardwert 1.0

Beispiel: --aq-strength 1.0

Wählt die Stärke der adaptiven Quantisierung. Auch hier sollte normalerweise der Standardwert 1.0 genutzt werden.

--qcomp <Kurvenkompression>

Werte: 0.0 bis 1.0

Standardwert: 0.6

Legt fürs 2-Pass-Verfahren fest, ob im Verlauf des Films eher eine konstante Qualität oder konstante Bitrate erzielt werden soll. Der Wert 0.0 entspricht einem CBR-Encoding, d.h. jedes Bild erhält unabhängig von seiner Komplexität die gleiche Anzahl an Bits. 1.0 führt zu einem Encoding mit konstantem Quantizer, d.h. die Zielgröße kann nicht mehr eingehalten werden. Der Standardwert sollte nicht verändert werden.

--cplxblur <Stärke>

Werte: 0.0 bis 999.0

Standardwert: 20

Verringert beim 2-Pass-Encoding die Schwankungen bei der Quantizervergabe vor der Kurvenkompression. Den Standardwert sollten wir beibehalten.

--qblur <Stärke>

Werte: 0.0 bis 99.0

Standardwert: 0.5

Dieser Parameter verringert beim 2-Pass-Encoding die Schwankungen bei der Quantizervergabe nach der Kurvenkompression. Den Standardwert sollten wir beibehalten.

--qpfile "<Dateiname>"

Gibt den Namen einer Textdatei an, in der für die Einzelbilder des Films Frametyp und Quantizer individuell festgelegt werden können. Ab Revision 1076 können mit dieser Datei vereinzelte Frames angepasst werden, bei älteren Revisionen muss für jedes Frame des Films ein Eintrag vorhanden sein. Jedes veränderte Frame steht in der Textdatei auf einer eigenen Zeile mit folgender Syntax:

<Framenummer> <Frametyp> <Quantizer>

Frametyp ist ein einzelner Buchstabe mit folgender Bedeutung:

  • I = IDR-Frame
  • i = normales I-Frame
  • P = P-Frame
  • B = referenziertes B-Frame
  • b = nicht-referenziertes B-Frame

Quantizer ist ein gültiger H.264-Quantizer oder -1, um x264 automatisch entscheiden zu lassen. Um für Frame Nummer 1000 ein IDR-Frame mit Quantizer 25 zu erzwingen, müsste in der Datei also folgende Zeile auftauchen:

1000 I 25

--cqm <Matrix>

Werte: jvt, flat

Standardwert: flat

Beispiel: --cqm jvt

Wählt eine der beiden Standard-Quantisierungsmatrizen. Siehe auch das x264-Technikkapitel.

--cqmfile "<Matrixdatei>"

Beispiel: --cqmfile "D:\Matrizen\eqm_avc_hr.cfg"

Verwendet die benutzerdefinierte Quantisierungsmatrix aus der angegebenen Datei. Siehe auch das x264-Technikkapitel. --cqmfile hat eine höhere Priorität als --cqm, falls beide angegeben werden.

Analyse

--partitions <Partitionen> [wichtiger Parameter]

Werte: none, all oder mit Komma getrennte Kombination aus p8x8, p4x4, b8x8, i8x8, i4x4

Standardwert: p8x8,b8x8,i8x8,i4x4

Beispiele: --partitions p8x8,b8x8 oder --partitions all

Legt fest, welche Partitionsgrößen für Makroblocks verwendet werden dürfen. Siehe auch das x264-Technikkapitel. Mehrere Werten werden mit einem Komma (,) getrennt. p4x4 benötigt auch p8x8. Für i8x8 muss zusätzlich der Schalter --8x8dct gesetzt werden.

Da Partitionen maßgeblich die Effizienz von x264 beeinflussen, sollten wir sie nicht zu sehr einschränken. Lediglich auf p4x4 können wir i.d.R. verzichten. Die Berechnung, ob diese Partitionierung sinnvoll ist, drückt spürbar auf die Geschwindigkeit, sie fällt aber bei unseren üblichen Auflösungen (und erst recht bei den noch höheren HD-Auflösungen) nur sehr selten positiv aus, so dass im fertigen Encoding so oder so kaum P4×4-Partitionen auftauchen.

--me <Modus> [wichtiger Parameter]

Werte: dia, hex, umh, esa, tesa

Standardwert: hex

Beispiel: --me umh

Wählt den Algorithmus für die Bewegungssuche auf der Ebene von ganzen Pixeln. In der oben angegebenen Reihenfolge werden die Modi genauer und langsamer.

  • dia = diamantförmige Suche mit Radius 1
  • hex = hexagonale Suche mit Radius 2
  • umh = ungerade Multihex-Suche
  • esa = erschöpfende Suche
  • tesa = erschöpfende Hadamard-Suche

Beim Standard hex zu bleiben, ist nur auf langsameren Computern sinnvoll. Ansonsten sollten wir eher umh verwenden. Die geringe Genauigkeitssteigerung von esa und tesa ist deren deutlich höheren Rechenaufwand meistens nicht wert.

--merange <Radius>

Werte: Ganze Zahlen zwischen 4 und 1024

Standardwert: 16

Beispiel: --merange 16

Legt die Größe des Bereichs fest, in dem nach Bewegung gesucht wird. Ist nur relevant für die Modi ab --me umh. Höhere Werte als 16 sind für DVD-Quellen nicht sinnvoll. Achtung: Hohe Werte sind extrem langsam!

--mvrange <Pixel>

Werte: Ganze Zahlen und -1 (auto)

Standardwert: -1

Definiert die maximal erlaubte Länge eines Bewegungsvektors. Wir sollten die standardmäßig aktive Automatik beibehalten.

--mvrange-thread <Puffer>

Werte: Ganze Zahlen und -1 (auto)

Standardwert: -1

Setzt den Bewegungsvektor-Puffer, der zwischen zwei Encodingthreads verwendet wird. Benötigt keine Anpassung.

--subme <Qualität> [wichtiger Parameter]

Werte: Ganze Zahlen zwischen 1 und 9. Achtung: Die Bedeutung der Werte hat sich mit Revision 996 wie unten beschrieben geändert!

Standardwert: 6

Beispiel: --subme 8

Definiert die Qualitätsstufe für die Subpixel-Bewegungssuche und die Partitionsentscheidung. 1 ist schnell und ungenau, 9 sehr langsam mit den besten Ergebnissen.

  • 1 = SAD, ein QPel-Durchlauf.
  • 2 = SATD, zwei QPel-Durchläufe
  • 3 = HPel für den Makroblock, QPel für die MB-Partitionen.
  • 4 = immer QPel
  • 5 = Multi-QPel, zusätzlich bidirektionale Bewegungssuche
  • 6 = wie 5, und RDO für I- und P-Frames
  • 7 = wie 5, und RDO für alle Frames
  • 8 = wie 7, zusätzlich verfeinerte RDO für I- und P-Frames
  • 9 = wie 7, zusätzlich verfeinerte RDO für alle Frames

Mindestens --subme 7 ist i.d.R. eine gute Wahl.

--psy-rd <rd>:<trellis> [wichtiger Parameter]

Werte: jeweils 0.0 bis 10.0

Standardwert: 1.0:0.0

Beispiel: --psy-rd 1.0:1.0

Steuert Einsatz und Stärke der psychovisuellen Algorithmen, die bei der Kompressionsentscheidung die Komplexitätswahrnehmung des menschlichen Sehapparats berücksichtigen. Setzt sich aus PsyRD <rd> und PsyTrellis <trellis> zusammen. 0.0 schaltet den jeweiligen Algorithmus ab. PsyRD benötigt --subme 6 oder höher. PsyTrellis benötigt --trellis 1 oder --trellis 2.

--trellis <Modus> [wichtiger Parameter]

Werte: 0 (deaktiviert), 1 (nur für endgültigen Block), 2 (bei jeder Entscheidung)

Standardwert: 0

Beispiel: --trellis 1

Trellis wägt zwischen Detailerhalt und geringerer Datenrate ab, indem es Koeffizienten nach bestimmten Kriterien auf- oder abrundet. Je nach Einstellung der Option --psy-rd wird PsyTrellis oder klassisches Trellis verwendet. --trellis 2 ist recht langsam erreicht aber besonders in der Psy-Variante bessere Ergebnisse als --trellis 1. Ganz abschalten sollten wir Trellis normalerweise nicht.

--mixed-refs [wichtiger Parameter]

Erlaubt es dem Encoder, Referenzbilder nicht nur für jeden Makroblock, sondern für jede Blockpartition einzeln auszuwählen. Sollte trotz geringerer Geschwindigkeit aktiviert werden.

--no-chroma-me

Standardmäßig verwendet x264 neben den Helligkeitsinformationen (Luma) auch die Farbinformationen (Chroma) zu Bewegungssuche. Mit --no-chroma-me können wir das auf die Luminanz beschränken. Da die zusätzliche Chroma-Suche die Geschwindigkeit nicht zu sehr beeinträchtigt, sollte der Schalter nicht gesetzt werden.

--8x8dct [wichtiger Parameter]

Aktiviert die 8×8-DCT-Transformation aus dem H.264 High Profile. Sollte aktiviert werden.

--no-fast-pskip

Deaktiviert die beschleunigte Verarbeitung von P-Frames. Wird normalerweise nicht benötigt.

--no-dct-decimate

Verhindert, dass im Rahmen der DCT sehr kleine Koeffizienten auf Null gerundet werden. Kann in Verbindung mit Trellis sinnvoll sein, wird aber normalerweise nicht benötigt.

--deadzone-inter <Größe>

Werte: Ganze Zahlen zwischen 0 und 32

Standardwert: 21

Deadzones setzen an der selben Stelle an wie Trellis, arbeiten aber deutlich simpler und deshalb weniger effektiv. Niedrige Deadzone-Werte vernichten weniger Bilddetails, erhöhen aber die Datenrate deutlich. Hohe Deadzones glätten das Bild stärker im Tausch für eine höhere Komprimierbarkeit.

--deadzone-inter setzt die für P- und B-Frames gültige Deadzone. Ist Trellis aktiv, wird die Deadzone-Einstellung praktisch bedeutungslos. Eine Anpassung ist demnach nur dann evtl. sinnvoll, wenn wir Trellis nicht nutzen.

--deadzone-intra <Größe>

Werte: Ganze Zahlen zwischen 0 und 32

Standardwert: 11

--deadzone-intra ist das Gegenstück zu --deadzone-inter und gilt für I-Frames. Auch hier ist eine Anpassung nur dann evtl. sinnvoll, wenn Trellis nicht aktiv ist.

Dateinamen und Videoeigenschaften

"<Quelldatei>" [wichtiger Parameter]

Beispiel: "D:\Quellscript.avs"

Gibt die Quelldatei an. Deren Format muss RAW YUV 4:2:0 (Y4M), AVI oder AviSynth-Skript (AVS) sein. Für unsere Zwecke ist im Wesentlichen nur AviSynth interessant.

--output "<Zieldatei>" [wichtiger Parameter]

Beispiel: --output "D:\Zielvideo.mkv"

Wählt Dateinamen und Format der Zieldatei. Mit der Dateiendung .264 wird ein roher H.264-Datenstrom erzeugt. Die Endungen .mkv und .mp4 verpacken das Video in den Matroska- bzw. MP4-Container. AVI ist nicht möglich.

--stats "<Statistikdatei>" [wichtiger Parameter]

Beispiel: --stats "D:\Video\x264.stats"

Legt Pfad und Dateinamen der für ein N-Pass-Encoding nötigen Statistikdatei fest. Standardmäßig wird eine Datei x264_2pass.log im aktuellen Ordner erzeugt.

--sar <x:y> [wichtiger Parameter]

Beispiel: --sar 16:11

Definiert das Pixel Aspect Ratio 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 --sar 1:1 an oder lassen die Option ganz weg.

Für PARs definiert H.264 zwei Felder (für x und y), die je einen vorzeichenlosen 16-Bit-Integer enthalten. D.h. der maximale Wert, der darin gespeichert werden kann, ist 65535. Auch wenn sich x264 nicht darüber beschwert, sollten wir deshalb größere Werte niemals eingeben, denn die können nicht in den Videostream geschrieben werden.

--fps <Framerate>

Typische Werte: 23.976, 25.0, 29.97

Beispiel: --fps 25.0

Definiert die Bildrate der Zieldatei in Bildern pro Sekunde (fps). Wird bei AviSynth als Quelle automatisch ermittelt.

--level <Level>

Werte: Gültige H.264-Level: 1, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1, 4.2, 5, 5.1

Standardwert: Automatik

Schreibt das gewünschte H.264-Level als Information in den Bitstream. x264 stellt in keiner Weise sicher, dass die Beschränkungen des angegebenen Levels auch tatsächlich eingehalten werden. Darum müssen wir uns wenn nötig selbst kümmern.

Steuerung von x264.exe

--seek <Startframe>
Framenummer des ersten Bildes, das encodiert werden soll. Das erste Bild des Videos hat die Nummer 0.
--frames <Frameanzahl>
Maximale Anzahl an zu encodierenden Frames. Ist die Zahl erreicht, bricht x264 ab, auch wenn das Ende des Quellvideos noch nicht erreicht ist.
--verbose

Gibt Statusinformationen zu jedem einzelnen Frame am Bildschirm aus.

--progress [wichtiger Parameter]

Aktiviert die allgemeine Fortschrittsanzeige.

--quiet
Unterdrückt sämtliche Statusmeldungen.
--no-psnr [wichtiger Parameter]

Deaktiviert die Berechnung des PSNR-Wertes, der für ein normales Backup nicht notwendig ist.

--no-ssim [wichtiger Parameter]

Deaktiviert die Berechnung des SSIM-Wertes, der für ein normales Backup nicht notwendig ist.

--threads <Anzahl> [wichtiger Parameter]

Werte: Ganze Zahlen von 1 bis 16, auto

Standardwert: auto

Beispiel: --threads 3

Hier stellen wir ein, wie viele Threads x264 zum Encodieren verwenden soll. Für Computer mit nur einer CPU sollten wir die Option weglassen. Wer ein System mit Hyperthreading, mehreren Prozessorkernen oder tatsächlich mehreren CPUs sein Eigen nennt, sollte zunächst mit --threads auto die Entscheidung x264 überlassen. Falls die Prozessoren damit nicht genug ausgelastet werden, passen wir die Threadanzahl manuell an.

--thread-input [wichtiger Parameter]

Verwendet für die Verarbeitung des AviSynth-Skripts einen eigenen Thread. Wie schon --threads ist das hauptsächlich für Multicore-Systeme interessant und sollte dann auch gesetzt werden.