LINUX.ORG.RU

mpv + vaapi Может кому пригодится.

 , , ,


3

3

Время от времени возникают вопросы об ускорении vaapi в mpv. Особенно не на intel карточках. Так вот, лёд тронулся. Почитать можно в этом треде https://github.com/mpv-player/mpv/issues/5711
Вкратце - в Мезу добавили всё что надо, ну и MPV с libva свежие нужны.
Проверял на обычном h264
Наконец-то оно заработало так же эффективно как 100 лет работает vdpau. Ну почти... там есть вопросы например по деинтерлейсу...
Полезно, если AMD дропнут поддержку vdpau.

По идее должно быть достаточно (при пустом config'е)
mpv --hwdec=vaapi <файло>

Однако мне пришлось так.
mpv --gpu-context=x11egl --hwdec=vaapi <файло>
Судя по логу оно и так пытается загрузить vaapi-egl, но без этой опции фейлится.

Mesa из Padoka, mpv 28 из PPA указанного на их оф. сайте. Остальное (ядро, libva, ffmpeg) - дефолт из Ubuntu 18.04 Правда, с дефолтным ядром возможно есть какая-то нештабильность, хотя может это частная проблема. Короче всё ещё YMMV но прогресс на лицо.

$ vainfo
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Mesa Gallium driver 18.2.0-devel - padoka PPA for AMD CAPE VERDE (DRM 2.50.0, 4.15.0-22-generic, LLVM 7.0.0)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileNone                   :	VAEntrypointVideoProc

★★★☆☆

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

не пользуюсь. ну иногда, если блюрик посмотреть и ВЛЦ в меню сможет.
ну и надо сказать поддержка всякоразных ускорений в нем всегда сильно отставала от mplayer/mplayer2/mpv (у них венда главнее, да и там они в ускорение смогли ЕМНИП только с семерки)
Плюс понять что в этом QtMonstreJackOfAll::trades(Template<>,Template<>,Template<>) происходит, ежли что не так, намного сложнее.

mos ★★★☆☆ ()
Последнее исправление: mos (всего исправлений: 1)
Ответ на: комментарий от Shein

верю, верю! (с)
но если файло без всяких прибамбасов типа суперхитрой матрёшки с hdr 8 bit 4k видео внутри то думаю и он справится))
хотя коряво накодировать умельцы с рутрекеров могут что угодно и как угодно.

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

но если файло без всяких прибамбасов типа суперхитрой матрёшки с hdr 8 bit 4k видео внутри то думаю и он справится))

Но зачем рисковать?) Даже если и потянет, желания его установить не возникает. По крайней мере, у меня.

хотя коряво накодировать умельцы с рутрекеров могут что угодно и как угодно.

Радует, что на таких давно не натыкался)

вообще посмотрев еще раз на скриншот возникает подозрение - а может так и задумано?))))

Забавно просто посмотреть на скриншот, но если это происходит постоянно...Пукан, конечно полыхает.

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

но вот сцуко почему-то у всех это у всех любителей (фандабнутых) порномультегов))

не в качестве тралинга даже... но как нужно сделать двдрип чтоб оно глючило так? может влц тут и не при чем? может это просто сабберы/дабберы талантливы во всём?)) только не надо тыкать что в $MY_FAVOURITE_PLAYER оно работает.

mos ★★★☆☆ ()
Последнее исправление: mos (всего исправлений: 1)
Ответ на: комментарий от EXL

А ещё он не умеет нормально перематывать MKV. Если мотнуть, то получаем серое изображение с разницей кадров, пока не сменится следующий кадр (план). Странно, но если тот же файл без перекодировки загнать в AVI, то всё хорошо работает.

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

кто-то этот мкв умеет «нормально»?

ЗЫ ессичо я глюков влц помню предостаточно. начиная от того что он даже на паузу мговенно не мог поставить))) вылечили. долго лечили))). авторы там всеже спецыфыческие похоже.

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

Вот знаешь, никогда vlc не пользовался.

Поставил я как-то vlc, чтобы жена им пользовалась. Она запустила какой-то фильм, vlc показал квадраты вместо фильма. Она закрыла vlc и потребовала «научить пользоваться этим твоим программистским проигрывателем».

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

Тоже «порномультики» виноваты?

но как нужно сделать двдрип чтоб оно глючило так? может влц тут и не при чем?

Может если в других плеерах работает, а в vlc не работает, то двдрип ни при чем?

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

а вот с VLC это рулетка.

Есть легенда, что рулетку даже кому-то удавалось вылечить. Но для меня квадраты просто меняли свои цвета(с зеленого на сине-зеленый). Но рано или поздно они всё равно появлялись. Ковырять настройки vlc было сложнее, чем 1 раз настроить mpv.

Shein ()

А по сабжу — здорово.

Проверил на Sandy Bridge.

Дефолт — загрузка CPU 30-40%:

$ mpv Lidija\ Bačić\ -\ Krivi\ čovjek\ \(Official\ video\ 2014\).mp4 
Playing: Lidija Bačić - Krivi čovjek (Official video 2014).mp4
 (+) Video --vid=1 (*) (h264 1280x720 25.000fps)
 (+) Audio --aid=1 --alang=und (*) (aac 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch float
VO: [gpu] 1280x720 yuv420p
AV: 00:00:26 / 00:04:17 (10%) A-V:  0.000

vaapi — загрузка CPU 7-8%:

$ mpv  --hwdec=vaapi Lidija\ Bačić\ -\ Krivi\ čovjek\ \(Official\ video\ 2014\).mp4 
Playing: Lidija Bačić - Krivi čovjek (Official video 2014).mp4
 (+) Video --vid=1 (*) (h264 1280x720 25.000fps)
 (+) Audio --aid=1 --alang=und (*) (aac 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch float
Using hardware decoding (vaapi).
VO: [gpu] 1280x720 vaapi[nv12]
AV: 00:00:58 / 00:04:17 (22%) A-V:  0.000

Если я правильно понимаю, на ютубе большинство видео (все?) — как раз в h264? Я тонны музыки оттуда выкачиваю.

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

Если я правильно понимаю, на ютубе большинство видео (все?) — как раз в h264?

Нет. Если по простому, то они в h264 и VP9 одновременно. Причём продвигается VP9. Например, Safari (по сути единственный браузер, который не поддерживает VP9) лишён 4K видео на ТыТрубе.

anonymous ()

Время от времени возникают вопросы об ускорении vaapi в mpv. Особенно не на intel карточках. Так вот, лёд тронулся.

Всмысле тронулся?

Как бэ связка mpv + vaapi очень давно работала.

Или на AMD вообще такой отстой был?

Ну наменяли что-то наломав старые конфиги. Ни в первый, ни в последний раз.

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

Поддерживается VP9

Этак рубеж вообщем для оборудования 2016 год и новее.

Но вот с софтом да — могут быть попы.

Как ты и сказал про браузеры в линуксе. Ну и macOS не предоставляет декодирование VP9 для любых приложений, хоть Intelовские встройки в тех же новы эх MacBookах имеют его поддержку.

Ну и само собой, что под Windows 10 есть поддержка декодирования VP9 в 4К в браузерах. Как и впрочем всякие 4K smart TV 📺 (например сосунг на Tizen) его умеют. Ну и хромобуки тоже умеют. Вообщем массово он покрыт.

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

Всмысле тронулся? Как бэ связка mpv + vaapi очень давно работала.

Я вот слоупок и не задумывался, умеет ли mpv в аппаратное декодирование.

Так что как минимум одному слоупоку тема помогла.

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

ну так то оно на линуксах в каком-либо виде минимум лет 10 работает. vdpau по крайней мере: https://www.phoronix.com/scan.php?page=article&item=nvidia_vdpau&num=1
другое дело много нюансов. о чем я и пишу. ему неохота разбираться про что именно тут.

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

Да, я как-то в стороне от AMD оставался. Везде Intel или Nvidia

И для меня реально шок читать что-то типа «Для AMD можно уже использовать VAAPI вместо VDPAU». В то время как Nvidia уже на выкидывает VAAPI.

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

Если я правильно понимаю, на ютубе большинство видео (все?) — как раз в h264? Я тонны музыки оттуда выкачиваю.

Не, оно там почти всё в VP9 + Opus,

см. Статистику для сисадминов / Stats for nerds на роликах

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

Извини, конечно же описка

Имелось в виду конечно же это.

И для меня реально шок читать что-то типа «Для AMD можно уже использовать VAAPI вместо VDPAU». В то время как Nvidia уже на выкидывает VDPAU.

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

amd давно поддерживает и vaapi и vdpau. и якобы еще openmax ноэтонеточно.
несколько лет назад они пытались что-то там непонятное делать, но в итоге решили разумно.
просто поддержка vaapi в тех же mplayer'ах и его наследниках была какая-то более мутная. а vdpau наоборот - патч написали 10 лет назад и с тех пор оно работает. мне и сейчас хватает. но мало ли что, надо будет перелезать. вот обновлю комп, там уже карта с amdgpu будет, там еще проверять придется...

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

Ну и само собой, что под Windows 10 есть поддержка декодирования VP9 в 4К в браузерах.

Судя по информации об аппаратном обеспечении, ни одно ядро NVIDIA не научилось декодировать VPx выше 8. Всё, что выше VP8, NVIDIA поддерживает аппаратный декодинг HEVC (H.265).

Как тут пишут, «оно там почти всё в VP9 + Opus, см. Статистику для сисадминов / Stats for nerds на роликах», как оно реализовано в Windows 10 - непонятно. Может всё-таки аппаратно декодируется поток h.264 или VP8, который отдаёт источник взамен VP9?

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

Судя по информации об аппаратном обеспечении, ни одно ядро NVIDIA не научилось декодировать VPx выше 8.

Я иногда думаю, что это я какой-то обдолбанный и ничего не понимаю, но как так-то...

Открываем твою же ссылку

The seventh generation of PureVideo HD, introduced with the GeForce GTX 960 and also included in GTX 950 and GTX 750 SE, a second generation Maxwell (microarchitecture) GPU (GM206), adds full hardware-decode of H.265 Version 1 (Main and Main 10 profiles) to the GPU's video-engine. Feature Set F hardware decoder also supports full fixed function VP9 (video codec) hardware decoding.

Feature Set F. Introduced dedicated HEVC Main (8-bit) & Main 10 (10-bit) and VP9 hardware decoding video decoding up to 4096 × 2304 pixels resolution.

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

А по сабжу — здорово.

Проверил на Sandy Bridge.

h264 на Sandy Bridge mpv так ускоряет у меня уже даже не вспомню сколько лет.

У ТС ударение на:

Особенно не на intel карточках.

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

Для GM205 (GeForce GTX 750 SE, GTX 950, GTX 960) VDPAU Feature Set F, но в таблице PureVideo HD всего лишь VP7. Скорее всего, это опечатка, которая и сбивает с толку.

Смотрим здесь, какие видеокарты NVIDIA поддерживают декодирование VP9: Maxwell GM206 (GTX 950/960/750v2), Pascal (GTX 1080/1070/1060/1050, GT 1030), Volta, Tegra X1. То есть аппаратное декодирование VP9 стало доступно «игрунам» в середине 2016 года, а «офисникам» (тем, кто купил новый компьютер/проапгрейдил видео) - не больше года назад (GT 1030 анонсирована 17.05.2017). Остальные до сих пор довольствуются жалкими h.264, VP8 или пользуются современными смартфонами Samsung. :)))

iZEN ★★★★★ ()