Jakiś czas temu pisałem o akceleracji przez GPU filmów kodowanych przy pomocy H.264 w MPlayer. Wiedziałem, że VLC w wersji 1.1 też ma mieć zaimplementowaną obsługę VAAPI. Poszukałem ostatnio trochę i znalazłem repozytorium zawierające paczkę z odpowiednią wersją VLC, a także dodatkowo nową wersją MPlayer i innych różnych rzeczy. Ostrzegam, że są to mało przetestowane wersje i mogą nie działać tak jak powinny. Poza tym w zależnościach zmienia się nazwa Libavutil z 49 na 50, a Libavfilter z 0 na 1, co może powodować problemy z zależnościami programów korzystających z tego (np. u mnie mpd).
Jeśli posiadacie kartę radeon hd2600 lub nowszą i korzystacie z catalyst (działalo na 10.1 i 9.10 + hotfix, 10.2 nie używam, bo regularnie wysypywał compiz) to instalujecie xvba-video dostępne tutaj. Posiadacze nVidia muszą zainstalować vdpau-video, a posiadacze kart firmy Intel chyba nie potrzebują nic gdyż wykorzystywane jest intelowskie VAAPI. Żeby mieć możliwość korzystania z nowej wersji VLC lub nie musieć długo kompilować MPlayera (jak poprzednio) należy dodać repozytorium:
sudo add-apt-repository ppa:nvidia-vdpau/cutting-edge-multimedia sudo apt-get update
Po dodaniu i odświeżeniu pakietów robimy już właściwą instalację bądź upgrade.
VLC
Jeśli nie mieliśmy VLC to:
sudo apt-get install vlc
Jeśli chcemy wykonać tylko upgrade to wtedy:
sudo apt-get upgrade
Żeby włączyć akcelerację musimy teraz w Narzędzia->Preferences->Wejście i kodeki zaznaczyć Use GPU acceleration. Swoją drogą tłumaczenie jest nienajlepsze co zresztą widać. VLC w wersji 1.1 to dużo więcej nowości, np. obsługa wtyczek, ale o tym może kiedy indziej napisze.
MPlayer
Jeśli nie mieliśmy MPlayera to:
sudo apt-get install mplayer smplayer
Jeśli chcemy wykonać tylko upgrade to wtedy:
sudo apt-get upgrade
Teraz, żeby uruchomić film:
mplayer -vo vaapi -va vaapi /sciezka/do/filmu
SMPlayer
Niestety nie udało mi się jeszcze uruchomić tego w SMPlayer co mnie bardzo dziwi, bo przecież to tylko interfejs do MPlayera. W teorii powinno to wyglądać tak, że w ustawieniach Główne->Wideo zmianiamy sterownik wyjściowy na vaapi, a w Zaawansowane->Opcje MPlayera w opcje wpisujemy „-va vaapi”. U mnie jednak kończy się to tak jak wywołanie MPlayera bez -va vaapi. Ustaliłem, że problemową opcją było -vf-add screenshot. Żeby się tego pozbyć należy w ustawieniach Główne->Główne wyczyścić ścieżkę dla zrzutów ekranowych i powinno działać.
Na końcu chciałbym napisać, że jakkolwiek bardzo lubię VLC to jeśli chodzi o akcelerację filmów zużywa on znacząco więcej zasobów procesora niż MPlayer. Dlatego powoli przekonuję się do MPlayera, pomimo tego, że korzystam z niego z terminala.


jacek.
Luty 28, 2010 at 22:20
myślę, że powinieneś w smplayerze skorzystać z opcji Główne/Wideo/Sterownik wyjściowy/Określone przez użytkownika
Łukasz Klich
Luty 28, 2010 at 22:35
Ale co miałbym tam wpisać? Sprawdziłem wpisując vaapi, które zresztą i tak jest do wyboru i dalej to samo. Problemem nie jest tutaj -vo z MPlayera, tylko -va z MPlayera moim zdaniem.
devegoo
Marzec 1, 2010 at 13:00
” Mplayer has also been compiled with VA-API support. To enable it, run „mplayer -vo vaapi -va vaapi ” or, in Smplayer, change the video output driver to vaapi, and then in Advanced => Extra Options for Mplayer enter „-va vaapi”. You must also disable SSA/ASS subtitles” ” czyli dodatkowo wyłączyć napisy ssa/ass, a tak na marginesie czy są jakieś wieści czy powstaje gdzieś coś pokroju backendu opencl/opengl do vaapi tak aby można było użyć starszych kart pokroju nv5200fx razem z procesorem ?
Łukasz Klich
Marzec 1, 2010 at 13:23
No tak, czytałem to, ale pomimo wyłączenia to po prostu nie działa. Spróbuję to od drugiej strony, czyli wyciągne z logu SMPlayer sposób odpalania MPlayer i będę wyłącząć po kolei wszystko aż wkońcu zadziała.
VAAPI już może korzystać z opengl, kiedy uruchomisz coś -vo vaapi:gl, ale, to raczej nie o to Ci chodzi. Nie widziałem nic o takim rozwiązaniu, o które pytasz. Przykro mi
devegoo
Marzec 1, 2010 at 17:43
i pewnie nie powstanie nic takiego bo opencl też wymaga odpowiedniego sprzętu, ciekawe jak to wyglądało u nvidii która miała sterownik xvmc do mpeg1 i 2 jescze w czasa riva tnt2 ! pamiętam jak na tej karcie oglądałem tv cyfrową właśnie na tym sterowniku, co prawda procesor był znacznie odciążony ale jakość trochę odstawała od trybu auto …
Łukasz Klich
Marzec 1, 2010 at 18:28
Ja miałem jakieś S3 i zielonego pojęcia co jest grane :)
devegoo
Marzec 29, 2010 at 20:28
Dzisiaj znalazłem coś o Generic GPU-Accelerated Video Decoding http://www.bitblit.org/gsoc/g3dvl/ zdaje się że o to mi chodziło we wcześniejszym wpiseie :)
kuncy7
Wrzesień 28, 2010 at 22:09
Co trzeba zrobić, żeby ta metoda zadziała w Ubuntu 10.10?
Łukasz Klich
Wrzesień 29, 2010 at 13:12
Jeśli masz radeona to musisz cierpliwie czekać, aż AMD wyda sterownik 10.10. Jeśli masz nvidie lub intela to przypuszczam, że to samo co zawsze, czyli musisz mieć odpowiednie wersje odtwarzaczy, które obsługują akceleracje i odpowiednią paczkę, która tą akcelerację obsłuży od strony grafiki. Na pewno odpowiednie wersje znajdziesz w ppa cutting-edge-multimedia, ale możliwe również, że znajdują się one w oficjalnym repozytorium mavericka i nie trzbea dodawać ppa
kuncy7
Październik 4, 2010 at 21:35
Mam AMD Mobility HD 43xx, sterowniki już są, Zainstalowałem, potwierdziły się Twoje obserwacje, spadek zapotrzebowania na moc o około 6W. :) Zainstalowałem też biblioteki i sterowniki z linków, plus mplayer ze strony: https://launchpad.net/~gma500/+archive/ppa/ i działa! Trochę koślawo, ale generalnie działa. Tryb 720 jest OK, zaś filmy w trybie 1080 dają się oglądać, ale błyskają do mnie takimi fajnymi artefaktami. ;) Szkoda że takie firmy *** jakoś nie mogą się dogadać i trzeba samemu łatać. :(
Instalacja VLC z VAAPI na Ubuntu | AMD, ATI, Catalyst, fglrx, PPA
Czerwiec 9, 2011 at 09:05
[...] Lynx nie testowałem tego przepisu, jeśli nie zadziała, to polecam sprawdzony przeze mnie sposób Łukasza Klicha. google_ad_client = "ca-pub-4776507162378738"; /* Wiktoria */ google_ad_slot = "2084738354"; [...]