LINUX.ORG.RU

gstreamer + VA-API + VDPAU

 , , , ,


0

1

У кого-нибудь есть история успеха скрещивания Gstreamer c аппаратным ускорением Nvidia на Debian Testing или Ubuntu? У меня покамест ничего не выходит со стоковыми пакетами (gstreamer0.10-vaapi), хотя VLC и Mplayer вполне себе работают.

gst-launch-0.10 -v filesrc location='some.mkv' ! matroskademux ! vaapidecode ! vaapisink
Setting pipeline to PAUSED ...
libva: VA-API version 0.32.0
Xlib: extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:src: caps = video/x-surface, width=(int)1280, height=(int)720, framerate=(fraction)500000000/20854199, pixel-aspect-ratio=(fraction)1/1, type=(string)vaapi, opengl=(boolean)true
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:sink: caps = video/x-h264, level=(string)5.1, profile=(string)high, codec_data=(buffer)01640033ffe1001867640033ac34e2805005ba10001974f004c4b408f18318a801008468eebce5531cc305d2628d13080214868783a1c0d04e12142c0ac0da02fe10042ad35e9e850b748c778a1410088b172105449ca3050e204448b20a4d8a081827090809848541dc4290a43164215a201900cae8340f81e86f03300b6017002ac05981d61a07802a8400a902087404700bc010506e036404b811805902e07203e0087ff85b, stream-format=(string)avc, alignment=(string)au, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)500000000/20854199
gst-launch-0.10: vdpau_decode.c:1264: vdpau_EndPicture: Assertion `obj_buffer' failed.

Голый выхлоп vainfo:

vainfo
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG4Simple            :	VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
☆☆☆☆☆

Ответ на: комментарий от Novell-ch

В чём рецепт? Пакеты то у меня стоят, segfault у меня случается только. Ладно, сейчас с версиями разберусь и патчами.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от Novell-ch

Да и интел у тебя, а у меня vaapi-vdpau прокладка к nvidia

timur_dav ☆☆☆☆☆ ()

Не знаю, как оно в DEB*, а в Fedora'е VDPAU-->VAAPI практически не разгружает процессор. Так что особого смысла в использовании VAAPI на картах Nvidia не вижу. С gstreamer'ом проблем нет.

carasin ★★★★★ ()
Ответ на: комментарий от timur_dav

У меня во всех версиях Fedora'ы работает/работало (т.е. играет кино, ошибок не выдаёт; но и особой разгрузки процессора нет ― разница на 1080p так себе, процентов 5―10 максимум, i3 2330M загружен на ~45―55% ― соответственно с «ускорением» и без него).

carasin ★★★★★ ()
Ответ на: комментарий от carasin

gst-inspect-0.10 | grep vaapi в студию и запусти через gst-launch-0.10 в кач-ве доказательства использования аппаратного ускорения.

Что-то мне подсказывает, что у тебя программное декодирование.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от timur_dav

gst-inspect-0.10 | grep vaapi ничего не вернуло.

Значит, у меня нет ускорения? Или ускорения нет только в gstreamer'е?

В общем, бекендом в кедах у меня стоИт как раз gstreamer, но видео играется SMPlayer'ом и иногда VLC.

Я что-то не так делаю?

carasin ★★★★★ ()
Ответ на: комментарий от carasin

gst-inspect-0.10 | grep vaapi - если выхлоп пуст, то ускорения в gstreamer нет. В vlc надо опцию включить в настройках - без неё болт.

vainfo выхлоп дай ещё, тогда можно точно сказать, есть ли все библиотеки для VA-API.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от timur_dav
$ vlc ./Звездные\ войны\ -\ Эпизод\ 1\ -\ Скрытая\ угроза\ \(Star\ Wars\ -\ Episode\ I\ -\ The\ Phantom\ Menace\)\ \[1999\].mkv 
VLC media player 2.0.1 Twoflower (revision 2.0.1-0-gf432547)
[0x8b74db0] dbus interface: listening on dbus as: org.mpris.MediaPlayer2.vlc
[0x8b7e878] main interface error: no suitable interface module
[0x8ad7d40] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x8ad7d40] main libvlc: Запуск vlc с интерфейсом по умолчанию. Используйте 'cvlc' для запуска vlc без интерфейса.
MKV/Ebml Parser: m_el[mi_level] == NULL
MKV/Ebml Parser: Up cannot escape itself
MKV/Ebml Parser: m_el[mi_level] == NULL
MKV/Ebml Parser: Up cannot escape itself
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/nvidia_drv_video.so
No accelerated IMDCT transform found
libva: va_openDriver() returns 0
[0xb360a920] avcodec decoder: Using VA API version 0.32 for hardware decoding.

Правда, это не 1080p, ибо нет сейчас на ноуте 1080p. Мувик «весит» 4,8 ГиБ.

carasin ★★★★★ ()
Ответ на: комментарий от timur_dav

В VLC галка стоИт.

$ vainfo
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG4Simple            : VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD

carasin ★★★★★ ()
Ответ на: комментарий от timur_dav

Про то, что VLC только VAAPI умеет, это я в курсе. То, что MPlayer умеет только VDPAU,― тоже в курсе.

А вот насчёт VAAPI в MPlayer'е ― не в курсе. Можно подробнее?

carasin ★★★★★ ()
Ответ на: комментарий от carasin

Похоже на то, что vlc таки работает. Что и не удивительно, если всё стоит и настроено. Но меня gstreamer интересует. Это куда интереснее, ибо помимо totem, миниатюр и пр., оно ещё ускорит и видеозвонки в empathy. Чего не умеют ни гуглоплагин, ни скайпик.

Даже на самых убогих картах разница в загрузке должна быть драматичной даже со всеми этими прокладками и выводом через OpenGL.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от timur_dav

Mplayer раньше только VDPAU умел, но сейчас и VA-API умеет.

Только со сторонними патчами или официально уже?

GotF ★★★★★ ()
Ответ на: комментарий от carasin

Я сейчас им не пользуюсь, во времена первого mplayer'а для него был соотв. патч для поддержки VA-API. Даже работал. Но у тебя nvidia и смысла использовать vaapi, если есть vdpau не вижу.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от GotF

Я сейчас им не пользуюсь, поэтому не могу ручаться.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от carasin

Ну посмотри, что там сейчас. Я то откуда знаю. Я ж говорю, что это на 1.x было, а сейчас 2.x на дворе. Не вижу причин, чтобы его не приняли. Там делов то...

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от carasin

В теории поставить пакет gstreamer0.10-plugins-vaapi. Но практике в нём баг (в нём ли?) и он не работает.

timur_dav ☆☆☆☆☆ ()
Ответ на: комментарий от carasin

Наверное поставить пакет gstreamer0.10-vaapi (в ubuntu такой пакет в репах).

Для федоры скорее всего придется собирать пакет с этими патчами

http://gitorious.org/vaapi/gstreamer-vaapi

или поставить пакет от fedora 16 (можно также пересобрать пакет для федоры 17)

http://pkgs.org/search/?keyword=gstreamer-vaapi

anonymous ()
Ответ на: комментарий от anonymous

О! Вторая ссылка, похоже, то что надо. Позже опробую ― отпишусь.

carasin ★★★★★ ()
Ответ на: комментарий от timur_dav

Не, живой пока. Из RPM-Fusion'а его хотели выкинуть, потому как мейнтейнер посчитал геморной его поддержку ввиду сложности сборки и привязки его версий к версиям FFmpeg'а. Но по истечению какого-то времени нашёлся доброволец на мейнтейнерство пакетов с MPlayer'ом.

А так, да, когда поднялась вонь по этому поводу, в russianfedora'е оперативно подсуетились и стали поддерживать в своём репозитории пакет со вторым MPlayer'ом.

carasin ★★★★★ ()
Ответ на: комментарий от timur_dav
> apt-cache policy mplayer
mplayer:
  Installed: 2:1.0~rc4.dfsg1+svn34540-1+b2
  Candidate: 2:1.0~rc4.dfsg1+svn34540-1+b2
  Version table:
 *** 2:1.0~rc4.dfsg1+svn34540-1+b2 0
        990 file:/home/debian/wheezy-cache/ wheezy/main amd64 Packages
        990 http://ftp.debian.org/debian/ wheezy/main amd64 Packages
        500 http://ftp.debian.org/debian/ sid/main amd64 Packages
        100 /var/lib/dpkg/status

???

GotF ★★★★★ ()
Ответ на: комментарий от GotF

это в дебиане расчленили пакет, никто никуда не переименовывался

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.