X264

Kodierer für das Video-Format H.264
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 16. Oktober 2005 um 01:19 Uhr durch MuldeR (Diskussion | Beiträge) (Open Source). Sie kann sich erheblich von der aktuellen Version unterscheiden.

x264 ist ein freier H.264 (auch 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.

x264

Basisdaten

Entwickler Video LAN
Aktuelle Version rev. 330
(15. Oktober 2005)
Betriebssystem Windows
Programmier­sprache C[1], Assemblersprache
Kategorie Videokompression
Lizenz GPL
deutschsprachig nein
videolan.org

Bedienung

Das Kodieren erfolgt entweder über ein Kommandozeilenprogramm (CLI) oder über die Video for Windows-Schnittstelle. Über die VFW-Schnittstelle kann x264 in einfacher zu bedienende Programme wie VirtualDub oder GordianKnot eingebunden werden. x264 selbst unterstützt die Ausgabe entweder im MP4-Containerformat oder als Raw-Stream, der dann von anderen Programmen verarbeitet werden und beispielsweise als AVI oder MKV ausgegeben werden kann.

Technisches

Als H.264 Enkoder arbeitet x264 deutlich effizienter als Codecs, die auf dem einfacheren MPEG-4 ASP basieren (etwa der bekannte DivX Codec), oder solche Enkoder, die das noch ältere MPEG-2 Verfahren verwenden. Das bedeutet, im Vergleich zu früheren Codecs liefert x264 bei gegebener Datenrate eine bessere Bildqualität bzw. erreicht bei gegebener Qualität eine stärkere Kompression. x264 basiert dabei auf dem komplexesten und leistugsfähigsten Profil, dem High Profile, des H.264 Standards (Details im enstrpechenden Artikel). Außerden ist x264 dazu in der Lage, gewisse Berechnungen parallel ausführern, so dass Multi-Prozessor-Systeme optimal ausgenutzt werden können. Allerdings wurden einige Funktionen des H.264 Standars 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, das x264 deutlich rechenintensiver ist, als die einfacheren, MPEG-4 ASP basierten Codecs. Somit erfordert die Enkodierung mehr Zeit und für die Wiedergabe werden höhere Anforderungen and 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)
  • Innerhlab von P-Frames: Alle Partitionsgrößen (von 16x16 bis 4x4)
  • Innerhlab 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
  • Verlusfreie Komression (otional)
  • Benuterdefinierte Quantisierungs-Matrizen
  • Paralleles enkodieren mehrerer Abschnitte
  • 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, so dass 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. 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 32-Bit Windows, Linux oder MacOS X. Builds für 64-Bit 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. Es sind fast täglich Updates verfügbar.

Abspielen

Im Gegensatz zu beispielsweise XviD oder DivX beinhaltet der x264 Codec keinen Dekoder. 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 Dekoder 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 dekodieren 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 Dekodierung von H.264 beherrscht.

Da x264 nicht an ein bestimmtes Containerformat gebunden ist, können die Videos als .avi, .mkv, .ogm oder auch .mp4 vorliegen. Man benötigt neben einem Dekoder 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.

Zurzeit 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.

Weiterführendes:

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