사용자 도구

사이트 도구


linux:vaapi

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linux:vaapi [2021/12/24 22:58]
kwon37xi [Firefox]
linux:vaapi [2023/12/22 14:59] (현재)
kwon37xi
줄 35: 줄 35:
  
 ===== Intel ===== ===== Intel =====
-  Ubuntu Intel Graphic Card 에서는 ''libva-intel-vaapi-driver'' ''i965-va-driver'' 설치+ 
 +  [[linux:nvidia|Linux Nvidia Graphic Card]] / Intel Dual graphic 일 경우도 ''on-demand'' 나, ''intel'' 모드로 두면, intel va api 드라이버로 잘 작동한다. 
 +  * Intel CPU Gen 8 이상 
 +<code sh> 
 +# 기본으로 intel-media-va-driver 가 설치되는데 non-free 버전으로 교체 
 +sudo apt install intel-media-va-driver-non-free libva-drm2 libva-x11-2 
 +</code> 
 +  * Intel CPU Gen 7 이하 
 +<code sh> 
 +sudo apt install i965-va-driver-shaders libva-drm2 libva-x11-2 
 +</code> 
 <code sh> <code sh>
 +# Utilities
 sudo apt install intel-gpu-tools sudo apt install intel-gpu-tools
  
-# intel gpu 사용상황 확인+# intel gpu 사용상황 확인 - Video 항목의 % 가 올라가면 GPU Video Encoding 을 사용하는 것이다.
 sudo intel_gpu_top sudo intel_gpu_top
 </code> </code>
줄 48: 줄 60:
  
 ===== NVidia ===== ===== NVidia =====
 +  * [[linux:nvidia|Linux Nvidia Graphic Card]]
   * Proprietary 드라이버 설치   * Proprietary 드라이버 설치
-  * ''libvdpau1'' 설치+  * ''libvdpau1'' 설치 : 이것은 vdpau 드라이버임. vaapi 와는 다른 형식의 가속기능.
   * [[https://github.com/xuanruiqi/vdpau-va-driver-vp9|xuanruiqi/vdpau-va-driver-vp9: Experimental VP9 codec support for vdpau-va-driver (NVIDIA VDPAU-VAAPI wrapper) and chromium-vaapi]]   * [[https://github.com/xuanruiqi/vdpau-va-driver-vp9|xuanruiqi/vdpau-va-driver-vp9: Experimental VP9 codec support for vdpau-va-driver (NVIDIA VDPAU-VAAPI wrapper) and chromium-vaapi]]
   * [[https://github.com/freedesktop/vdpau-driver|freedesktop/vdpau-driver: HW video decode support for VDPAU platforms. e.g. NVIDIA]]   * [[https://github.com/freedesktop/vdpau-driver|freedesktop/vdpau-driver: HW video decode support for VDPAU platforms. e.g. NVIDIA]]
   * [[https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-beta/+sourcepub/10036592/+listing-archive-extra|]]   * [[https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-beta/+sourcepub/10036592/+listing-archive-extra|]]
  
 +==== nvidia-vaapi-driver ====
 +  * https://github.com/elFarto/nvidia-vaapi-driver/ : nvidia vdpua 와 vaapi 를 연결해주는 드라이버. nvdia 를 vaapi 지원 애플리케이션에서 호출할 수 있게 해준다.
 +
 +<code sh>
 +sudo apt install nvidia-vaapi-driver
 +</code>
 +  * 해당 github 문서에서 firefox 에서 활성화 하는 법 등이 문서화 돼 있음.
 ===== MPlayer ===== ===== MPlayer =====
   * 기본 MPlayer는 vdpau를 지원하고 있으므로 특별한 작업 불필요.   * 기본 MPlayer는 vdpau를 지원하고 있으므로 특별한 작업 불필요.
줄 66: 줄 86:
 ===== VLC ===== ===== VLC =====
   * [[:vlc|VLC]] PPA 등에서 **2.1 이상** 버전을 받아서 설치하고   * [[:vlc|VLC]] PPA 등에서 **2.1 이상** 버전을 받아서 설치하고
 +  * 3.x 부터는 VDPAU 만 지원하고 VAAPI 는 지원안한다고 함.
   * [[http://wiki.videolan.org/VLC_VAAPI|VLC VAAPI]]   * [[http://wiki.videolan.org/VLC_VAAPI|VLC VAAPI]]
     * **환경설정 -> 입력 & 코덱설정 -> 하드웨어 가속 디코딩**에서 적합한 드라이버 선택.     * **환경설정 -> 입력 & 코덱설정 -> 하드웨어 가속 디코딩**에서 적합한 드라이버 선택.
줄 80: 줄 101:
   * [[https://wiki.debian.org/HardwareVideoAcceleration|HardwareVideoAcceleration - Debian Wiki]]   * [[https://wiki.debian.org/HardwareVideoAcceleration|HardwareVideoAcceleration - Debian Wiki]]
   * [[https://forum.manjaro.org/t/howto-enable-hardware-video-acceleration-video-decode-in-google-chrome-brave-vivaldi-and-opera-browsers/51895|[HowTo] Enable Hardware Video Acceleration / Video Decode In Google Chrome, Brave, Vivaldi And Opera Browsers - Contributions / Tutorials - Manjaro Linux Forum]] : chrome 옵션 주는 방법. arch 계열 전용인듯.   * [[https://forum.manjaro.org/t/howto-enable-hardware-video-acceleration-video-decode-in-google-chrome-brave-vivaldi-and-opera-browsers/51895|[HowTo] Enable Hardware Video Acceleration / Video Decode In Google Chrome, Brave, Vivaldi And Opera Browsers - Contributions / Tutorials - Manjaro Linux Forum]] : chrome 옵션 주는 방법. arch 계열 전용인듯.
 +  * [[https://github.com/xtknight/vdpau-va-driver-vp9|xtknight/vdpau-va-driver-vp9: Experimental VP9 codec support for vdpau-va-driver (NVIDIA VDPAU-VAAPI wrapper) and chromium-vaapi]] 
 +  * [[https://ubuntuhandbook.org/index.php/2022/07/chromium-snap-package-to-finally-get-back-vaapi-hardware-decoding/|Chromium Snap Package to Finally Get back VAAPI Hardware Decoding | UbuntuHandbook]]
  
-==== Google Chrome 91 이상 버전 / Ubuntu / Intel GPU ==== +==== Google Chrome 91 이상 버전 / Ubuntu  ==== 
-  * [[linux:nvidia|Linux Nvidia Graphic Card]] / Intel Dual graphic 일 경우에도 intel 로 잘 작동하는 것으로 보임. + 
-  * Intel CPU Gen 8 이상+ 
 +=== Nvidia ===
 <code sh> <code sh>
-sudo apt install intel-media-va-driver-non-free libva-drm2 libva-x11-2+sudo apt install libva-drm2 libva-x11-2
 </code> </code>
-  * Intel CPU Gen 이하+  * [[https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-dev/+files/vdpau-va-driver_0.7.4-7ubuntu1~ppa2~20.04.1_amd64.deb|vdpau-va-driver_0.7.4-7ubuntu1~ppa2~20.04.1_amd64.deb]] 다운로드 
 +  * [[https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-dev/+files/libvdpau1_1.4-2~ubuntu20.04.1_amd64.deb|libvdpau1_1.4-2~ubuntu20.04.1_amd64.deb]] 다운로드 
 <code sh> <code sh>
-sudo apt install i965-va-driver-shaders libva-drm2 libva-x11-2+sudo dpkg -i vdpau-va-driver_0.7.4-7ubuntu1_ppa2_20.04.1_amd64.deb \ 
 +    libvdpau1_1.4-2_ubuntu20.04.1_amd64.deb 
 +     
 +sudo apt-mark hold libvdpau1 # libvdpau1 이 구버전이라서 버전업 중단시킴.
 </code> </code>
 +  * nvidia 의 경우 VP9 지원을 하는 GPU더라도, 위에 설치한 라이브러리가 이를 지원하지 않기 때문에 [[https://chrome.google.com/webstore/detail/enhanced-h264ify/omkfmpieigblcllmkgbflkikinpkodlk?hl=ko|enhanced-h264ify]] 혹은 [[https://chrome.google.com/webstore/detail/h264ify/aleakchihdccplidncghkekgioiakgal?hl=ko|h264ify]] 확장으로 VP9 대신 h264 동영상을 전송하게 강제해야함(**Block VP9**).
 +    * 단, **Youtube의 경우 VP9 을 끄면, 4K 동영상은 지원안하는 것**으로 보임. 1080p 까지만 지원.
 +    * 보통 nvidia 탑재 PC는 사양이 높기 때문에, 1080p 의 경우 가속을 하건 안하건 큰 차이가 안남.
 +    * 따라서 굳이 GPU 가속 설정 할 필요가 없어보임.
 +
 +=== Chrome 91 이상 버전 GPU 가속 활성화 ===
   * Chrome 91 이상 버전에서 GPU Acceleration 활성화 해서 실행   * Chrome 91 이상 버전에서 GPU Acceleration 활성화 해서 실행
 <code sh> <code sh>
줄 106: 줄 141:
  
 ==== Firefox ==== ==== Firefox ====
 +  * vaapi 만 지원한다.
   * [[https://wiki.archlinux.org/title/Firefox#Hardware_video_acceleration|Firefox - ArchWiki]]   * [[https://wiki.archlinux.org/title/Firefox#Hardware_video_acceleration|Firefox - ArchWiki]]
 +  * [[https://fedoraproject.org/wiki/Firefox_Hardware_acceleration|Firefox Hardware acceleration - Fedora Project Wiki]]
   * [[https://ubuntuhandbook.org/index.php/2021/08/enable-hardware-video-acceleration-va-api-for-firefox-in-ubuntu-20-04-18-04-higher/|Enable Hardware Video Acceleration (VA-API) For Firefox in Ubuntu 20.04 / 18.04 & Higher | UbuntuHandbook]]   * [[https://ubuntuhandbook.org/index.php/2021/08/enable-hardware-video-acceleration-va-api-for-firefox-in-ubuntu-20-04-18-04-higher/|Enable Hardware Video Acceleration (VA-API) For Firefox in Ubuntu 20.04 / 18.04 & Higher | UbuntuHandbook]]
 +  * 위의 Intel GPU 관련 드라이버를 설치하고
 +  * ''about:config'' 에서 ''media.ffmpeg.vaapi.enabled=true'' 로 변경하면 거의 그냥 된다.
 +  * [[linux:wayland|Wayland]] Ubuntu 23.10 에서는 불필요한 설정. ''~/.config/environment.d/999-mozilla-vaapi.conf''<code>
 +MOZ_ENABLE_WAYLAND=1
 +</code>
 +  * [[linux:snap|Snap]] Firefox 의 경우 vaapi 지원이 됐다 안됐다하기도 함. [[linux:flatpak|Flatpak]] 버전은 됐음.
 +
 +==== firefox - nvidia-vaapi-driver ====
 +  * [[https://github.com/elFarto/nvidia-vaapi-driver/issues/23| Allow running in Flatpak Firefox #23]] : for ''nvidia-vaapi-driver'' : 현재 flatpak 에서 ''nvidia-vaapi-driver'' 를 지원하지 않기 때문에 복잡한 설정 필요함.
 +  * ''nvidia-vaapi-driver'' 버전이 바뀔 때 마다 재실행해줘야함.
 +<code sh>
 +#!/bin/sh
 +
 +DRI_PATH=${HOME}/.var/app/org.mozilla.firefox/dri
 +
 +echo "Clearing firefox flatpak overrides"
 +flatpak override --user --reset org.mozilla.firefox
 +
 +echo "Adding firefox flatpak overrides"
 +flatpak override --user --env=LIBVA_DRIVER_NAME=nvidia \
 +                        --env=LIBVA_DRIVERS_PATH=${DRI_PATH} \
 +                        --env=LIBVA_MESSAGING_LEVEL=1 \
 +                        --env=MOZ_DISABLE_RDD_SANDBOX=1 \
 +                        --env=NVD_BACKEND=direct \
 +                        org.mozilla.firefox
 +
 +# uncomment the following if you use keepass running on the host
 +# flatpak override --user --filesystem=xdg-run/app/org.keepassxc.KeePassXC org.mozilla.firefox
 +
 +echo "Copying nvidia vaapi driver into ${DRI_PATH}"
 +mkdir -p ${DRI_PATH}
 +cp /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so ${DRI_PATH}/nvidia_drv_video.so
 +
 +cat <<"EOF"
 +
 +    Now open about:config and change `gfx.webrender.all` and `media.ffmpeg.vaapi.enabled` to true.
 +
 +EOF
 +</code>
 +  * ''flatpak info --show-runtime org.mozilla.firefox'' 실행 결과 버전에 맞게 ''ffmpeg-full'' flatpak 설치
 +<code sh>
 +flatpak info --show-runtime org.mozilla.firefox
 +# 결과가 22.08 이라면
 +flatpak install org.freedesktop.Platform.ffmpeg-full//22.08
 +</code>
 +  * OS 와 동일한 nvidia 드라이버는 아마도 자동 설치 돼 있을것임(안 되면 flatpak update 해볼것)
 +==== Browser GPU 가속여부 확인 ====
 +  * Intel : ''intel_gpu_top'' 명령에서 **Video** 항목이 증가하는지 확인
 +  * Nvidia : ''nvidia-smi -q -g 0 -d UTILIZATION -l 1'' 에서 **Decoder** 항목이 증가하는지 확인.
 +  * 4K 동영상을 틀어보면, GPU 가속이 활성화 됐을 때는 CPU 점유율이 낮고, 안됐을 때는 매우 높음을 알 수 있다.
linux/vaapi.1640354309.txt.gz · 마지막으로 수정됨: 2021/12/24 22:58 저자 kwon37xi