VDPAU (Video Decode and Presentation API for Unix) ist eine, von NVIDIA entwickelte, API. Diese API kann das Dekodieren, Deinterlacen und Skalieren von HD-Inhalten auf die GPU auslagern und somit den CPU entlasten. Damit können auch langsame CPU’s HD-Inhalte wiedergeben wenn diese Computer eine VDPAU kompatible Grafikkarte haben. In diesem Artikel möchte ich euch ein Tutorial schreiben wie ihr VDPAU mit SMplayer am Besten und Einfachsten auf einem Ubuntu Betriebssystem einrichtet. Leider musste ich feststellen, dass keine gute Anleitung im Internet auffindbar war. Das war im Übrigen auch der Grund, warum ich ab sofort meine Erfahrung, Tipps & Tricks mit euch auf diesem Blog teilen möchte. Nun geht es aber los
Am Besten laden wir uns das aktuelle Ubuntu von ubuntuusers.de herunter. Ich habe für meinen Intel Atom 330 CPU das 9.04 Ubuntu für „amd64“ verwendet. Nachdem wir Ubuntu nun auf unserem Computer installiert haben, öffnen wir den Terminal oder gehen per SSH (sudo aptitude install openssh-server) auf das System. Als allererstes editieren wir die „/etc/apt/source.list“, ich persönlich bevorzuge im Terminal den „vi“.
sudo vi /etc/apt/sources.list
Auf dem Launchpad PPA vom NVIDIA-VDPAU-TEAM gibt es ein schönes Repository, ein Rundum-Sorglos-Paket.
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu/ jaunty main deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu/ jaunty main
Wenn ihr eine ältere oder neuere Ubuntu Version verwendet, geht einfach auf die NVIDIA-VDPAU-TEAM Seite und wählt eure Ubuntu Version um die richtigen „sources.list“-Einträge zu erhalten. Danach holen wir uns den PGP-Key, damit „aptitude“ nicht folgende Fehlermeldung bringt „NO_PUBKEY 1DABDBB4CEC06767“, dazu führen wir folgenden Befehl auf dem Terminal aus:
gpg --keyserver keyserver.ubuntu.com --recv 1DABDBB4CEC06767 && gpg --export --armor 1DABDBB4CEC06767 | sudo apt-key add - && sudo aptitude update
Mit diesem Befehl holen wir uns den PUPKEY vom Repository und gleichzeitig noch die aktuelle Paketliste. Jetzt werden wir uns den aktuelle „stable“ NVIDIA Treiber inkl. SMplayer installieren.
sudo aptitude install linux-headers-`uname -r` nvidia-185-kernel-source nvidia-185-libvdpau nvidia-settings smplayer mplayer-nogui
Nachdem wir „aptitude“ ein wenig beim installieren zugeschaut haben, führen wir noch die:
sudo nvidia-xconfig
aus. Nun sollten wir unseren Computer oder den X11 neu starten. Keine Panik, wenn ihr immer noch keine vernünftige Auflösung bekommt. Als nächstes müssen wir die „/etc/X11/xorg.conf“ mit „nvidia-settings“ bearbeiten. Diese führen wir am Besten als „root“ aus, um genügend Rechte zu haben, damit die „xorg.conf“ ins richtige Verzeichnis gespeichert werden kann. Lokal im Terminal:
sudo nvidia-settings
oder bei SSH
sudo nvidia-settings --display=:0.0
Jetzt legen wir unsere gewünschte Auflösung fest und drücken auf „Apply“, danach speichern wir die xorg.conf ins Verzeichnis „/etc/X11/“. So wird beim Booten auch der richtige Treiber mit der richtigen Auflösung geladen. Gegebenenfalls müsst ihr euren Computer oder die KDE/GNOME-Session (Ctrl+Alt+Backspace) noch einmal neustarten.
Wenn wir nun den SMplayer starten und in den Optionen > Allgemein -> Video noch „vdpau“ auswählen und diese Einstellungen übernehmen, können wir unsere HD-Inhalte in Zeitlupe wiedergeben.
Damit unser SMplayer noch die richtigen Libarys bekommt müssen wir noch einmal „aptitude“ bemühen.
sudo aptitude install libavcodec-unstripped-52 libavutil-unstripped-49
Nun haben wir es geschafft und wir können unsere HD-Inhalte ohne Probleme flüssig mit der NVIDIA-VDPAU API anschauen.
TIPP: Wenn ihr eure HD-Inhalte über einen Fileserver schaut und euer Netzwerk das ein oder andere Mal ausgelastet ist. Einfach im SMplayer den Cache auf 50000 oder höher stellen damit ihr, falls es mal zu Engpässen kommt, ein paar Reserven habt.
PS: Wundert euch nicht über die schlechte Qualität der Screenshots, die wurden mit VNC gemacht.
EDIT: Problem mit Bildüberlagerung (Tearing) und Artefakte
Danke hat Super funktioniert.
Richtig gute Anleitung, hat super geklappt. Treiberversion kann man ja z.b. ersetzen.
Geht das ganze auch mit dem 195er Treiber?
grüße deadrabbit
Hallo Deadrabbit, ja es funktioniert auch mit dem 195er. Habe ich mittlerweile auch am laufen.
foobar@elfriede:~$ aptitude search 195
i nvidia-195-kernel-source - NVIDIA binary kernel module source
i A nvidia-195-modaliases - Modaliases for the NVIDIA binary X.Org driver
i A nvidia-glx-195 - NVIDIA binary Xorg driver
p nvidia-glx-195-dev
Super Sache, hab jetzt bloß kein deinterlacing mehr.
SMplayer meldet beim anspielen einer DVD „Videofilter unter VDPAU deaktiviert.“
Und nun?
Wow! Ich fasse es einfach nicht. Nachdem ich so vieles ausprobiert habe, hat es jetzt endlich nach dieser Anleitung geklappt.
Muchas, muchas gracias!!
🙂