nVidia Proprietary Driver: Hardware Decoding For H.264 or H.265 ?

Hi,

I need hardware decoding for either H.264 or H.265 video.

I am running an nVidia GeForce GTX 1050 Ti 4GB GDDR5 PCIe GPU
with current nVidia proprietary openSUSE Tumbleweed installed display driver version 440.64.

In Tumbleweed I installed “libva-utils” via YaST Software.
When I type “vainfo” in KDE Konsole I get the following errors:

jlp@SortaFastDesktop:~> vainfo
libva info: VA-API version 1.6.0
libva info: Trying to open /usr/lib64/dri/nvidia_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

Is there something I can do to get the above working on my openSUSE Tumbleweed KDE 64Bit?
Let me know, thanks!

Jesse

Hi,

Not sure which is the exact package naming for opensuse/tumbleweed.
I got some info in the the arch wiki.
Do a search using zypper like :

zypper se --provides libva

This is the content of my vainfo

vainfo
libva info: VA-API version 1.6.0
libva info: User environment variable requested driver 'vdpau'
libva info: Trying to open /usr/lib64/dri/vdpau_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.5.0)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :    VAEntrypointVLD
      VAProfileMPEG2Main              :    VAEntrypointVLD
      VAProfileMPEG4Simple            :    VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    :    VAEntrypointVLD
      <unknown profile>               :    VAEntrypointVLD
      VAProfileH264Main               :    VAEntrypointVLD
      VAProfileH264High               :    VAEntrypointVLD
      VAProfileVC1Simple              :    VAEntrypointVLD
      VAProfileVC1Main                :    VAEntrypointVLD
      VAProfileVC1Advanced            :    VAEntrypointVLD
zypper se --provides libva
Loading repository data...
Reading installed packages...

S  | Name                   | Summary                                  | Type   
---+------------------------+------------------------------------------+--------
i  | Mesa-libva             | Mesa VA-API implementation               | package
   | avidemux3              | Graphical video editing and transcodin-> | package
   | libqt5-creator         | Integrated Development Environment tar-> | package
   | libva-devel            | Development files for the Video Accele-> | package
   | libva-devel-32bit      | Development files for the Video Accele-> | package
i  | libva-drm2             | DRM backend for the Video Acceleration-> | package
   | libva-drm2-32bit       | DRM backend for the Video Acceleration-> | package
   | libva-gl-devel         | Development files for the Video Accele-> | package
   | libva-gl-devel-32bit   | Development files for the Video Accele-> | package
i  | libva-glx2             | GLX backend for the Video Acceleration-> | package
   | libva-glx2-32bit       | GLX backend for the Video Acceleration-> | package
i+ | libva-utils            | A collection of utilities and examples-> | package
i+ | libva-vdpau-driver     | HW video decode support for VDPAU plat-> | package
i+ | libva-wayland2         | Wayland backend for the Video Accelera-> | package
   | libva-wayland2-32bit   | Wayland backend for the Video Accelera-> | package
i  | libva-x11-2            | X11 backend for the Video Acceleration-> | package
   | libva-x11-2-32bit      | X11 backend for the Video Acceleration-> | package
i  | libva2                 | Video Acceleration API                   | package
   | libva2-32bit           | Video Acceleration API                   | package
   | libvacuumutils37       | Shared library libvacuumutils for Vacu-> | package
   | libvala-0_46-0         | Vala programming language runtime        | package
   | libvala-0_46-devel     | Programming language for GNOME           | package
   | libvaladoc-0_46-0      | Valadoc runtime                          | package
   | libvaladoc-0_46-devel  | Development files for the valadoc runt-> | package
   | libvamp-hostsdk3       | Library for Vamp audio analysis plugin-> | package
   | libvamp-hostsdk3-32bit | Library for Vamp audio analysis plugin-> | package
   | libvamp-sdk2           | Library for Vamp audio analysis plugins  | package
   | libvamp-sdk2-32bit     | Library for Vamp audio analysis plugins  | package
   | libvapoursynth-48      | A video processing framework             | package
   | libvapoursynth-script0 | Library for interfacing Python with Va-> | package
   | libvarnishapi2         | Shared libraries for Varnish             | package
   | libvpp0                | VPP libraries                            | package
   | nemiver                | Nemiver graphical debugger               | package
i+ | openSUSE-release       | openSUSE Tumbleweed                      | package
   | totem-plugins          | Plugins for Totem Movie Player           | package
   | vala                   | Programming language for GNOME           | package
   | vala-panel             | A Gtk3 desktop panel based on Vala       | package
   | vlc-beta-noX           | VLC: VideoLAN Client - without X depen-> | package
i+ | vlc-noX                | VLC without X dependencies               | package

Compare it with yours
I am using nvidia also
Look at the entry in the vainfo string, mine says

VAEntrypointVLD

I think it means capable, not understanding really and maybe you can help me understand about it a bit.

Here is the link to the wiki page
https://wiki.archlinux.org/index.php/Hardware_video_acceleration

I had this issue, at the end it depended on the encoding level. My GFX 1050 don’t support all levels, see here:
https://forums.opensuse.org/showthread.php/533657-No-HEVC-(H265)-4K-hardware-decoding-on-GTX-1050?p=2885165#post2885165

On the thread I linked above, that 50% CPU usage when playing the 4K video clip was with a Core i5 + GFX 1050.

The same clip use 12% CPU in a Ryzen 5 +GFX 1650 super.

There’s only one additional decoder capability according to vdpauinfo, but h264 levels jumped from 41 to 51:


name                        level macbs width height
----------------------------------------------------
H264_HIGH_444_PREDICTIVE       51 65536  4096  4096
H264_CONSTRAINED_BASELINE      51 65536  4096  4096
H264_EXTENDED                  51 65536  4096  4096
H264_PROGRESSIVE_HIGH          51 65536  4096  4096
H264_CONSTRAINED_HIGH          51 65536  4096  4096
HEVC_MAIN                      153 262144  8192  8192
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  **153 262144  8192  8192**

Hi,

I checked in NVIDIA X Server Settings VDPAU Information and “H264” is listed as supported:

Does that help my situation?

Jesse

http://fallenangelsoftware.com/stuff/files/4Stuff/nVidiaCodecs-01.png

Hi,

I think I got it working now:

jlp@SortaFastDesktop:~> vainfo
libva info: VA-API version 1.6.0
libva info: Trying to open /usr/lib64/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.5.0)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API (arekinath) - 0.7.4
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG4Simple            : VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    : VAEntrypointVLD
      <unknown profile>               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
jlp@SortaFastDesktop:~> 

Thanks!

Jesse