Mplayer lernt Multithreading

Mplayer

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

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: 189 Punkte bei 28 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Shellscript
teste (unangemeldet), Dienstag, 10. März 2009 01:21:30
Ein/Ausklappen

teste 234


Bewertung: 235 Punkte bei 25 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: 141 Punkte bei 29 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: 162 Punkte bei 21 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: 182 Punkte bei 33 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.