Flüssiges 1080p H.264 auf älteren Dualcore-Rechnern mit Mplayer

Mplayer

Mplayer lernt Multithreading

09.03.2009
Der hoch effiziente Codec H.264 ist insbesondere mit dem High-Profile-Feature CABAC (Arithmetische Codierung) extrem rechenintensiv. So rechenintensiv, dass ältere Rechner es nicht flüssig spielen können..

Bei CPUs, die älter sind als Intels Core beziehungsweise AMDs K10-Generation ist bei 720p-Dekodierung meist schon das Limit erreicht - falls nicht eine moderne Nvidia-Grafikkarte mit VDPAU beim Dekodieren zur Hand geht oder der proprietäre, aber sehr schnelle CoreAVC genutzt wird. Dank des Google Summer-of-Code-Projekts ffmpeg-mt kommen aber nun endlich auch ältere Dualcore-Rechner in den Genuss von riesigen HD-Auflösungen. Ffmpeg-mt wendet dabei die bei der Entwicklung des extrem gut skalierenden H.264-Encoders x264 gewonnene Erkenntnisse auf das gesamte ffmpeg-projekt an.

Wir machen die Probe aufs Exempel, kompilieren und installieren mplayer mit ffmpeg-mt-Unterstützung wie auf der Mplayer-Homepage angegeben. Einige wenige Voraussetzungen gibt es zu beachten: Das von Linus Torvalds höchstselbst entwickelte Versionierungstool git ist zu installieren (beispielsweise über sudo apt-get install git-core auf Ubuntu). Eine GCC-Umgebung ist ebenso Voraussetzung wie eine funktionierende Videoausgabe.

Sind diese Bedingungen erfüllt, lässt sich mit git clone git://repo.or.cz/mplayer && cd mplayer && git checkout origin/mt && git submodule init && git submodule update && ./configure && make der Source herunterladen, konfigurieren und kompilieren, ein sudo make install installiert den multithread-fähigen mplayer schließlich.

Nun ruft man den Mplayer mit dem Zusatz -lavdopts threads=N auf, wobei N für die Anzahl an Threads steht, auf die ffmpeg-mt die Rechenlast verteilen soll. Es ist ratsam, sich ein kurzes Shellscript mit leicht tippbarem Namen zu machen, das den mplayer gleich mit den entsprechenden Optionen aufruft (etwa in der folgenden Syntax: mplayer -lavdopts threads=N "$@")

In unserem Test spielen ältere Systeme wie frühe Athlon X2 oder ein Quad G5 nun völlig flüssig unseren 1080p-MKV-Democlip aus dem Opensource-Film Big Buck Bunny sowie sämtliche anderen H.264-Testfiles, die wir auftreiben können, selbst extrem rechenaufwendige hochkomplexe Szenen, bei denen sich auch einige Core 2 Duos mit auf nur einem Kern laufender Dekodierung noch verschlucken können. Auch ältere Pentium-D-Systeme sollten damit nun 1080p "Full HD ready" sein. Wenn Sie keine Dualcore-CPU oder auch einen älteren Dual-CPU-Rechner (Opteron, Pentium-4-Xeon etc) ihr eigen nennen, wird dies alles natürlich nichts bringen, denn der einzige Sinn und Zweck von ffmpeg-mt ist es, die Last auf mehrere CPUs zu verteilen, es gibt keine sonstigen Beschleunigungen.

Laut Mplayer-Homepage hat ffmpeg-mt wohl noch Probleme mit gepackten B-Frames, aber H.264-Dateien, die dieses Feature nutzen, scheinen äußerst rar gesät zu sein, in unserem Test spielte alles einwandfrei.

Ähnliche Artikel

Kommentare
Shellscript
Anonymous (unangemeldet), Dienstag, 10. März 2009 00:05:43
Ein/Ausklappen

Statt "%1" "%2" "%3" usw. zu schreiben, kann man besser gleich "$@" nehmen. Details siehe man bash.


Bewertung: 227 Punkte bei 53 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Shellscript
teste (unangemeldet), Dienstag, 10. März 2009 01:21:30
Ein/Ausklappen

teste 234


Bewertung: 260 Punkte bei 54 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Re: Shellscript
Daniel Kottmair, Dienstag, 10. März 2009 10:34:36
Ein/Ausklappen

Danke, genau danach hab ich gesucht ($0 war's nicht), werd's gleich korrigieren!...


Bewertung: 166 Punkte bei 66 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Anzahl Threads
Klaus (unangemeldet), Sonntag, 10. Mai 2009 22:40:02
Ein/Ausklappen

Habe nach Anleitung den mplayer-mt selber kompiliert.

Ergebnis ist tatsächlich beeindruckend, auch auf meinem Laptop mit leistungsschwacher i945-Grafikhardware kann ich nun mit leichtem Bildruckeln h.264-codierte 1080i-Videos abspielen.

Interessanter Nebeneffekt: ich habe die Anzahl der Threads auf 8 gesetzt, damit kann ich auch MPEG2-Videos ohne Bildfehler beschleunigt abspielen. Bei zwei Prozessen (und einem Core2-Duo) habe ich nur Bildfehler.


Bewertung: 207 Punkte bei 57 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
probier ich schon seit wochen
Daniel Gultsch, Montag, 09. März 2009 21:53:12
Ein/Ausklappen

ich beschäftige mich schon seit einiger zeit damit. Also damit mplayer 1080p auf zwei kernen bei zu bringen. irgendwie schaff ich das nicht. ich weiß zwar sehr wohl, das es ffmpeg-mt gibt, aber ich schaff es nicht meinen mplayer aus gentoo gegen ffmpeg-mt zu linken. und wenn ich mplayer dann auch aus den sourcen übersetze geht es auch nicht. irgendwie scheint mplayer sein eigenes ffmpeg mit zu bringen. mhh ich probier's bei gelegenheit nochmal mit den hier vorgestellten kommandos. wär echt cool wenn das mal klappen würde. mein SU9400 ist nämlich mit nur einem kern viel zu schwach für 1080p. zumindest wenn es in big buck bunny zu schnellen bewegungen kommt.
However. Wird Zeit ffmpeg-mt mal zurück zu porten. wieder in ffmpeg rein.


Bewertung: 243 Punkte bei 59 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Aktuelle Fragen

WLAN lässt sich nicht einrichten
Werner Hahn, 21.03.2017 14:16, 0 Antworten
Dell Latitude E6510, Ubuntu 16.4, Kabelbox von Telecolumbus. Nach Anklicken des Doppelpfeiles (o...
"Mit Gwenview importieren" funktioniert seit openSuse 42.2 nicht mehr
Wimpy *, 20.03.2017 13:34, 2 Antworten
Bisher konnte ich von Digitalkamera oder SD-Karte oder USB-Stick Fotos mit Gwenview importieren....
Ich habe eine awk Aufgabe und bekomme es nicht so Recht hin
Dennis Hamacher, 10.03.2017 18:27, 1 Antworten
Ich hoffe Ihr könnt mir dabei helfen oder mir zeigen wie der Befehl richtig geschrieben wird. Ich...
Unter Linux Open Suse Leap 42.1 einen Windows Boot/ ISO USB Stick erstellen...
Tim Koetsier, 07.03.2017 15:26, 1 Antworten
Hallo, weiß jemand wie ich oben genanntes Vorhaben in die Tat umsetzen kann ? Wäre echt dankba...
Druckertreiber installieren OpenSuse42.1
Tim Koetsier, 07.03.2017 15:22, 1 Antworten
hallo, kann mir BITTE jemand helfen ich verzweifel so langsam. Habe einen Super Toner von Canon...