RSS
 

Totem, Chromium i VAAPI

29 sie

totem_vaapi_asteroid_hd 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

 
8 komentarzy

Opublikował w ubuntu

 

Tagi: , , , , , , ,

Skomentuj

Connect with Facebook

 

 
  1. 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 [...]

     
  2. 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

       
  3. 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?

         
  4. 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

       
 
Blog WebMastered by All in One Webmaster.

Switch to our mobile site