Gentoo, ATI a hw akcelerace videa

Přidáno 29. května 2011, 15:6

Zkusil jsem rozjet hw akceleraci hd videa s kartou Ati Radeon 4650 HD. Dle informací výrobce už akceleraci má, tak co :)

V souboru /etc/make.conf přidáme řádek: VIDEO_CARDS="fglrx"

ATI ovladače
Potřebovat budeme ATI ovladače:
emerge -va ati-drivers
Povolení modulu fglrx při startu systému jsem neřešil, zřejmě "se udělá samo". Úpravu /etc/X11/xorg.conf provedeme pomocí nástroje aticonfig (možná s nějakým prametrem, nejsem si už jist). Nezapomenout na:
eselect opengl set ati
Jinak mi nenastartovali Xka, zůstala černá obrazovka a nedalo se nic dělat. Přepnutí do konzole taky nefungovalo, bylo třeba najet z CD a upravit to pomocí chrootu, případně zakázat automatický start X serveru.

Po restartu můžeme zkontrolovat funkčnost:

pat@pat /etc $ glxinfo | grep rendering
direct rendering: Yes
pat@pat /etc $ 

Balíky libva a xvba-video
Dále potřebujeme balíky libva a xvba-video. Buď je stáhneme ze stránek, nebo je nainstalujeme z repozitáře. Jsou zamaskované (v době psaní těchto poznámek), takže oba odmaskujeme - např. do /etc/potage/package.keywords/ostatni přidáme řádky:
x11-libs/libva ~amd64
x11-libs/xvba-video ~amd64

Pak nainstalujeme:

emerge -va libva xvba-video

Pokud je vše v pořádku, měla by se vypsat podobná hláška (pravděpodobně bude třeba restart):

pat@pat /etc $ vainfo 
libva: libva version 0.32.0-sds2
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.32
vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.7.8
vainfo: Supported profile and entrypoints
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
pat@pat /etc $ 

MPlayer - VA API
Stáhneme poslední verzi mplayer-vaapi. Rozbalíme, opatchujeme a skompilujeme:
pat@pat ~ $ tar xfj mplayer-vaapi-20110127-FULL.tar.bz2 
pat@pat ~ $ cd mplayer-vaapi-20110127
pat@pat ~/mplayer-vaapi-20110127 $ ./
checkout-patch-build.sh  mplayer-vaapi/           patches/
pat@pat ~/mplayer-vaapi-20110127 $ ./checkout-patch-build.sh 
...

Případně pak můžeme skompilovat s vlastníma volbama. Na konci konfigurace zkontrolujeme povolené audio/video výstupy a kodeky, jestli je vše OK, skompilujeme a nainstalujeme:

pat@pat ~/mplayer-vaapi-20110127/mplayer-vaapi $ ./configure --prefix=/usr/local/moje_apps/mplayer-vaapi/ --language=cs
...
Creating config.h

Config files successfully generated by ./configure --prefix=/usr/local/moje_apps/mplayer-vaapi/ --language=cs !

  Install prefix: /usr/local/moje_apps/mplayer-vaapi/
  Data directory: /usr/local/moje_apps/mplayer-vaapi//share/mplayer
  Config direct.: /usr/local/moje_apps/mplayer-vaapi//etc/mplayer

  Byte order: little-endian
  Optimizing for: native

  Languages:
    Messages/GUI: cs
    Manual pages:  cs
    Documentation:  cs

  Enabled optional drivers:
    Input: dvdnav(internal) ftp pvr tv-v4l2 tv-v4l tv live555 cddb cdda libdvdcss(internal) dvdread(internal) bluray vcd dvb networking 
    Codecs: libschroedinger libdirac x264 xvid libdv ffmpeg(internal) real xanim faad2 faac libdca libmpeg2(internal) liba52 mpg123 mp3lib(internal) libtheora speex tremor(internal) twolame libmad gif OpenJPEG 
    Audio output: alsa openal pulse oss v4l2 sdl mpegpes(dvb) 
    Video output: v4l2 matrixview opengl sdl gif89a pnm jpeg mpegpes(dvb) fbdev caca aa xvidix cvidix dga xv x11 xover yuv4mpeg md5sum tga 

  Disabled optional drivers:
    Input: vstream radio tv-dshow librtmp nemesi smb 
    Codecs: libvpx libopencore_amrwb libopencore_amrnb qtx win32 musepack libgsm toolame liblzo 
    Audio output: sun jack nas esd arts ivtv dxr2 
    Video output: zr zr2 ivtv dxr3 dxr2 vesa svga ggi winvidix 3dfx xmga vdpau xvmc directfb dfbmga bl xvr100 tdfx_vid wii s3fb tdfxfb mga 
...
pat@pat ~/mplayer-vaapi-20110127/mplayer-vaapi $ make
...
pat@pat ~/mplayer-vaapi-20110127/mplayer-vaapi $ sudo make install
...

Přehrávání
Přehrávání videa s akcelerací spustíme:
pat@pat ~ $ /usr/local/moje_apps/mplayer-vaapi/bin/mplayer -vo vaapi:gl -va vaapi /cesta/k/videu/jmeno_souboru.mkv
...

Bez volby -va vaapi je zátěž procesoru cca 60-90%, s touto volbou cca 5-10% (stejné video, stejná scéna).

SMplayer jsem sice dokázal přesvědčit, aby použil video výstup vaapi, ale s volbou -va vaapi si nevím rady. Zkoušel jsem v Nastavení -> Pokročilé -> Nastavení MPlayeru -> Možnosti vyplnit -va vaapi, ale bez úspěchu. Zátěž CPU je stále vysoká.

Proto jsem si udělal v Krusaderu uživatelskou funkci. V Krusaderu Nastavení -> Konfigurovat Krusader -> Uživatelské činnosti -> Spustit ActionMan a tam vytvořit novou uživatelskou činnost dle obrázku screenshotu. Sice nemá GUI, ale už jsem se naučil využívat zkratky: J - přepínání titulků; # - přepínání zvukové stopy. Pak stačí na video kliknout pravým myšítkem vybrat Uživatelské činnosti -> Multimedia -> MPlayer VA API a je to :-)

Závěr
Samozřejmě existují videa, na která je toto řešení krátké a obraz kostičkuje. Ale je taky spousta videí se kterými to prostě běhá skvěle, tak proč toho nevyužít? ,-)

Přidání vzkazu
* Tyto údaje je nutné vyplnit.

SHadowman
2011-05-30 08:49:24

tak to je dobra zprava ze v linuxu uz nak zacina fungovat HW akcelerace videa s ATI. Treba si jednou na notesu s linuxem a ATI3200 taky pustim naky MKV. Do ty doby mi to tam budou prehravat stary doby winXP .]

Odpovědět