[О блоге] [наверх] [пред] [2019-01-06 19:29:56+03:00] [71154f45d9f366207838a37a870434857d0652a0]
Темы: [hard][multimedia]

Приключения с видеоускорением

На текущем ноутбуке у меня Skylake процессор со встроенной графикой. До
FreeBSD 12 (ну и 11.2) это видео, хоть и Intel, не поддерживалось. Я
сидел с scfb драйвером (типа VESA для UEFI) и только из-за него и
грузился в UEFI режиме. Недавно перешёл на FreeBSD 12 и там в порте есть
drm-kmod пакет, предоставляющий KMS (новый API для современных видеокарт).
С ним я отказался от scfb и выставил intel драйвер в Xorg.conf. OpenGL
работает, XrandR работает.

Оказалось что intel драйвер включать не надо и он всё портит. Я обратил
внимание что Xv то у меня не заработал -- ну и ладно, подумал. А вот
теперь если выставить modesetting драйвер в Xorg, то Xv начинает
работать. При этом сам по себе Xorg есть меньше CPU!

На старом ноутбуке я помню что кроме Xv у меня работал и XvMC. Тут
никак. Точно не знаю, но видимо его вообще перестали поддерживать и
вместо него теперь все делают VDPAU или VA-API (Intel). Для VA
установил: libva-intel-driver и libva-utils. vainfo показал что VA-API
поддерживается железом и оно умеет декодировать MPEG2, H.264, VC-1,
HEVC, JPEG, VP8. Но MPlayer не держит VA-API, а только VDPAU. Ok,
устанавливаю libvdpau-va-gl: это VDPAU работающий через OpenGL с VA-API,
используя его как backend. vdpauinfo показал что VDPAU у меня есть с
VA-API backend-ом, но поддерживается только H.264-связанные вещи, не
считая цветовых преобразований и scaling.

Стоило ли оно всего этого? mplayer с -vo xv жрёт ресурсов меньше всего
(на scaling и преобразование цветов), с -vo vdpau немного больше.
Однако! Если использовать VDPAU-aware декодеры видео (-vo vdpau -vc
ffh264vdpau), то вместо 70-80% загруженного CPU на FullHD H.264 видео, я
имею 7-8% загрузку! То есть, очень даже стоит того! Но, из-за того что
mplayer держит только VDPAU, а он из-за VA-API только H.264
предоставляет, я только на этом кодеке и могу увидеть такое сильное
ускорение.

    [оставить комментарий]