Pisałem w maju o możliwości uruchamiania filmów na YouTube w zewnętrznym odtwarzaczu wbudowany w przeglądarke. Trochę później wpadłem na to, że można skorzystać przy okazji z akceleracji GPU. Mniej więcej w tym samym okresie pojawiła się możliwość wykorzystania VAAPI w GStreamerze, którego używa Totem. Nie interesowało mnie to dopóki wtyczka mplayer współpracowała z Chromium. Obecnie wtyczka do Totema, to jedyna, która w mojej przeglądarce działa i w dodatku nienajlepiej (tylko filmy w HD nie czekają na odtworzenie dopóki się całe nie zbuforują). Dla użytkowników FF to prostu kolejna wtyczka odtwarzacza, która posiada akcelerację karty graficznej. Czego potrzebujemy?
Jednego skryptu i dwóch zewnętrznych repozytoriów. Skrypt to już wcześniej używany przeze mnie YouTubeWithoutFlashAuto. Jedno repozytorium to Cutting Edge Multimedia, o którym również pisałem już wcześniej, a gdzie znajdują się libva i odpowiednia wersja FFmpeg. Z drugiego repozytorium, które należy do Guido Iodice, bierzemy tylko odpowiednią wtyczkę do GStreamera. Użytkownicy FF potrzebują jeszcze Greasemonkey.
Włączamy akcelerację
Repozytorium Cutting Edge dodajemy do systemu i robimy upgrade i instalujemy
sudo add-apt-repository ppa:nvidia-vdpau/cutting-edge-multimedia sudo apt-get update sudo apt-get upgrade sudo apt-get install ffmpeg gstreamer0.10-ffmpeg libva1
Jeśli mamy kartę ATI to potrzebujemy pobrać jeszcze paczkę z XvBA. Pobieramy najnowszą i również instalujemy. Użytkownicy NVidia instalują dodatkowo vdpau-video (nie wiem czy coś jeszcze bo nvidii nie mam). Żeby sprawdzić czy to wogóle działa:
$ vainfo
libva: libva version 0.31.1-sds1
Xlib: extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.31
vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA API - 0.7.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointIDCT
VAProfileMPEG2Main : VAEntrypointIDCT
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
Jeśli w wyniku vainfo dostajecie jakiś błąd albo wogóle nie ma czegoś takiego to znaczy, że musicie upewnić się, że wszystko dobrze wykonaliście.
Akceleracja w Totemie
Żeby uruchomić akcelerację w Totemie potrzebujemy paczki gstreamer-vaapi, która jest w drugim repozytorium. Wchodzimy na tą stronę i pobieramy libgstvaapi0, libgstvaapi-x11-0, libgstvaapi-glx-0 i wkońcu gstreamer0.10-vaapi. Instalujemy to wszystko w tej kolejności i sprawdzamy czy działa
$ gst-inspect-0.10 vaapisink Factory Details: Long name: VA-API sink Class: Sink/Video Description: A VA-API based videosink Author(s): Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> Rank: primary (256) Plugin Details: Name: vaapisink Description: A VA-API based videosink Filename: /usr/lib/gstreamer-0.10/libgstvaapisink.so Version: 0.2.4 License: GPL Source module: gstreamer-vaapi Binary package: gstreamer-vaapi Origin URL: gbeauchesne@splitted-desktop.com ...
W odpowiedzi jest tego dużo więcej, ale jeśli pojawi się Gwenole Beauchesne na początku i w Plugin Details mowa będzie o gstreamer-vaapi to jest wporządku. Akceleracja powinna działać (nic w Totemie chyba nie trzeba przełączać, przynajmniej u mnie to tak działa).
Łączymy to z przeglądarką
Instalujemy skrypt YouTubeWithoutFlashAuto (w FF najpierw greasemonkey). Instalujemy jeszcze dodatkowo wtyczkę do Totema
sudo apt-get install totem-mozilla
Teraz po wejściu na stronę YT, filmy powinny odtwarzać się przy pomocy wtyczki Totema, a jeśli będą w HD to dodatkowo z wykorzystaniem GPU. Oczywiście nic nie stoi na przeszkodzie, żeby wykorzystać Totema też do oglądania filmów HD, które znajdują się na naszym dysku. Ja po prostu korzystam z mplayera, a Totem tylko jako wtyczka. Użytkownicy Fedory mogą zajrzeć na blog mojego brata.
Pozdrawiam


chromium i youtube bez flasha | FLLOG
Sierpień 29, 2010 at 14:35
[...] greasemonkey, no-flash, youtube, yum.Nie lubię flasha, tak jak mój brat, który mi pokazał mały trik jak się go pozbyć z youtube.com. Teraz pokażę jak to zrobić w dosyć bezbolesny sposób. Co [...]
czyt
Sierpień 29, 2010 at 17:03
W pierwszym listingu (czwarta linijka) masz błąd nazwy pakietu, powinno być libva1.
Łukasz Klich
Sierpień 29, 2010 at 17:07
Tak dokładnie. Dziękuje za zwrócenie uwagi
ms
Wrzesień 14, 2010 at 15:55
Witam. Zainstalowałem wszystko krok po kroku jak opisałeś.
vainfo daje wynik:
$ vainfo libva: libva version 0.31.1-sds1
Xlib: extension „XFree86-DRI” missing on display „:0.0″.
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/va/drivers/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.31
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA API – 0.6.10
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
A potem:
$ gst-inspect-0.10 vaapisink
Nie ma takiego elementu lub wtyczki ‘vaapisink’
I akceleracja w totemie nie działa. Może masz pomysł dlaczego?
ms
Wrzesień 14, 2010 at 18:45
OK, udało mi się rozwiązać ten problem.
# ls /usr/lib/gstreamer*
gstreamer-0.10/ gstreamer0.10/
Biblioteki gstreamera są szukane w katalogu gstreamer0.10/ a wszystkie są w gstreamer-0.10/
Wykonałem więc:
# cp -r /usr/lib/gstreamer-0.10/ /usr/lib/gstreamer0.10/
I teraz gst-inspect-0.10 vaapisink pokazuje:
Factory Details:
Long name: VA-API sink
Class: Sink/Video
Description: A VA-API based videosink
Author(s): Gwenole Beauchesne
Rank: primary (256)
Plugin Details:
Name: vaapisink
Description: A VA-API based videosink
Filename: /usr/lib/gstreamer-0.10/libgstvaapisink.so
Version: 0.2.4
License: GPL
Source module: gstreamer-vaapi
Binary package: gstreamer-vaapi
Origin URL: gbeauchesne@splitted-desktop.com
Ale niestety akceleracja w totemie dalej nie działa :/
Łukasz Klich
Wrzesień 14, 2010 at 18:58
A w jaki sposób określasz czy działa?
Muszę postawić świeży testowy system i wtedy może będę w stanie zobaczyć co jest grane. Niestety sprawdzałem to na niezbyt świeżym i może jakiś pakiet wpłynął na to, że u mnie działało?
ms
Wrzesień 14, 2010 at 19:28
Próbuje zarówno w totemie puścić jakiś materiał w HD jak i przez przeglądarkę via totem-mozilla. Widzę, że akceleracja nie działa bo po prostu film ostro ‘klatkuje’ a zużycie procesora jest bardzo wysokie.
Dodam, że akceleracja działa w mplayerze czy xbmc. Filmy w tych programach odtwarzają się normalnie a procesor się nie męczy.
Pozdrawiam
Łukasz Klich
Wrzesień 15, 2010 at 15:26
Jeśli korzystasz z Firefoxa to możesz zawsze skorzystać z wtyczki mplayera do oglądania YT. Gorzej jeśli korzystasz z Chrome/Chromium albo chcesz sprawdzić Totem tak dla frajdy ;)
Dzisiaj powinienem postawić świeży system obok na dysku i zobaczę co z tym moim how-to jest nie tak