Zum Inhalt springen

„X264“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
MuldeR (Diskussion | Beiträge)
Schrulnzl (Diskussion | Beiträge)
Löschen von veralteten Angaben / unerreichbare Quellen
 
(572 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
{{Korrekter Titel|x264}}
{{SEITENTITEL:x264}}
{{Infobox Software

|Name = x264
{{Infobox_Software|
|Logo =
Name= x264
|Screenshot=
|Screenshot =
|Beschreibung= freier [[H.264]] [[Encoder]]
|Beschreibung = freier [[H.264]]-[[Kodierer]]
|Maintainer =
|Hersteller= Video LAN
|Hersteller = x264-Team
|AktuelleVersion= rev. 330
|Erscheinungsjahr =
|AktuelleVersionFreigabeDatum= [[15. Oktober]] [[2005]]
|AktuelleVersion = <!-- von wikidata -->
|Betriebssystem= [[Microsoft Windows|Windows]]
|AktuelleVorabVersion =
|Kategorie= [[Videokompression]]
|AktuelleVorabVersionFreigabeDatum =
|Lizenz= [[GNU General Public License|GPL]]
|Betriebssystem = [[Plattformunabhängigkeit|plattformunabhängig]]
|Deutsch= nein
|Programmiersprache = [[Varianten der Programmiersprache C|ISO-C]]
|Website= [http://www.videolan.org/x264 videolan.org]
|Kategorie = [[Videokompression]]
|Lizenz = [[GNU General Public License|GPL]], [[Proprietäre Software|proprietär]] (wahlweise)
|Deutsch =
|Website = [https://www.videolan.org/developers/x264.html videolan.org/developers/x264.html]
|Dateien =
}}
}}


'''x264''' ist ein [[Plattformunabhängigkeit|plattformübergreifender]] [[Encoder]] für das Video-Format [[H.264]] (MPEG-4 AVC) und wird unter der [[GNU General Public License]] veröffentlicht.
'''x264''' ist ein freier [[H.264]] (auch MPEG-4 AVC) [[Encoder]] und wird unter der [[GNU General Public License|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.

Die x264-Kodierer-Bibliothek wird von Laurent Aimar, Loren Merritt, Fiona Glaser, Eric Petit, Min Chen, Justin Clay, Måns Rullgård, Radek Czyz, Christian Heine, Holger Lubitz, Alex Izvorski und Alex Wright entwickelt. Der Programmcode ist in [[Varianten der Programmiersprache C|ISO-C]] geschrieben.


== Bedienung ==
== Bedienung ==
Der x264-Kodierer wird u.&nbsp;a. als [[Kommandozeile]]nprogramm (CLI) zur Verfügung gestellt. Das Programm kann als Quelle unkomprimierte Rohdaten ([[YCbCr-Farbmodell]] [[4:2:0]]-Format), [[AviSynth]]-Skripte sowie alle von [[FFmpeg]] lesbaren Formate verarbeiten.<ref>FFMS2/libav*-Patch ({{Webarchiv|text=x264-git |url=http://git.videolan.org/gitweb.cgi?p=x264.git;a=commit;h=8b9dcd8d50be201f1bedc9b19331432969f37d98 |wayback=20110921011957}})</ref>
Das Kodieren erfolgt entweder über ein [[Kommandozeile|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 [[Rohdatenformat|Raw-Stream]], der dann von anderen Programmen verarbeitet werden und beispielsweise als [[AVI]] oder [[MKV]] ausgegeben werden kann.


Alternativ dazu gibt es verschiedene [[grafische Benutzeroberfläche]]n, die die Bedienung des CLI-Kodierers vereinfachen. Die populärsten sind StaxRip, [[MeGUI]], [[Gordian Knot]], [[HandBrake]] und x264gtk. Auch der plattformunabhängige Video-Editor [[Avidemux]] bietet die Möglichkeit, Videos mit x264 zu enkodieren. Darüber hinaus ist ein [[Wrapper (Software)|Wrapper]] für die [[Video for Windows|Video-for-Windows]]-Schnittstelle (VfW) verfügbar, der die Verwendung von x264 in [[VirtualDub]] ermöglicht. Allerdings unterliegt das VfW-Interface von x264 einigen Einschränkungen und wird von den Entwicklern nicht empfohlen. Um dieser Empfehlung Nachdruck zu verleihen, wurde die VfW-Version mittlerweile eingestellt. Mit ''DTS x264 VfW'' existiert eine inoffizielle Version, die die Kompatibilität mit dem AVI-Format wieder herstellt, die Dekodierung von Videos unterstützt und wie gewohnt verwendet werden kann.<ref>Codecs.com: {{Webarchiv|text=DTS x264 VfW |url=http://www.free-codecs.com/download/DTS_x264_VfW.htm |wayback=20080301235335}}</ref> Eine weitere Möglichkeit, den x264-Kodierer über ein Kommandozeilen-Interface zu verwenden, ist mit [[MPlayer|MEncoder]] oder FFmpeg gegeben.
== Technisches ==
Als H.264 Enkoder arbeitet x264 deutlich effizienter als Codecs, die auf dem einfacheren [[MPEG-4|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 [[SMP|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 [[Deinterlace|interlaced]] Videos. Zumindest im aktuellen Entwicklungszustand liefert der [[Proprietär|proprietäre]] H.264 Codec von Ateme (Bestandteil von [[Nero (Software)|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.


== Technische Details ==
=== Unterstützte H.264 Features ===
Als H.264-Kodierer arbeitet x264 deutlich effizienter als Kodierer, die auf dem einfacheren [[MPEG-4#Videodekodierung|MPEG-4 ASP]] basieren (etwa der [[DivX]]-Codec bis v6), oder solche Kodierer, die das noch ältere [[MPEG-2#MPEG-2 Video|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 unterstützt auch die anspruchsvolleren Profile wie etwa das ''High Profile'' und ''Hi10p'' des H.264-Standards (Details im entsprechenden Artikel). Außerdem ist x264 in der Lage, gewisse Berechnungen parallel auszuführen, sodass [[Symmetrisches Multiprozessorsystem|symmetrische Multiprozessorsysteme]] optimal ausgenutzt werden können. Allerdings wurden einige Funktionen des H.264-Standards im x264-Codec (noch) nicht implementiert, so etwa die Fehlerkorrektur des ''Baseline Profile''. 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. Die Wiedergabe mit Prozessoren unter 800 MHz kann daher Probleme bereiten, insbesondere wenn diese nicht über den [[Streaming SIMD Extensions|SSE]]-Befehlssatz verfügen.
Seit r1480 ist es mit dem x264-Encoder möglich, der [[Blu-ray Disc|Blu-ray-Disc]]-Spezifikation entsprechende Bitströme zu generieren und ihn somit bei der Erstellung von Blu-ray-Discs einzusetzen.


=== Unterstützte H.264-Merkmale ===
* CAVLC/CABAC
* [[Context Adaptive Variable Length Coding|CAVLC]]/[[Context-Adaptive Binary Arithmetic Coding|CABAC]]
* Multiple-Referenzen
* Multiple Referenzen
* Intra-Frames: Alle Makroblock Typen (16x16, 8x8, und 4x4 mit allen Prognosen)
* Intra-Frames: Alle Makroblock-Typen (16×16, 8×8 (High Profile), und 4×4 mit allen Prognosen)
* Innerhlab von P-Frames: Alle Partitionsgrößen (von 16x16 bis 4x4)
* Innerhalb von [[P-Bild]]ern: Alle Partitionsgrößen (von 16×16 bis 4×4)
* Innerhlab von B-Frames: Partitionen von 16x16 bis 8x8 (inklusive überspringen/direkt)
* Innerhalb von [[B-Bild]]ern: Partitionen von 16×16 bis 8×8 (inklusive überspringen/direkt)
* Raten-Kontrolle: Konstante Quantisierung, Mittlere Datenrate mit einem oder mehreren Durchläufen
* B-Frames als Referenz / beliebige Frame-Reihenfolge
* Szenen-Wechsel Erkennung
* 8×8 und 4×4 adaptive räumliche Transformierung (High Profile)
* Adaptive B-Frame Steuerung
* [[Verlustfreie Kompression]] (optional)
* B-Frames als Referenz / Beliebige Frame Reihenfolge
* Benutzerdefinierte Quantisierungs-Matrizen (High Profile)
* 8x8 und 4x4 adaptive räumliche Transformierung
* Optimiert für mehrere Prozessoren bzw. [[Mehrkernprozessor]]en
* Verlusfreie Komression (otional)
* Benuterdefinierte Quantisierungs-Matrizen
* Paralleles enkodieren mehrerer Abschnitte
* Gemischte Referenz-Frames für Sub-Makroblöcke
* Gemischte Referenz-Frames für Sub-Makroblöcke
* Integrierter Deblocking-Filter
* Integrierter Deblocking-Filter
* [[Zeilensprungverfahren]] (MBAFF)
* 8-, 9- und 10 bit Sampling-Tiefe
* Unterstützung für 4:2:0, 4:2:2 und 4:4:4 [[Chroma Subsampling]]


== Open Source ==
=== Zusätzliche Merkmale ===
* [[Einzelbild (Film)|Frame]]-basiertes [[Multithreading]], skaliert auf mindestens 16 CPU-Kerne<ref>{{Webarchiv|text=Historical notes: |url=http://git.videolan.org/gitweb.cgi?p=x264.git%3Ba%3Dblob_plain%3Bf%3Ddoc%2Fthreads.txt |wayback=20160304192730}}</ref>
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 [[CPU|Prozessor]] bzw. das [[Betriebssystem]] anzupassen. Auf der x264 Homepage findet man zum aktuellen Zeitpunkt noch ''keine'' offiziellen [[Build|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.
* Verschiedene Modi zur Steuerung der [[Bitrate|Datenrate]]: Konstante Quantisierung, konstante Datenrate, mittlere Datenrate mit einem oder mehreren Durchläufen
* Bitratensteuerung im Makroblock-Baum-Verfahren<ref>http://forum.doom9.org/showthread.php?t=148686</ref>
* Lookahead VBV (Video Buffering Verifier)<ref>http://forum.doom9.org/showthread.php?t=148964</ref>
* Psychovisuell optimierte Abstimmung der Bitrate auf die Bildqualität („Psy RDO“) und [[Trellis-Quantisierung]] („Psy Trellis“)<ref>http://forum.doom9.org/showthread.php?t=138293</ref>
* Variance AQ (Adaptive Quantisierung)<ref>http://forum.doom9.org/showthread.php?t=132760</ref> und AutoVAQ<ref>http://forum.doom9.org/showthread.php?t=147067</ref>
* Optimale adaptive B-Frame Steuerung<ref>http://forum.doom9.org/showthread.php?t=139827</ref>
* Unterstützung mehrerer Slices („Multi-slice“), wird für [[Blu-ray Disc|BluRay]] Kompatibilität benötigt<ref>{{Webarchiv|text=Multi-slice encoding support |url=http://git.videolan.org/gitweb.cgi?p=x264.git;a=commitdiff;h=4d553edf178bf0ae01547731a48e1fb08c5cc1f4 |wayback=20111101145932}}</ref>
* Lookahead-Funktion in einem separaten [[Thread (Informatik)|Thread]] („Threaded lookahead“)<ref>{{Webarchiv|text=Threaded lookahead |url=http://git.videolan.org/gitweb.cgi?p=x264.git;a=commitdiff;h=5b3c89c592e412fc02fd8001ee361ea50c249153 |wayback=20111101145301}}</ref>
* Weighted P-Frame Prediction (entwickelt im Rahmen von [[Google Summer of Code|GSoC 2009]])<ref>{{Webarchiv|text=Weighted P-frame prediction |url=http://git.videolan.org/gitweb.cgi?p=x264.git;a=commit;h=87de2346225721e8ca68a1b59bc87133fc598a42 |wayback=20111101145513}}</ref>
* Bitrate/Qualität-Optimierung
* Szenen-Wechsel-Erkennung
* Verschiedene Bewegungserkennungs-Modi (u.&nbsp;a. Diamond, Hexagon, Multi-Hexagon sowie erschöpfende Suche)
* DCT – Domain Rauschfilter
* RD-Optimierte Quantisierung („Trellis“)


== Abspielen ==
== Projekte mit x264 ==
* [[Avidemux]]
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 [[Microsoft_Windows_Media_Player|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.
* [[ffdshow]]
* [[FFmpeg]]
* [[HandBrake]]
* [[MEncoder]]
*[[Open Broadcaster Software]] (OBS)
* [[VLC media player]]
* [[MPlayer]]
* [[VirtualDub]]
* [[Linphone]]
* [[XMedia Recode]]
* [[OGMRip]]
* [[Voukoder]]


== Freie und Open-Source-Software ==
Da x264 nicht an ein bestimmtes [[Containerformat]] gebunden ist, können die Videos als [[avi|.avi]], .[[matroska|mkv]], [[ogg|.ogm]] oder auch [[MP4|.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.
{{Veraltet| dieses Abschnitts | |seit=2010}}
x264 ist eine [[Freie Software|freie]] [[Open Source|Open-Source]]-Software ([[FOSS]]). Dies bedeutet unter anderem, dass der [[Quelltext]] [[Freie Software|frei]] verfügbar ist und man somit das Programm selbst [[Compiler|kompilieren]] kann. Dabei ist es möglich, das Programm an den eigenen [[Hauptprozessor]] und das [[Betriebssystem]] anzupassen. Auf der x264-Homepage findet man keine offiziellen [[Versionierung|Builds]], sondern nur die jeweils aktuelle Fassung des Quellcodes. Allerdings sind 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 [[Microsoft Windows|Windows]] ([[32-Bit-Architektur|32-]] und [[64-Bit-Architektur|64-Bit]]), [[Linux]] oder [[macOS]].


Am 14. Juli 2010 hat Jason Garrett-Glaser, der derzeitige Projektleiter, bekannt gegeben, dass x264 ab sofort auch mit einer kommerziellen [[Softwarelizenz|Lizenz]] erworben werden kann, damit Lizenznehmer die Software auch vertreiben können, ohne (selbst) den [[Quellcode]] anbieten zu müssen.<ref>{{Internetquelle | autor=Volker Zota | url=https://www.heise.de/newsticker/meldung/Kommerzielle-Lizenzen-fuer-H-264-Encoder-x264-1037582.html | titel=Kommerzielle Lizenzen für H.264-Encoder x264 | werk=[[Heise online|heise.de]] | datum=2010-07-14 | abruf=2024-02-03}}</ref>
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.
Die günstigste Lizenzgebühr soll $10.000 für 10.000 [[Encoder]]-Einheiten betragen.<ref>http://mailman.videolan.org/pipermail/x264-devel/2010-July/007508.html</ref> Der erste Lizenznehmer ist ''Pegasys TMPGEnc''.<ref>{{Webarchiv|text=Diary Of An x264 Developer |url=http://x264dev.multimedia.cx/archives/584 |wayback=20101130153612}}</ref>


== Weblinks ==
== Weblinks ==
* [http://developers.videolan.org/x264.html Offizielle x264 Webseite] (Auf dieser Webseite gibt es ''keine'' fertigen [[Build|Builds]] von x264)
* [http://www.videolan.org/developers/x264.html Offizielle x264-Webseiten]
* Download fertiger x264-Builds für Windows:
* Aktuelle x264 Builds für Windows gibt es u.a. von [http://forum.doom9.org/showthread.php?t=89979 Sharktooth] (Mirror auf [http://www.free-codecs.com/download/x264_Video_Codec.htm Free-Codecs.com]), [http://x264.nl Jarod] und [http://www.aziendeassociate.it/cd.asp?dir=/x264 Celtic Druid]
** [http://sourceforge.net/projects/x264vfw/ BugMasters aktuelle VfW-Builds]
* ffdshow Builds für Windows findet man bei [http://www.free-codecs.com/download/FFDShow.htm Free-Codecs.com], [http://www.afterdawn.com/software/video_software/codecs_and_filters/ffdshow.cfm AfterDawn.com], [http://www.aziendeassociate.it/cd.asp?dir=/ffdshow Celtic Druid] und [http://x264.nl/ Jarod]
** [http://www.free-codecs.com/download/x264_Video_Codec.htm Free-Codecs.com]
* [http://developers.videolan.org/svn.html Aktuelle Quell-Codes von x264]
* Weiterführende Links
** [http://encodingwissen.de/x264 Brother John - Das Encodingwissen] Ausführliche deutsche Beschreibung der technischen Details und Syntax
** [http://www.avidemux.org/admWiki/index.php?title=H264#H.264.2FAVC_options_explained Ausführlicher Guide für x264 im Avidemux-Wiki] (englisch)
** [http://akuvian.org/src/x264/overview_x264_v8_5.pdf Detaillierter Vergleich zwischen x264 und dem JM Referenz-Encoder] (englisch; PDF; 284&nbsp;kB)


== Einzelnachweise ==
Weiterführendes:
<references />
* [http://movie2digital.de/hp/index.php?option=com_content&task=view&id=130&Itemid=76 Wissenswertes über x264 (von Selur)]
* [http://home.arcor.de/brotherjohn/x264_config.html Tutorial zur Konfiguration von x264 (von Brother John)]
* [http://www.uni-hiltrup.de/vergleich/vergleich.html Vergleich von XviD und x264]
* [http://www.uni-hiltrup.de/howtox264/howtox264de.html Anleitung: Abspielen von x264-Videos]
* [http://forum.doom9.org/showthread.php?p=674819#post674819 Infos über H.264 auf Doom9.org (englisch)]


[[Kategorie:Videokompression]]
[[Kategorie:Videokompression]]
[[Kategorie:Codec]]
[[Kategorie:Codec]]


[[en:X264]]
[[pt:H.264#x264]]
[[fr:X264]]
[[ja:X264]]

Aktuelle Version vom 25. Mai 2025, 17:13 Uhr

x264

Basisdaten

Entwickler x264-Team
Aktuelle Version x264 r3107[1]
(23. April 2023)
Betriebssystem plattformunabhängig
Programmier­sprache ISO-C
Kategorie Videokompression
Lizenz GPL, proprietär (wahlweise)
videolan.org/developers/x264.html

x264 ist ein plattformübergreifender Encoder für das Video-Format H.264 (MPEG-4 AVC) und wird unter der GNU General Public License veröffentlicht.

Die x264-Kodierer-Bibliothek wird von Laurent Aimar, Loren Merritt, Fiona Glaser, Eric Petit, Min Chen, Justin Clay, Måns Rullgård, Radek Czyz, Christian Heine, Holger Lubitz, Alex Izvorski und Alex Wright entwickelt. Der Programmcode ist in ISO-C geschrieben.

Der x264-Kodierer wird u. a. als Kommandozeilenprogramm (CLI) zur Verfügung gestellt. Das Programm kann als Quelle unkomprimierte Rohdaten (YCbCr-Farbmodell 4:2:0-Format), AviSynth-Skripte sowie alle von FFmpeg lesbaren Formate verarbeiten.[2]

Alternativ dazu gibt es verschiedene grafische Benutzeroberflächen, die die Bedienung des CLI-Kodierers vereinfachen. Die populärsten sind StaxRip, MeGUI, Gordian Knot, HandBrake und x264gtk. Auch der plattformunabhängige Video-Editor Avidemux bietet die Möglichkeit, Videos mit x264 zu enkodieren. Darüber hinaus ist ein Wrapper für die Video-for-Windows-Schnittstelle (VfW) verfügbar, der die Verwendung von x264 in VirtualDub ermöglicht. Allerdings unterliegt das VfW-Interface von x264 einigen Einschränkungen und wird von den Entwicklern nicht empfohlen. Um dieser Empfehlung Nachdruck zu verleihen, wurde die VfW-Version mittlerweile eingestellt. Mit DTS x264 VfW existiert eine inoffizielle Version, die die Kompatibilität mit dem AVI-Format wieder herstellt, die Dekodierung von Videos unterstützt und wie gewohnt verwendet werden kann.[3] Eine weitere Möglichkeit, den x264-Kodierer über ein Kommandozeilen-Interface zu verwenden, ist mit MEncoder oder FFmpeg gegeben.

Technische Details

[Bearbeiten | Quelltext bearbeiten]

Als H.264-Kodierer arbeitet x264 deutlich effizienter als Kodierer, die auf dem einfacheren MPEG-4 ASP basieren (etwa der DivX-Codec bis v6), oder solche Kodierer, 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 unterstützt auch die anspruchsvolleren Profile wie etwa das High Profile und Hi10p des H.264-Standards (Details im entsprechenden Artikel). Außerdem ist x264 in der Lage, gewisse Berechnungen parallel auszuführen, sodass symmetrische Multiprozessorsysteme optimal ausgenutzt werden können. Allerdings wurden einige Funktionen des H.264-Standards im x264-Codec (noch) nicht implementiert, so etwa die Fehlerkorrektur des Baseline Profile. 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. Die Wiedergabe mit Prozessoren unter 800 MHz kann daher Probleme bereiten, insbesondere wenn diese nicht über den SSE-Befehlssatz verfügen. Seit r1480 ist es mit dem x264-Encoder möglich, der Blu-ray-Disc-Spezifikation entsprechende Bitströme zu generieren und ihn somit bei der Erstellung von Blu-ray-Discs einzusetzen.

Unterstützte H.264-Merkmale

[Bearbeiten | Quelltext bearbeiten]
  • CAVLC/CABAC
  • Multiple Referenzen
  • Intra-Frames: Alle Makroblock-Typen (16×16, 8×8 (High Profile), und 4×4 mit allen Prognosen)
  • Innerhalb von P-Bildern: Alle Partitionsgrößen (von 16×16 bis 4×4)
  • Innerhalb von B-Bildern: Partitionen von 16×16 bis 8×8 (inklusive überspringen/direkt)
  • B-Frames als Referenz / beliebige Frame-Reihenfolge
  • 8×8 und 4×4 adaptive räumliche Transformierung (High Profile)
  • Verlustfreie Kompression (optional)
  • Benutzerdefinierte Quantisierungs-Matrizen (High Profile)
  • Optimiert für mehrere Prozessoren bzw. Mehrkernprozessoren
  • Gemischte Referenz-Frames für Sub-Makroblöcke
  • Integrierter Deblocking-Filter
  • Zeilensprungverfahren (MBAFF)
  • 8-, 9- und 10 bit Sampling-Tiefe
  • Unterstützung für 4:2:0, 4:2:2 und 4:4:4 Chroma Subsampling

Zusätzliche Merkmale

[Bearbeiten | Quelltext bearbeiten]
  • Frame-basiertes Multithreading, skaliert auf mindestens 16 CPU-Kerne[4]
  • Verschiedene Modi zur Steuerung der Datenrate: Konstante Quantisierung, konstante Datenrate, mittlere Datenrate mit einem oder mehreren Durchläufen
  • Bitratensteuerung im Makroblock-Baum-Verfahren[5]
  • Lookahead VBV (Video Buffering Verifier)[6]
  • Psychovisuell optimierte Abstimmung der Bitrate auf die Bildqualität („Psy RDO“) und Trellis-Quantisierung („Psy Trellis“)[7]
  • Variance AQ (Adaptive Quantisierung)[8] und AutoVAQ[9]
  • Optimale adaptive B-Frame Steuerung[10]
  • Unterstützung mehrerer Slices („Multi-slice“), wird für BluRay Kompatibilität benötigt[11]
  • Lookahead-Funktion in einem separaten Thread („Threaded lookahead“)[12]
  • Weighted P-Frame Prediction (entwickelt im Rahmen von GSoC 2009)[13]
  • Bitrate/Qualität-Optimierung
  • Szenen-Wechsel-Erkennung
  • Verschiedene Bewegungserkennungs-Modi (u. a. Diamond, Hexagon, Multi-Hexagon sowie erschöpfende Suche)
  • DCT – Domain Rauschfilter
  • RD-Optimierte Quantisierung („Trellis“)

Projekte mit x264

[Bearbeiten | Quelltext bearbeiten]

Freie und Open-Source-Software

[Bearbeiten | Quelltext bearbeiten]

x264 ist eine freie Open-Source-Software (FOSS). Dies bedeutet unter anderem, dass der Quelltext frei verfügbar ist und man somit das Programm selbst kompilieren kann. Dabei ist es möglich, das Programm an den eigenen Hauptprozessor und das Betriebssystem anzupassen. Auf der x264-Homepage findet man keine offiziellen Builds, sondern nur die jeweils aktuelle Fassung des Quellcodes. Allerdings sind 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- und 64-Bit), Linux oder macOS.

Am 14. Juli 2010 hat Jason Garrett-Glaser, der derzeitige Projektleiter, bekannt gegeben, dass x264 ab sofort auch mit einer kommerziellen Lizenz erworben werden kann, damit Lizenznehmer die Software auch vertreiben können, ohne (selbst) den Quellcode anbieten zu müssen.[14] Die günstigste Lizenzgebühr soll $10.000 für 10.000 Encoder-Einheiten betragen.[15] Der erste Lizenznehmer ist Pegasys TMPGEnc.[16]

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. artifacts.videolan.org.
  2. FFMS2/libav*-Patch (x264-git (Memento vom 21. September 2011 im Internet Archive))
  3. Codecs.com: DTS x264 VfW (Memento vom 1. März 2008 im Internet Archive)
  4. Historical notes: (Memento vom 4. März 2016 im Internet Archive)
  5. http://forum.doom9.org/showthread.php?t=148686
  6. http://forum.doom9.org/showthread.php?t=148964
  7. http://forum.doom9.org/showthread.php?t=138293
  8. http://forum.doom9.org/showthread.php?t=132760
  9. http://forum.doom9.org/showthread.php?t=147067
  10. http://forum.doom9.org/showthread.php?t=139827
  11. Multi-slice encoding support (Memento vom 1. November 2011 im Internet Archive)
  12. Threaded lookahead (Memento vom 1. November 2011 im Internet Archive)
  13. Weighted P-frame prediction (Memento vom 1. November 2011 im Internet Archive)
  14. Volker Zota: Kommerzielle Lizenzen für H.264-Encoder x264. In: heise.de. 14. Juli 2010, abgerufen am 3. Februar 2024.
  15. http://mailman.videolan.org/pipermail/x264-devel/2010-July/007508.html
  16. Diary Of An x264 Developer (Memento vom 30. November 2010 im Internet Archive)