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: 144 Punkte bei 28 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: 183 Punkte bei 30 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

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...