Home / Online-Artikel / Mplayer lernt Multithreading

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Mplayer lernt Multithreading

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
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: 183 Punkte bei 24 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Shellscript
teste (unangemeldet), Dienstag, 10. März 2009 01:21:30
Ein/Ausklappen

teste 234


Bewertung: 221 Punkte bei 21 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: 147 Punkte bei 21 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 13 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 25 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

5565 Hits
Wertung: 200 Punkte (22 Stimmen)

Schlecht Gut

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...