VDPAU je aplikační rozhraní vytvořené firmou nVidia, pomocí kterého lze zrychlit přehrávání videa a odlehčit práci CPU (konkrétně je zatím podporováno MPEG-1, MPEG-2, H.264 a nějaké kodeky od Microsoftu) tak, že dekódování videa probíhá na GPU místo CPU (tedy na grafické kartě místo na hlavním procesoru). Jelikož vlastním podporovanou grafickou kartu a HD videa přehrávám velmi často, tak jsem se rozhodl tuto možnost vyzkoušet. Zde je návod jak jsem na to šel a mé postřehy.
V tomto příspěvku se budu zabývat akcelerací videa v distribuci Debian GNU/Linux (testing) a v přehrávači mplayer. Pokud používáte jinou distribuci nebo přehrávač, tak se poohlédněte po Internetu (zatím VDPAU ale podporuje jen pár přehrávačů) - základní kroky jsou ale podobné.
Postup
- Ze všeho nejdříve se přesvědčte, zda vaše grafická karta podporuje akceleraci dekódování videa pomocí VDPAU.
- Nainstalujte proprietární (nesvobodné) ovladače ke grafickým kartám nVidia - buď z oficiálních stránek, nebo z repozitářů. V případě instalace z repozitářů ale pozor, protože jsou potřeba ovladače ve verzi >= 180.xx (a nejlépe úplně nejnovější; aktuálně 185.18.14) a v testovací verzi Debianu jsou jen ovladače řady 173 (v unstable je nejnovější verze, takže kdyžtak použijte tuto). Bez těchto ovladačů můžete na VDPAU zapomenout.
- Do
/etc/apt/sources.list
přidejte repozitář debian-multimedia (pokud používáte jinou verzi Debianu, tak změňtetesting
za název vaší verze):
deb http://www.debian-multimedia.org testing main
Případné přídání klíče viz FAQ. Tento repozitář obsahuje "nadupanější" verzi mplayeru, než je v hlavním repozitáři. Po přidání nezapoměňte na
aptitude update
. - Nainstalujte
mplayer
(nebo radějimplayer-nogui
, pokud nechcete oficiální GUI k mplayeru, které je stejně k ničemu). - Do konfiguračního souboru
~/.mplayer/config
(pokud neexistuje, vytvořte jej) přidejte následující nastavení:
vo=vdpau vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,
Toto nastavení říká, že se má použít video výstup VDPAU a příslušné kodeky (čárka na konci seznamu kodeků znamená, že v případě, že video nebylo zakódováno žádným z těchto kodeků, tak mplayer použije autodetekci, což je žádané chování).
- Vyzkoušejte VDPAU v akci přehráním nějakého HD videa :).
Závěr
Na všech testovaných videích jsem nezaznamenal žádný problém (obraz je kvalitní, žádný tearing apod.) a přehrávání probíhalo v pořádku. Pro ukázku malé srovnání průměrného vytížení CPU (měřeno jen orientačně, zajímavé je především relativní porovnání než absolutní hodnoty):
big_buck_bunny_1080p_h264.mov:
Bez VDPAU: 42% Přes VDPAU: 2%
Bez VDPAU: 45% Přes VDPAU: 3%
mariposaHD.S01E08.1080p.en.wmv:
Bez VDPAU: 54% Přes VDPAU: 9%
Prostě úžasné :).