LINUX.ORG.RU

hybrid_drv_video.so Haswell vp9 vp8

 , , , ,


0

2
 vainfo 
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_5
/usr/local/lib/dri/hybrid_drv_video.so init failed
Not using hybrid_drv_video.so
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.5 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 2.4.0.pre1 (2.3.0-11-g881e67a)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD



/usr/local/lib/dri/hybrid_drv_video.so init failed
Not using hybrid_drv_video.so

i-rinat
как думаешь, оно вообще должно работать на хасвеле?
тут вот пишут, что да
https://wiki.archlinux.org/index.php/Hardware_video_acceleration

но я собрал всё как тут
http://qaru.site/questions/4637854/how-do-you-get-ffmpeg-to-encode-with-vaapi

но толку нет(
видел на форумах люди пишут, что и не должно работать, или что нужна версия libva меньше 2.0
но есть вариант, что соберу с нужной либой и всё равно не заработает т.к. мб на хасвеле и не должно

★★★★★

https://gist.github.com/BtbN/0f55022fec3153ce63b8

тут у кого-то на хасвеле есть VAProfileVP9Profile0

timo@Zeo ~ % export LIBVA_DRIVER_NAME=hybrid
timo@Zeo ~ % vainfo
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'hybrid'
libva info: Trying to open /usr/lib64/va/drivers/hybrid_drv_video.so
libva info: Found init function __vaDriverInit_0_34
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.1.pre1)
vainfo: Driver version: Intel hybrid driver - 1.0.1.pre1
vainfo: Supported profile and entrypoints
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
timo@Zeo ~ % unset LIBVA_DRIVER_NAME
timo@Zeo ~ % vainfo
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/va/drivers/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.1.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 1.6.1.pre1 (1.6.0-40-g6f2ea35)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD

smilessss ★★★★★
() автор топика

как думаешь, оно вообще должно работать на хасвеле?

Вроде да. Но не расчитывай, что будет вообще отлично. У меня в первый раз декодер выдал вообще чёрно-белую картинку — повезло наткнуться на какой-то баг. А потом, когда сравнивал, где-то раза в два меньше CPU ест, чем чисто программное декодирование.

что нужна версия libva меньше 2.0

Да. В новой libva поменялись некоторые имена, гибридный драйвер не может их найти. Как обход, попробуй патч отсюда: https://github.com/01org/intel-hybrid-driver/pull/26/files. Он в общем случае не вполне правильный, но должен сработать.

но есть вариант, что соберу с нужной либой и всё равно не заработает т.к. мб на хасвеле и не должно

Возможно и так. Но в коде есть проверки «не haswell ли это», так что есть шанс, что работать будет. Подозреваю, что там на GPU скидывается только простая работа, с которой шейдеры справляются. Так что не удивлюсь, если этот декодер и на всяких Sandy Bridge заработает.

i-rinat ★★★★★
()

А, да. Драйвер для i965 нужно ещё собрать с --enable-hybrid-codec, иначе он не будет цеплять hybrid драйвер.

i-rinat ★★★★★
()
Ответ на: комментарий от athost

А можно его в принципе заставить аппаратно проигрывать HEVC?

Не думаю. Там ведь всё-таки специализированные схемы под каждый кодек. Теоретически возможно гибридное декодирование, где на GPU перекладывается что-нибудь простое, но ресурсоёмкое. Но я не в курсе, есть ли такое для Haswell.

Кстати, вот документация на декодер в Haswell GPU: https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-hsw-media...

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat
vainfo 
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.5 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 2.4.0.pre1 (2.3.0-11-g881e67a)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD



пересобрал с версией libva 1.8, заработало.
Теперь ютуб отдаёт vp9 + opus и всё это декодирутся с GpuVideoDecoder на хасвеле, правда это же читерсво и не совсем так

т.к. загрузка cpu на h264 10% а на vp9 45%
смысла делать это для хасвела нет(

smilessss ★★★★★
() автор топика
Последнее исправление: smilessss (всего исправлений: 2)
Ответ на: комментарий от smilessss

А чисто софтово сколько %CPU занимает vp9? Ещё было бы неплохо, если бы частоты сравнил. А то бывает много процентов, но частоты низкие.

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

А чисто софтово сколько %CPU занимает vp9?

не знаю как проверить(

сейчас в 73 хромиум завезли
MojoVideoDecoder
хз что это и чем оно лучше gpuvideodecoder

что думаешь по этому поводу?)
вроде загрузка не увеличилась

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

У них был фреймворк для межпроцессного и межязыкового взаимодействия под названием Mojo. Наверное, что-то с этим связаное.

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