Interfacetypen: VfW und Kommandozeile (CLI)

Im Wesentlichen existieren heute zwei Möglichkeiten, um einen Encoder zu konfigurieren: das grafische VfW und die textbasierte Kommandozeile (CLI). Welches Interface wir verwenden, hängt hauptsächlich vom Encoding-Frontend ab. Das stellt normalerweise auch eine grafische Oberfläche für CLI-Encoder bereit. Niemand ist also gezwungen, kryptische Befehlszeilen zu tippen. Die ausführlichen Erklärungen, die in den nächsten Kapiteln zu den Parametern der CLI-Encoder folgen, sind trotzdem fürs Verständnis nützlich, welche Option sich wie aufs Encoding auswirkt.

Das VfW-Interface

VfW steht für Video for Windows, ein Videoframework von Microsoft, das seit Windows 3.1 existiert und die AVI-Datei eingeführt hat. Wegen einiger Beschränkungen der Technologie – z.B. ist VfW nicht darauf ausgelegt, B-Frames zu speichern – mussten für moderne Codecs Hacks entwickelt werden. Besonders nachteilig ist das für MPEG-4-Codecs, da dadurch die MPEG-4-Spezifikation verletzt wird. Es ist also nicht möglich, z.B. Xvid mit B-Frames in AVI zu speichern, ohne mit den Regeln des Standards zu brechen. Andere neuere Technologien – wie MP4 oder H.264 – arbeiten mit VfW überhaupt nicht zusammen.

Um es ganz unverblümt zu sagen: VfW/AVI ist veraltet. Es ist höchste Zeit, diesen Klotz vom Bein der digitalen Videowelt zu entfernen und auf aktuelle Technologien zu setzen, die nicht den Einschränkungen eines zwanzig Jahre alten Frameworks unterliegen.

Alle drei Encodingwissen-Codecs (x264, Xvid, DivX) sind in einer VfW-Version zu haben. Bei x264 war das von Anfang an eine Notlösung, die der Abwärtskompatibilität dient. Außer in extrem außergewöhnlich speziellen Situationen als temporäres Zwischenformat gibt es keinerlei Grund, x264 VfW einzusetzen. VfW-verbogenes H.264 ist unüblich, potenziell inkompatibel und nur schwer in »echtes« H.264 konvertierbar. Finger weg!

Die beiden ASP-Encoder sind dagegen fest in der VfW/AVI-Welt verwurzelt. Auch ist das verbogene VfW-ASP die übliche Form, in der uns dieses Format begegnet. Für Xvid existiert mit XvidEncraw trotzdem ein Encoder für die Kommandozeile, der sowohl »echtes« als auch VfW-ASP erzeugen kann. DivX ist dagegen ausschließlich für VfW verfügbar.

Es gibt auch ein Audio-Pendant zu VfW, das sich ACM nennt. Dafür gilt das gleiche wie für VfW: es ist veraltet und problembelastet.

Das Kommandozeilen-Interface (CLI)

Die Kommandozeile wird oft auch als Eingabeaufforderung oder Konsole bezeichnet. Das Prinzip besteht darin, Befehle in Textform einzutippen und auszuführen. Es ist das Gegenmodell zur grafischen Mausoberfläche. Die grundsätzliche Bedienung der Kommandozeile zu erklären, gehört nicht ins Encodingwissen, deshalb setze ich das voraus.

Die Abkürzung CLI steht für Commandline Interface. Das ist der englische Ausdruck für Kommandozeilen-Schnittstelle.

Kommandozeilenencoder sind unabhängig von VfW und seinen Einschränkungen. Sie bringen keine grafische Oberfläche mit, sondern müssen an der Eingabeaufforderung mit den passenden Optionen aufgerufen werden. Normalerweise kümmert sich ein grafisches Encoding-Frontend darum, die nötige Kommandozeile zu erstellen. Da die Dialoge je nach Programm etwas unterschiedlich ausfallen, sehen wir uns die in den entsprechenden Frontend-Kapiteln näher an. In den folgenden CLI-Kapiteln geht es immer darum, die Befehle von Hand zusammenzustellen.

Als Übersicht und zur allgemeinen Darstellung werden Kommandozeilen meist in Syntaxschreibweise angegeben. Dadurch sehen wir auf einen Blick, welche Optionen wir in welcher Kombination verwenden dürfen. Das könnte beispielsweise so aussehen:

foo.exe -in "<Quelle>" -out "<Ziel>" [-blubb] {-foo|-bar} [-klick|-klack]

Die Syntaxschreibweise arbeitet mit diesen Grundregeln:

  • Alle Optionen, die nicht innerhalb einer eckigen oder geschweiften Klammer stehen, müssen angegeben werden. Es wäre nicht erlaubt, -in oder -out wegzulassen.
  • Alle Klammern (spitze, eckige und geschweifte) sowie der senkrechte Strich sind erklärende Zeichen, die in der echten Kommandozeile niemals auftauchen.
  • Die Optionen werden jeweils durch ein Leerzeichen getrennt. Genauso steht zwischen einem Parameter und dessen zugehörigem Wert ein Leerzeichen.
  • Spitze Klammern (< und >) enthalten die Beschreibung eines Parameterwerts. Die Beschreibung muss einschließlich der Klammern durch den tatsächlichen Wert ersetzt werden. In unserem Beispiel würden wir <Quelle> durch etwas wie D:\Video\Quelle.avs ersetzen und hätten als Ergebnis -in "D:\Video\Quelle.avs".
  • Eckige Klammern ([ und ]) bezeichnen optionale Parameter. Wir können ganz nach Wunsch -blubb angeben oder weglassen.
  • Geschweifte Klammern ({ und }) bezeichnen eine zwingende Entweder-oder-Auswahl. Die wählbaren Optionen sind durch einen senkrechten Strich (|) getrennt. Im Beispiel müssen wir zwingend entweder -foo oder -bar angeben. Beide Optionen gleichzeitig sind verboten, genauso wie beide wegzulassen. Es könnten auch mehr als zwei Optionen in der Klammer stehen, was nichts ändert. Wir entscheiden uns trotzdem für genau eine davon.
  • Die Entweder-oder-Auswahl kann es auch in eckigen Klammern geben. Entsprechend dem optionalen Charakter der eckigen Klammer heißt das dann, wir können entweder -klick oder -klack angeben oder beide weglassen. Beide gemeinsam anzugeben ist nicht erlaubt.

Prinzipiell können alle diese Elemente beliebig verschachtelt und aneinander gehängt werden. Die Konstruktionen, mit denen wir in den folgenden Kapiteln in Berührung kommen, bleiben aber recht übersichtlich.

Kommentare