Akcelerované přehrávání videa pomocí GPU přes VDPAU (nVidia) v Debianu

Od Petr Zemek, 2009-07-15

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

  1. Ze všeho nejdříve se přesvědčte, zda vaše grafická karta podporuje akceleraci dekódování videa pomocí VDPAU.
  2. 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.
  3. Do /etc/apt/sources.list přidejte repozitář debian-multimedia (pokud používáte jinou verzi Debianu, tak změňte testing 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.

  4. Nainstalujte mplayer (nebo raději mplayer-nogui, pokud nechcete oficiální GUI k mplayeru, které je stejně k ničemu).
  5. 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í).

  6. 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%

pandorum-tl1_h1080p.mov:

Bez VDPAU:  45%
Přes VDPAU: 3%

mariposaHD.S01E08.1080p.en.wmv:

Bez VDPAU:  54%
Přes VDPAU: 9%

Prostě úžasné :).

Tagy
Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Filtrované HTML (využíváno)

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <table>
  • Zvýraznění syntaxe kódu lze povolit přes následující značky: <code>, <blockcode>, <bash>, <c>, <cpp>, <haskell>, <html>, <java>, <javascript>, <latex>, <perl>, <php>, <python>, <ruby>, <rust>, <sql>, <text>, <vim>, <xml>, <yaml>.
  • Řádky a odstavce se zalomí automaticky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
CAPTCHA
2 + 1 =
Vyřešte tento jednoduchý matematický příklad a vložte výsledek. Např. pro 1+3 vložte 4.
Nějak se mi tady rozmohl spam, takže poprosím o ověření.