Zum Inhalt springen

X264

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Dezember 2005 um 19:19 Uhr durch 85.182.64.147 (Diskussion) (Bedienung). Sie kann sich erheblich von der aktuellen Version unterscheiden.
X264


freier H.264 Encoder
Basisdaten

Entwickler VideoLAN
Aktuelle Version rev. 388
(20. Dezember 2005)
Betriebssystem Windows, Linux, Mac OS X
Programmier­sprache C[1], Assemblersprache
Kategorie Videokompression
Lizenz GPL
deutschsprachig nein
videolan.org

x264 ist ein freier und plattformunabhängiger H.264 bzw. MPEG-4 AVC Encoder und wird unter der GPL veröffentlicht. Im Moment (Oktober 2005) befindet sich der Encoder noch in einer sehr frühen Entwicklungsphase, es erscheinen etwa wöchentlich neue Versionen. Trotz dessen liefert der Encoder schon sehr gute Ergebnisse und läuft stabil. Genauere Angaben zur Arbeitsweise von H.264 finden sich unter dem entsprechenden Artikel, hier soll nur auf die Besonderheiten von x264 eingegangen werden.

Bedienung

Der x264 Encoder wird als Kommandozeilenprogramm (CLI) zur Verfügung gestellt. Dieses Programm kann als Quelle unkomprimierte Rohdaten (YUV 4:2:0 Format) und AVI Dateien (nur unkomprimiert) sowie AviSynth-Skripte verarbeiten. Für letztere wird das Programm AviSynth benötigt, welches gegebenenfalls separat heruntergeladen und installiert werden muss. Zur Ausgabe der encodierten Daten stehen u.a. die Containerformate MP4, MKV und OGM zur Auswahl. Auch die Ausgabe als Rohdaten ist möglich, etwa um die Daten anschließend in den AVI Container zu verpacken. Die x264 CLI ermöglicht zusätzlich benutzerdefinierte Quantisierungsmatrizen zu verwenden.

Da die meisten Benutzer wohl nicht mit einem Kommandozeilenprogramm arbeiten möchten, sondern eine grafische Benutzeroberfläche bevorzugen, sind bereits mehrere GUIs für die x264 CLI verfügbar. Die beliebteste GUI ist derzeit MeGUI, welche bei vielen x264 Builds mitgeliefert wird. Es sollte aber beachtet werden, dass MeGUI das .NET Framework voraussetzt. Eine weitere Möglichkeit den x264 Encoder unter Windows zu verwenden, ist sein Wrapper für die Video for Windows (VfW) Schnittstelle. Über die VfW-Schnittstelle kann x264 in praktisch alle gängigen Programme zur Video-Verarbeitung eingebunden werden. Genannt seien hier etwa VirtualDub oder GordianKnot. Allerdings ist x264 kein vollerwertiger VfW-Codec, da er ausschließlich zur Encodierung, nicht aber zur Decodierung verwendet werden kann.

Technisches

Als H.264 Encoder arbeitet x264 deutlich effizienter als Codecs, die auf dem einfacheren MPEG-4 ASP basieren (etwa der bekannte DivX Codec), oder solche Encoder, die das noch ältere MPEG-2 Verfahren verwenden. Das bedeutet, dass x264 im Vergleich zu früheren Codecs bei gegebener Datenrate eine bessere Bildqualität liefert bzw. bei gegebener Qualität eine stärkere Kompression erreicht. x264 basiert dabei auf dem komplexesten und leistungsfähigsten Profil, dem High Profile, des H.264 Standards (Details im entsprechenden Artikel). Außerdem ist x264 in der Lage, gewisse Berechnungen parallel auszuführen, so dass Multi-Prozessor-Systeme optimal ausgenutzt werden können. Allerdings wurden einige Funktionen des H.264 Standards im x264 Codec (noch) nicht implementiert, so etwa die Fehlerkorrektur oder die Verarbeitung von interlaced Videos. Zumindest im aktuellen Entwicklungszustand liefert der proprietäre H.264 Codec von Ateme (Bestandteil von Nero Digital) eine bessere Qualität als der x264 Codec. Beachtet werden sollte auch, dass x264, wie jeder H.264 Codec, deutlich rechenintensiver ist als die einfacheren, MPEG-4 ASP basierten Codecs. Somit erfordert die Encodierung mehr Zeit und für die Wiedergabe werden höhere Anforderungen an das System gestellt. Zudem ist x264 in seiner frühen Entwicklungsphase noch nicht sehr auf Geschwindigkeit hin optimiert. Zur Zeit wird der Codec aber ständig weiter optimiert.

Unterstützte H.264 Features

  • CAVLC/CABAC
  • Multiple-Referenzen
  • Intra-Frames: Alle Makroblock Typen (16x16, 8x8, und 4x4 mit allen Prognosen)
  • Innerhalb von P-Frames: Alle Partitionsgrößen (von 16x16 bis 4x4)
  • Innerhalb von B-Frames: Partitionen von 16x16 bis 8x8 (inklusive überspringen/direkt)
  • Raten-Kontrolle: Konstante Quantisierung, Mittlere Datenrate mit einem oder mehreren Durchläufen
  • Szenen-Wechsel Erkennung
  • Adaptive B-Frame Steuerung
  • B-Frames als Referenz / Beliebige Frame Reihenfolge
  • 8x8 und 4x4 adaptive räumliche Transformierung
  • Verlustfreie Kompression (optional)
  • Benutzerdefinierte Quantisierungs-Matrizen
  • Paralleles Encodieren mehrerer Videoströme
  • Gemischte Referenz-Frames für Sub-Makroblöcke
  • Integrierter Deblocking-Filter

Open Source

x264 ist Open Source, d.h. der Quellcode ist frei verfügbar, sodass man das Programm selber kompilieren kann. Dabei ist es möglich das Programm auf den eigenen Prozessor bzw. das Betriebssystem anzupassen. Auf der x264 Homepage findet man zum aktuellen Zeitpunkt noch keine offiziellen Builds, sondern nur die jeweils aktuellste Fassung des Quellcodes. Allerdings sind bereits diverse inoffizielle Builds verfügbar, so dass auch Anwender ohne spezielle Kenntnisse den x264 Codec einfach installieren und nutzen können. Fertige Builds gibt es zum Beispiel für Windows (32-Bit), Linux oder Mac OS X. Builds für die 64-Bit Edition von Windows befinden sich zur Zeit in der Entwicklung. Die gebräuchlichsten x264 Builds für Windows dürften momentan wohl die von Sharktooth aus dem englischsprachigen Doom9.org Forum sein. Dort sind fast täglich Updates verfügbar.

Abspielen

Im Gegensatz zu beispielsweise XviD oder DivX beinhaltet der x264 Codec keinen Decoder. Um Videos, die mit x264 komprimiert wurden, auf dem PC abspielen zu können, benötigt man daher zusätzliche Software. Da solche Videos dem H.264 Standard entsprechen, kann man theoretisch jeden H.264 kompatiblen Decoder verwenden. Unter Windows ist zurzeit der ffdshow besonders empfehlenswert. Es handelt sich dabei um einen DirectShow-Filter, der neben H.264 auch viele andere Bild- und Tonformate decodieren kann. Neben der Installation von ffdshow ist natürlich auch das Vorhandensein eines DirectShow basierten Multimedia-Players wie beispielsweise dem Windows Media Player oder dem Media Player Classic notwendig. Eine Alternative stellt der VLC Media Player dar, der völlig unabhängig von DirectShow arbeitet, aber standardmäßig die Decodierung von H.264 beherrscht. Beachtet werden sollte, dass sowohl der ffdshow Filter als auch der VLC Player zur Decodierung von H.264 auf den libavcodec zurückgreifen. Dieser unterstützt jetzt auch benutzerdefinierte Quantisierungsmatrizen.

Da x264 nicht an ein bestimmtes Containerformat gebunden ist, können die Videos als AVI, MKV, OGM oder auch MP4 Datei vorliegen. Man benötigt neben einem Decoder also auch einen Splitter (Demuxer), der das jeweilig benutzte Containerformat unterstützt. Unter Windows ist dafür der Haali Media Splitter zu empfehlen, ein Quellenfilter für DirectShow, der nahezu alle relevanten Containerformate berherrscht. Zusammenfassend gilt also: Zum Erstellen eines Videos benötigt man den x264-Encoder, zum Abspielen dagegen den ffdshow-Filter, einen DirectShow-basierten Player und eventuell noch den Haali Media Splitter.

Derzeit gibt es leider noch keine Standalone-Player, die x264-komprimierte Videos abspielen können. Die Videos lassen sich daher im Moment nur auf dem PC abspielen. Da die ersten H.264 fähigen Standalone-Player das High-Profile wohl nicht unterstützen werden, wird auch auf solchen Playern mit Problemen zu rechnen sein. Sonys PSP und Apples iPod Video können bereits x264 abspielen, unterstützen jedoch nicht alle Features und sind auf bestimmte Profile und Levels beschränkt.

Weiterführendes:

  1. The x264 Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).