Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2020-04-11 00:50:34

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

[SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Próbuję bez powodzenia zmusić do działania przyspieszenie sprzętowe dla wideo na komputerze z procem Intela J4205 (mikroarchitektura Apollo Lake) z Debianem Busterem na pokładzie. Jajo: 4.19.0-8-amd64.

Zainstalowałem z repo debiana intel-media-va-driver-non-free i965-va-driver-shaders.

Dodałem usera do grupy video:

Kod:

$ groups |grep -o video
video

vainfo - bez wyeksportowania zmiennej DISPLAY:

Kod:

 $ vainfo 
error: can't connect to X server!
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=i965
vaInitialize failed with error code 1 (operation failed),exit

vainfo: DISPLAY=:0

Kod:

$ vainfo 
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 2.4.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Broxton - 2.3.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD

sprawdziłem, że faktycznie istnieje w systemie /dev/dri/renderD128

próbuję użyć tego wsparcia w ffmpegu (z repo debiana):

Kod:

$ ffmpeg -init_hw_device vaapi=foo:/dev/dri/renderD128
ffmpeg version 4.1.4-1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[AVHWDeviceContext @ 0x55d6a77ab6c0] No VA display found for device: /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'vaapi=foo:/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument

próbowałem też innej kompilacji ffmpega - to samo (ze zmienną DISPLAY=:0 jak i bez):

Kod:

$ ./ffmpeg -init_hw_device vaapi=foo:/dev/dri/renderD128
ffmpeg version 4.2.2-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[AVHWDeviceContext @ 0x5b1cb00] No VA display found for device /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'vaapi=foo:/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument

Próbowałem tej komendy jak i prostych konwersji - skutek ten sam. Przetrząsam internety, ale bez rezultatu. Czemu dziadostwo nie chce współpracować po dobroci?

Ostatnio edytowany przez seler (2020-04-26 20:02:39)


a to feler westchnął seler

Offline

 

#2  2020-04-11 16:35:16

  mati75 - Psuj

mati75
Psuj
Skąd: masz ten towar?
Zarejestrowany: 2010-03-14

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Wrzuć kernel i mesa z backports.


https://l0calh0st.pl/obrazki/userbar.png

Offline

 

#3  2020-04-25 18:53:08

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

zainstalowałem kernel z buster-backports:

Kod:

$ uname -r
5.4.0-0.bpo.4-amd64

W buster-backports nie ma pakietu mesa (ani mesa-va-drivers).

Niestety nic to nie zmieniło - wszystko jest identycznie jak wcześniej ( /dev/dri/renderD128 istnieje, a ffmpeg wypluwa to samo co w pierwszym poście :( )

Ostatnio edytowany przez seler (2020-04-25 18:53:46)


a to feler westchnął seler

Offline

 

#4  2020-04-26 06:38:56

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Używasz Xorga czy Waylanda?

Pytam, bo u mnie na Waylandzie chodzi na vo=opengl albo vaapi-copy.

GPU:

Kod:

Graphics:  Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics driver: i915 v: kernel 
           Display: wayland server: X.Org 1.20.7 driver: i915 resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel Haswell Desktop v: 4.5 Mesa 19.3.5

Ostatnio edytowany przez Jacekalex (2020-04-26 06:39:14)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2020-04-26 12:33:20

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Xorg - mam tam XFCE

Kod:

Graphics:  Device-1: Intel Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Integrated 
           Graphics 
           vendor: ASRock driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:5a84 
           Display: x11 server: X.Org 1.20.4 driver: modesetting unloaded: fbdev,vesa 
           resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel HD Graphics 505 (Broxton) v: 4.5 Mesa 18.3.6

Ostatnio edytowany przez seler (2020-04-26 12:41:50)


a to feler westchnął seler

Offline

 

#6  2020-04-26 14:07:47

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Sprawdź mpv

~/.config/mpv/mpv.conf

Kod:

vo=gpu
hwdec=vaapi 
hwdec-codecs=all

Kod:

$mpv '/media/nfs/timon/dane/Filmy/Pan Anatol szuka miliona.mkv' 
 (+) Video --vid=1 (*) (h264 720x576 25.000fps)
 (+) Audio --aid=1 --alang=pol (*) (mp3 2ch 44100Hz)
[vaapi] libva: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
AO: [alsa] 44100Hz stereo 2ch float
Using hardware decoding (vaapi).
VO: [gpu] 720x576 => 1024x576 vaapi[nv12] AV: 00:00:16 / 01:13:40 (0%) A-V:  0.000 Cache: 1241s/150MB

Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#7  2020-04-26 14:14:41

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Z twoim configiem:

Kod:

$ mpv Sztuka\ przekraczania\ _\ The\ Art\ of\ Breaking\ the\ Ground-NVEBWUM8lko.mkv 
Playing: Sztuka przekraczania _ The Art of Breaking the Ground-NVEBWUM8lko.mkv
 (+) Video --vid=1 (*) (h264 1920x1080 25.000fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[vo/gpu/vaapi-egl] vaAcquireSurfaceHandle() failed (invalid VASurfaceID)
Using hardware decoding (vaapi).
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 1920x1080 vaapi[nv12]
AV: 00:00:04 / 00:51:41 (0%) A-V:  0.000

a to feler westchnął seler

Offline

 

#8  2020-04-26 14:17:07

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Czyli działa.
W czym widzisz problem.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#9  2020-04-26 14:22:08

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

No tak, odtwarza się.
Problem widzę w tym, że nie mogę użyć tego vaapi do transkodowania przy użyciu ffmpega. Chciałbym wspomóc się sprzętowym transkodowaniem, m.in. do streamowania wideo wyciągniętego z tunera dvb-t podpiętego przez USB. A także do okazjonalnego szybszego enkodowania różnych materiałów wideo do h264 (lub h265 o ile dałoby radę z tym sprzętem)

Ostatnio edytowany przez seler (2020-04-26 14:23:01)


a to feler westchnął seler

Offline

 

#10  2020-04-26 14:27:29

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

h265 na pewno nie.
Po vainfo widać że tego nie obrabia.

Z transkodowaniem nie mam doświadczen. Moja karta tego nie obrabia.
Co do tunera dvb-t po cholerę to przerabiać.
Lepiej puścic w takiej postaci jakiej jest.
tvheadend radzi sobie z tym wyśmienicie.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#11  2020-04-26 14:30:10

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

żeby np. puścić w niższej rozdzielczości przez net na komórkę i nie zużyć całego transferu na oglądanie twarzy polityka w ultra hd :)


a to feler westchnął seler

Offline

 

#12  2020-04-26 19:26:41

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

U mnie wydaje sie działać takie polecenie.

Kod:

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128 -i film.ts  -c:v h264_vaapi output.mp4

Dalekie mu do doskonałości ale działa.

Kod:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
  Stream #0:1 -> #0:1 (mp2 (native) -> aac (native))

Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#13  2020-04-26 19:52:58

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

u mnie to polecenie daje:

Kod:

[AVHWDeviceContext @ 0x557b055b9400] No VA display found for device: /dev/dri/renderD128.
Device creation failed: -22.
[h264 @ 0x557b055c9c80] No device available for decoder: device type vaapi needed for codec h264.
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Device setup failed for decoder on input stream #0:0 : Invalid argument

MAM!
Spod roota zadziałało! Najwidoczniej kwestia praw dostępu. Tylko dlaczego, skoro user należy do grupy video?


a to feler westchnął seler

Offline

 

#14  2020-04-26 19:59:58

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Kod:

adam@debian:~/Pulpit$ groups
adam audio dip video plugdev kvm netdev lpadmin scanner

Po dodaniu do grupy trzeba się przelogować.
Najlepiej zaś restart maszyny przeprowadzic.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#15  2020-04-26 20:01:22

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

problem rozwiązany. /dev/dri/renderD128 należał do grupy render:

Kod:

$ ls -l /dev/dri/renderD128
crw-rw----+ 1 root render 226, 128 kwi 25 18:42 /dev/dri/renderD128

dodanie usera do tej grupy załatwiło sprawę. Taka prosta rzecz, a tyle się z tym bujałem...

Edit: w grupie video byłem od samego początku, zresztą w pierwszym poście o tym jest napisane. Nie mam pojęcia skąd ta grupa render - w kontekście vaapi wszędzie pisze właśnie o grupie video, a nie render.

Ostatnio edytowany przez seler (2020-04-26 20:04:35)


a to feler westchnął seler

Offline

 

#16  2020-04-27 20:50:33

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [SOLVED] VAAPI: Apollo Lake (J4205) + Buster

Jak na razie nie udało mi się ułożyć składni polecenia dla ffmpeg która by mnie zadawalała.
Owszem kodowanie trwa trzy razy szybciej przy użyciu h264_vaapi ale niestety żeby uzyskać podobną jakość jak przy użyciu libx264 to pliki wynikowe ważą 3x więcej niestety.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)