CodecsVideocodecs
Die Codecstatustabelle ist eine vollständige
Liste aller unterstützten Codecs, die täglich neu erstellt wird.
Einige Binärcodecs zum Gebrauch mit MPlayer sind im
Downloadbereich
unserer Homepage verfügbar.
Die Allerwichtigsten:
MPEG-1 (VCD) und
MPEG-2 (DVD) Video
Native Decoder für
alle DivX-Varianten, 3ivX, M$ MPEG-4
v1, v2 und andere MPEG-4 Varianten
Nativer Decoder für Windows Media Video 7/8
(WMV1/WMV2) und Win32 DLL Decoder
für Windows Media Video 9
(WMV3), beide in Gebrauch in .wmv-Dateien
Nativer Sorenson 1 (SVQ1) Decoder
Nativer Sorenson 3 (SVQ3) Decoder
3ivx v1, v2 Decoder
Cinepak und Intel Indeo Codecs (3.1,3.2,4.1,5.0)
MJPEG, AVID, VCR2, ASV2 und andere Hardwareformate
VIVO 1.0, 2.0, I263 und andere H.263(+)-Varianten
FLI/FLC
RealVideo 1.0 & 2.0 von
libavcodec und
RealVideo 3.0 & 4.0 Codecs mittels der RealPlayer Bibliotheken
Native Decoder für HuffYUV
Verschiedene alte und simple RLE-ähnliche Formate
Falls du einen Win32 Codec hast, der hier nicht aufgeführt ist und noch nicht unterstützt wird, lies bitte die
Codec Importing HOWTO
und hilf uns, Unterstützung hinzuzufügen.
FFmpeg/libavcodecFFmpeg enthält libavcodec,
die führende Open-Source-Bibliothek für Video und Audio. Sie ist in der Lage, die meisten
Multimedia-Formate zu decodieren, normalerweise schneller als die Alternativen;
möglicherweise wird auch noch Unterstützung für die anderen Formate hinzugefügt.
Es ist der Standarddecoder für den Großteil der Codecs, die MPlayer
unterstützt. Für manche Formate ist außerdem auch Encodierung mit Hilfe von
MEncoder möglich.
Für eine vollständige Liste unterstützter Codecs besuche bitte die FFmpeg Homepage.
Unterstützte Video-
und Audiocodecs.
MPlayer enthält libavcodec.
Es genügt, configure laufen zu lassen und zu compilieren.
XviDXviD ist ein freier MPEG-4 ASP konformer
Videocodec, der Encodierung in zwei Durchläufen und das ganze MPEG-4 ASP Spektrum
unterstützt, was ihn wesentlich effizienter als den gut bekannten DivX-Codec macht.
Er erreicht sehr gute Qualität und dank CPU-Optimierungen für die meisten modernen
Prozessoren gute Performance.
Es begann als Fork der Entwicklung des OpenDivX-Codecs.
Dies geschah, als ProjectMayo OpenDivX zu Closed Source DivX4
machte und die Leute, die an OpenDivX arbeiteten aber nicht zu ProjectMayo gehörten,
verärgerte. Diese riefen dann XviD ins Leben. Beide Projekte haben daher denselben Ursprung.
Beachte, dass XviD nicht benötigt wird, um mit XviD encodiertes Video zu decodieren.
In der Standardkonfiguration wird dafür libavcodec
benutzt, da er höhere Geschwindigkeit bietet.
Installation von XviD
Wie die meiste Open-Source-Software gibt es zwei verfügbare Varianten:
offizielle Releases
und die CVS-Version.
Die CVS-Version ist für die Benutzung normalerweise stabil genug, da es meistens
Fehlerbehebungen für Bugs enthält, die im Release vorhanden sind.
Hier also, was du zu tun hast, um XviD
vom CVS mit MEncoder ans Laufen zu bringen
(du benötigst mindestens autoconf 2.50,
automake und libtool):
cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid logincvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcorecd xvidcore/build/generic./bootstrap.sh./configure
Du musst möglicherweise ein paar Optionen hinzuzufügen (schaue dir
die Ausgabe von ./configure --help an).
make && make install
Wenn du angegeben hast,
kopiere ../../src/divx4.h nach
/usr/local/include/.
Compiliere MPlayer erneut mit
.
x264Was ist x264?x264
ist eine Bibliothek für die
Erstellung von H.264-Videostreams.
Es ist nicht 100% vollständig, hat momentan aber zumindest eine Art
Unterstützung für die meisten H.264-Features, die Einfluß auf die Qualität haben.
Es gibt außerdem viele fortgeschrittene Features in der H.264-Spezifikation,
die mit Videoqualität per se nichts zu tun haben; viele davon sind in
x264 nicht implementiert.
Encoder-FeaturesCAVLC/CABACmehrere Referenzen
Intra: alle Macroblock-Typen (16x16, 8x8, and 4x4 mit allen Vorhersagen)
Inter P: Alle Partitionen (von 16x16 bis runter zu 4x4)
Inter B: Partitionen von 16x16 runter zu 8x8 (inklusive SKIP/DIRECT)
Bitratenkontrolle: konstanter Quantisierungsparameter, konstante Bitrate,
einer oder mehrere Durchläufe mit durchschnittlicher Bitrate (optional VBV)
SzenenwechselerkennungAdaptive Platzierung von B-FramesB-Frames als Referenzen / bieliebige Framereihenfolge8x8 und 4x4 adaptive räumliche TransformierungVerlustfreier ModusBenutzerdefinierte QuantisierungsmatrizenParallele Encodierung mehrerer ScheibenWas ist H.264?
H.264 ist ein Name für einen neuen digitalen Videocodec, der von
der ITU und MPEG zusammen entwickelt wurde.
Etwas umständlicher kann man ihn auch "ISO/IEC 14496-10" oder "MPEG-4 Part 10"
nennen. Häufiger wird er als "MPEG-4 AVC" oder einfach "AVC" bezeichnet.
Wie auch immer du ihn nennst, H.264 ist es eventuell wert, ausprobiert
zu werden, da er typischerweise die Qualität von MPEG-4 ASP bei 5%-30%
Einsparung der Bitrate erreicht.
Tatsächliche Ergebnisse werden sowohl vom Quellmaterial als auch dem
Encoder abhängen.
Die Gewinne durch die Benutzung von H.264 kommen nicht umsonst: Decodierung
von H.264-Streams hat anscheinend heftige CPU- und Speicheranforderungen.
Beispielsweise benötigt ein Athlon mit 1733 MHz für ein 1500kbps-H.264-Video
in DVD-Auflösung um die 35% CPU-Leistung für die Decodierung.
Im Vergleich dazu wird für einen 1500kbps MPEG-4 ASP Stream um die 10% CPU-Leistung gebraucht.
Dies bedeutet, dass Decodierung von High-Definition-Streams für die
meisten Benutzer außer Frage steht.
Es bedeutet auch, dass sogar ein ordentlicher DVD-Rip auf Prozessoren
langsamer als 2.0 GHz oder so ins Stocken geraten kann.
Zumindest bei x264 sind die Anforderungen
für die Encodierung nicht so viel schlimmer als das, was du von
MPEG-4 ASP bereits kennst.
Beispielsweise läuft eine DVD-Encodierung auf einem 1733 MHz Athlon bei
etwa 5-15 fps.
Dieses Dokument hat nicht die Absicht, die Details von H.264 zu erklären,
wenn du aber an einer ausführlichen Übersicht interessiert bist, kannst du dir
The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions
durchlesen.
Wie kann ich H.264-Videos mit MPlayer abspielen?MPlayer benutzt den H.264-Decoder von
libavcodec.
libavcodec hat minimal nutzbare
H.264-Decodierung seit etwa Juli 2004, seitdem wurden jedoch große Änderungen
und Verbesserungen implementiert, sowohl hinsichtlich mehr unterstützten Funktionen
als auch CPU-Last.
Um einfach sicher zu sein, ist es immer eine gute Idee, einen aktuellen
Subversion-Checkout zu verwenden.
Eine schnelle und einfache Methode, festzustellen, ob kürzlich Änderungen am
H.264-Decoder von libavcodec gemacht
wurden, wirf einen Blick auf
das Web-Interface des Subversion-Repository von FFmpeg.
Wie kann ich Videos mit MEncoder und x264 encodieren?
Wenn du den Subversion-Client installiert hast, erhältst du die aktuellen
Sourcen mit folgendem Befehl:
svn co svn://svn.videolan.org/x264/trunk x264MPlayer-Sourcen werden immer aktualisiert, wenn sich
die API von x264 ändert, daher ist
es immer gut, auch MPlayer von Subversion zu benutzen.
Möglicherweise ändert sich das, wenn und falls es ein
x264-"Release" gibt.
Bis dahin sollte x264
hinsichtlich der Programmierschnittstelle als sehr unstabil betrachtet werden.
x264 wird gebaut und installiert
nach Standardmethode:
./configure && make && sudo make install
Dies installiert libx264.a nach /usr/local/lib, und x264.h landet in
/usr/local/include.
Mit der x264-Bibliothek und dem Header
in den Standardverzeichnissen ist es leicht, MPlayer
mit x264-Unterstützung zu bauen.
Führe die Standardformel aus:
./configure && make && sudo make install
Das configure-Script wird automatisch erkennen, dass du die Bedingungen
für x264 erfüllst.
AudiocodecsDie allerwichtigsten Audiocodecs:
MPEG layer 1/2/3 (MP1/2/3) Audio (nativer
Decoder, mit MMX/SSE/3DNow! Optimierung)
Windows Media Audio 7 und 8 (alias WMAv1 und WMAv2) (nativer Decoder, mit
libavcodec)
Windows Media Audio 9 (WMAv3) (unter Verwendung der DMO-DLL)
AC3 Dolby Audio (nativer Decoder, mit
MMX/SSE/3DNow! Optimierung)
AC3-Passthrough unter Verwendung der Soundkartenhardware
AAC
Ogg Vorbis Audiocodec (native Bibliothek)
RealAudio: DNET (AC3 mit niedriger Bitrate), Cook, Sipro and ATRAC3
QuickTime: Qualcomm und QDesign Audio Decoder
VIVO Audio (g723, Vivo Siren)
Voxware Audio (unter Verwendung der DirectShow-DLL)
alaw und ulaw, verschiedene gsm, adpcm und pcm Formate und andere einfache alte
Audiocodecs
Adaptive Multi-Rate (AMR) Sprachcodecs
Software-AC3-Decoder
Das ist der Standarddecoder für Dateien, die AC3-Audio enthalten.
Der AC3-Decoder kann Audio für zwei, vier oder sechs Lautsprecher ausgeben.
Wenn er für sechs Lautsprecher konfiguriert wurde, stellt der Decoder dem
Audiotreiber alle Kanäle separat zur Verfügung und erlaubt so volle
"Surround"-Erfahrung ohne einen externen AC3 Decoder, der gebraucht wird,
um hwac3 zu benutzen.
Benutze die Option , um die Anzahl der Kanäle
anzugeben. Mit wird Stereo-Klang erzeugt.
Für eine 4-Kanal-Ausgabe (links vorne, rechts vorne, links Surround und
rechts Surround) verwende . In diesem
Fall wird der Kanal Center gleichmäßig auf die vorderen Kanäle verteilt.
gibt alle AC3-Kanäle aus, wie sie codiert
wurden - in der Reihenfolge links vorne, rechts vorne, links Surround, rechts
Surround, Center und LFE.
Standard sind zwei Ausgabekanäle.
Um mehr als zwei Ausgabekanäle verwenden zu können, muss OSS verwendet werden,
und die Soundkarte muss die entsprechende Anzahl an Kanälen mittels ioctl
SNDCTL_DSP_CHANNELS unterstützen. Ein funktionierender Treiber ist emu10k1
(wird für Soundblaster Live! Karten benutzt) seit August 2001
(Neuere ALSA-Versionen sollten auch funktionieren).
Hardware-AC3-Decoder
Benötigt wird eine AC3 fähige Soundkarte mit einem Digitalausgang (S/PDIF).
Der Treiber der Karte muss das AFMT_AC3 Format korrekt unterstützen (wie
z.B. C-Media). Verbinde dann den Hardware AC3 Decoder mit dem S/PDIF Ausgang
und benutze . Die Unterstützung ist experimentell,
funktioniert aber z.B. mit C-Media Karten und Soundblaster Live! mit ALSA
(aber nicht OSS) Treibern, sowie mit DXR3/Hollywood+ MPEG Decoder Karten.
Unterstützung für libmadlibmad ist
eine Integer-MPEG-Audiodecoder-Bibliothek für mehrere Plattformen, die intern mit
24-bittigem PCM arbeitet. Sie funktioniert nicht sehr gut mit beschädigten
Dateien und hat manchmal Probleme mit Sprüngen (seeks), kann aber auf
Platformen ohne FPU (z.B. ARM) schneller
sein als mp3lib.
Wenn libman bei dir korrekt installiert ist, wird configure
dies bemerken, und Unterstützung für MPEG-Audiodecodierung via
libmad wird automatisch eingebaut.
Hardware-MPEG-Audiodecoder
Dieser Codec (ausgewählt durch ) reicht
MPEG-Audiopakete an Hardwaredecoder durch, wie sie z.B. auf
voll ausgestatteten DVB-Karten und DXR2-Adaptern existieren.
Es bringt nichts, ihn mit einem anderen Gerät (wie z.B. OSS und ALSA)
zu verwenden - das führt lediglich zu Rauschen.
AAC Codec
AAC (Advanced Audio Coding) ist ein Audiocodec, der vorwiegend
in MOV- und MP4-Dateien vorkommt. Ein Open-Source-Decoder namens
FAAD ist auf
verfügbar. MPlayer enthält
eine CVS Version von libfaad 2.1 beta, so dass es nicht extra
installiert werden muss.
Um die externe FAAD-Bibliothek verwenden zu können (z.B. um mit gcc 3.2
compilieren zu können, der die interne Version nicht übersetzt), muss
die Bibliothek von der
Download Seite
heruntergeladen und installiert werden. Anschließend muss die Option
an configure
übergeben werden, damit die externe Bibliothek erkannt wird.
Es ist lediglich erforderlich, vorher libfaad zu installieren, und zwar so:
cd faad2/
sh bootstrap
./configure
cd libfaad
make
make install
Binärpakete sind auf audiocoding.com nicht erhältlich, Debian-Pakete
können aber mit (apt-)get von
Christian Marillat's Homepage, Mandrake/Mandriva RPMs von
P.L.F und RedHat RPMs
von Grey Sector
heruntergeladen werden.
AMR Codecs
Adaptive Multi-Rate Sprachcodec, wird in 3G (UMTS) Mobiltelephonen verwendet.
Die Referenzimplementierung ist auf
The 3rd Generation Partnership Project
erhältlich (frei - wie in Freibier - für private Benutzung).
Für Unterstützung müssen die Codecs
AMR-NB
und
AMR-WB
heruntergeladen und in dasselbe Verzeichnis wie
MPlayer verschoben werden.
Anschließend folgende Befehle ausführen:
unzip 26104-610.zip
unzip 26104-610_ANSI_C_source_code.zip
mv c-code libavcodec/amr_float
unzip 26204-600.zip
unzip 26204-600_ANSI-C_source_code.zip
mv c-code libavcodec/amrwb_float
Befolge danach einfach das Standardvorgehen für die Compilierung von
MPlayer.
HOWTO Win32-Codecs-ImportierungVFW-Codecs
VFW (Video for Windows) ist die alte Video-API von Windows. Deren Codecs hat die
Dateinamenerweiterung .DLL oder (selten) .DRV.
Wenn MPlayer bei der Wiedergabe deines AVIs fehlschlägt
mit einer Meldung wie:
UNKNOWN video codec: HFYU (0x55594648)
..bedeutet dies, dass dein AVI mit einem Codec encodiert ist, der den fourcc HFYU
(HFYU = HuffYUV-Codec, DIV3 = DivX Low Motion, etc.) hat. Da du dies jetzt weißt,
musst du herausfinden, welche DLL Windows lädt, um diese Datei abzuspielen. In
unserem Fall enthält die system.ini diese Information in einer
Zeile, die so aussieht:
VIDC.HFYU=huffyuv.dll
Du benötigst also die Datei huffyuv.dll. Beachte, dass
Audiocodecs mit dem MSACM-Präfix angegeben werden:
msacm.l3acm=L3codeca.acm
Dies ist der MP3-Codec. Da du nun alle nötigen Informationen hast
(fourcc, Codecdatei, Beispiel-AVI), gib eine Anfrage für Codecunterstützung per
Mail auf, und lade diese Dateien auf den FTP-Server hoch:
ftp://upload.mplayerhq.hu/MPlayer/incoming/[Codecname]/
Suche nach dieser Information unter Windows NT/2000/XP in der Registry,
suche also z.B. nach "VIDC.HFYU". Um herauszufinden, wie man das
macht, schaue dir die folgende Methode zu DirectShow an.
DirectShow-Codecs
DirectShow ist die neuere Video-API, die noch schlechter ist als ihr Vorgänger.
Dinge sind schwieriger geworden mit DirectShow, da
system.ini nicht die benötigten Informationen enthält,
die statt dessen in der Registry gespeichert ist.
wir die GUID des Codecs benötigen.
Neue Methode:
Benutzung von Microsoft GraphEdit (schnell)
Beziehe GraphEdit entweder aus dem DirectX-SDK
oder von doom9.
Starte graphedit.exe.
Wähle aus dem Menü Graph -> Insert Filters.
Klappe den Eintrag DirectShow Filters aus.
Wähle den richtigen Codecnamen und klappe den Eintrag aus.
Schaue im Eintrag DisplayName nach dem Text in den
geschweiften Klammern hinter dem Backslash und notiere ihn
(fünf mit Bindestrich getrennte Blöcke, die GUID).
Die Codecbinärdatei ist die Datei, die im Eintrag
Filename angegeben wird.
Wenn dort kein Filename ist und
DisplayName etwas wie
device:dmo enthält, handelt es sich um einen DMO-Codec.
Alte Methode:
Nimm einen tiefen Atemzug und beginne die Suche in der Registry...
Starte regedit.
Drücke Strg+F, deaktiviere die ersten beiden
Checkboxen und aktiviere die dritte. Gib den fourcc des Codecs ein (z.B.
TM20).
Du solltest ein Feld sehen, das den Pfad und den Dateinamen (z.B.
C:\WINDOWS\SYSTEM\TM20DEC.AX) enthält.
Da du jetzt die Datei hast, benötigen wir die GUID. Probiere erneut die
Suche, nun aber nach dem Codecnamen, nicht dem fourcc. Dessen Name kann man
herausfinden, indem man während der Wiedergabe mit Media Player den Eintrag von
Datei -> Eigenschaften ->
Erweitert überprüft.
Wenn dies nicht klappt, hast du Pech. Versuche raten (suche z.B. nach TrueMotion).
Wenn die GUID gefunden wurde, solltest du das Feld FriendlyName
und CLSID sehen. Notiere die 16-Byte-CLSID, das ist die
GUID, die wir brauchen.
Wenn die Suche fehlschlägt, probiere die Aktivierung aller Checkboxen. Es kann sein,
dass du falsche Treffer erhältst, aber vielleicht hast du Glück...
Da du nun alle nötigen Informationen hast (fourcc, Codecdatei, Beispiel-AVI),
gib eine Anfrage für Codecunterstützung per Mail auf, und lade diese Dateien
auf den FTP-Server hoch:
ftp://upload.mplayerhq.hu/MPlayer/incoming/[Codecname]/
Wenn du einen Codec selbst hinzufügen möchtest, lies
DOCS/tech/codecs.conf.txt.