Как включить VDPAU в ubuntu

VDPAU — API от nvidia, позволяющее использовать технологию PureVideo HD в Linux. А соответственно PureVideo HD это полностью аппаратное декодирование HD видео с кодеками H.264/X.264 и VC-1 (xvid, divx, wmv).
VDPAU поддерживается на всех видеокартах nvidia серии 9000 и позже (подробный список тут).
Правда на некоторых видеокартах, особенно Gigabyte, не написано что они поддерживают PureVideo HD, хотя запустить удалось без особых проблем.
Результат: декодирование x.264, FullHD 1920×1080 с 1-2% нагрузкой на процессор. Без VDPAU процессор не справляется, и видео идет рывками, 5-6 кадров в секунду.

Технология довольно новая (драйвер для linux выпустили год назад), нужно иметь подходящий видеодрайвер (nvidia 180, который ставит ubuntu подходит) и пропатченый плеер.
Все это можно взять из готовых репозиториев, так что поехали.

#Добавляем источник программ
sudo -i
cat > /etc/apt/sources.list.d/vdpau.list <<«EOF»
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main
EOF
#получаем открытый ключ для него
apt-key adv —keyserver keyserver.ubuntu.com —recv-keys CEC06767
#обновление программ
apt-get update
apt-get install mplayer smplayer
exit

Дальше можно проверять. Для консольного mplayer команда следующая:

mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau, film.mkv

Для графической оболочки smplayer нужно в настройках поставить видеовывод (vo) vdpau и на закладке дополнительно-настройки mplayer вписать

-vc ffh264vdpau,ffmpeg12vdpau,

И я советую тотключить «позволять выпадение кадров», иначе будет медленно перематывать (без vdapu эффект обратный).

P.S. на Windows XP я не смог запустить PureVideo HD на этой же видеокарте. Как выяснилось, «обычные плееры» не умеют, только 2 платных плеера: Cyberlink PowerDVD и Nero Showtime. Но первый не понимает ничего кроме AVI, а второй вообще отказался работать. Если включить их через DirectShow, как пишут в интернете, никакого декодирования не получается. Это возможно, я не спорю, но на много сложнее чем в ubuntu 🙂

UPD: если при проигрывании появляются надписи типа «ffh264vdpau not found in libavcodec», то нужно поставить полную версию кодеков:

sudo apt-get install libavcodec-unstripped-52 libavformat-unstripped-52