VLC on linux with nVidia: Failed setup for format vdpau: hwaccel initialisation returned error.

*nix specific usage questions
DAC324
Blank Cone
Blank Cone
Posts: 40
Joined: 04 Aug 2006 18:12

VLC on linux with nVidia: Failed setup for format vdpau: hwaccel initialisation returned error.

Postby DAC324 » 21 May 2021 13:06

Hello all,

For setup and configuration purposes, I access my IP WLAN camera with VLC:

Code: Select all

vlc -vvv --fullscreen --rtsp-mcast --no-osd --extraintf=http:logger --verbose=2 --file-logging --logfile=vlc-log.txt rtsp://User:pass@192.168.178.40:554/Streaming/channels/101
This is H.264:

Code: Select all

a=recvonly a=x-dimensions:2560,1440 a=control:rtsp://192.168.178.40:554/Streaming/channels/101/trackID=1 a=rtpmap:96 H264/90000 a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-sets=Z00AMp2oCgAtabgICAoAAAMAAgAAAwBRCA==,aO48gA== m=audio 0 RTP/AVP 0
"VDPAU Output" (shouldn't it to be possible on nVidia cards?), results in flickering of the entire stream, with no stream contents displayed.
With "Automatic", it works with the following error in the terminal:

Code: Select all

[h264 @ 0x7fd158012240] Failed setup for format vdpau: hwaccel initialisation returned error. [h264 @ 0x7fd158012240] Reinit context to 2560x1440, pix_fmt: yuvj420p
Log file (VLC failing to use the nVidia modules, falling back to OpenGL):

Code: Select all

main debug: using hw decoder module "vdpau_avcodec" avcodec: Using NVIDIA VDPAU Driver Shared Library 390.143 Fri Mar 12 07:19:27 UTC 2021 for hardware decoding avcodec debug: available hardware decoder output format 119 (cuda) avcodec debug: available hardware decoder output format 46 (vaapi_vld) avcodec debug: available software decoder output format 12 (yuvj420p) avcodec debug: available software decoder output format 12 (yuvj420p) avcodec error: existing hardware acceleration cannot be reused avcodec debug: trying format vaapi_vld main debug: removing module "vdpau_chroma" main debug: Filter 0x7fd13401f580 removed from chain main debug: removing module "gl" main debug: removing module "glconv_vdpau" main debug: removing module "glx" main debug: deinterlace -1, mode auto, is_needed 0 main debug: Opening vout display wrapper main debug: looking for vout display module matching "any": 13 candidates main debug: VoutDisplayEvent 'resize' 1680x1050 main debug: looking for opengl module matching "glx": 3 candidates glx debug: using GLX extension version 1.4 main debug: Buffering 80% main debug: using opengl module "glx"
The error comes from libavcodec, not VLC. Though I'd expect a problem with the VDPAU driver more than with libavcodec, it could also be a bug in Arch Linux's libavcodec package.

Code: Select all

$ vainfo vainfo: VA-API version: 1.11 (libva 2.11.1) 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 VAProfileH264Main : VAEntrypointVLD VAProfileH264High : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD

Code: Select all

$ vdpauinfo display: :0.0 screen: 0 API version: 1 Information string: NVIDIA VDPAU Driver Shared Library 390.143 Fri Mar 12 07:19:27 UTC 2021 Video surface: name width height types ------------------------------------------- 420 4096 4096 NV12 YV12 422 4096 4096 UYVY YUYV Decoder capabilities: name level macbs width height ---------------------------------------------------- H264_BASELINE 41 8192 2048 2048 H264_MAIN 41 8192 2048 2048 H264_HIGH 41 8192 2048 2048 H264_CONSTRAINED_BASELINE 41 8192 2048 2048 H264_EXTENDED 41 8192 2048 2048 H264_PROGRESSIVE_HIGH 41 8192 2048 2048 H264_CONSTRAINED_HIGH 41 8192 2048 2048 H264_HIGH_444_PREDICTIVE 41 8192 2048 2048 Output surface: name width height nat types ---------------------------------------------------- B8G8R8A8 16384 16384 y Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 R10G10B10A2 16384 16384 y Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 Bitmap surface: name width height ------------------------------ B8G8R8A8 16384 16384 R8G8B8A8 16384 16384 R10G10B10A2 16384 16384 B10G10R10A2 16384 16384 A8 16384 16384 Video mixer: feature name sup ------------------------------------ DEINTERLACE_TEMPORAL y DEINTERLACE_TEMPORAL_SPATIAL y INVERSE_TELECINE y NOISE_REDUCTION y SHARPNESS y LUMA_KEY y HIGH QUALITY SCALING - L1 y parameter name sup min max ----------------------------------------------------- VIDEO_SURFACE_WIDTH y 1 4096 VIDEO_SURFACE_HEIGHT y 1 4096 CHROMA_TYPE y LAYERS y 0 4 attribute name sup min max ----------------------------------------------------- BACKGROUND_COLOR y CSC_MATRIX y NOISE_REDUCTION_LEVEL y 0.00 1.00 SHARPNESS_LEVEL y -1.00 1.00 LUMA_KEY_MIN_LUMA y LUMA_KEY_MAX_LUMA y
Why can't VLC use the VDPAU driver although it supports H.264?

Rémi Denis-Courmont
Developer
Developer
Posts: 15214
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: VLC on linux with nVidia: Failed setup for format vdpau: hwaccel initialisation returned error.

Postby Rémi Denis-Courmont » 22 May 2021 11:39

Same answer: libavcodec thinks that VDPAU hardware acceleration intiailisation failed.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

DAC324
Blank Cone
Blank Cone
Posts: 40
Joined: 04 Aug 2006 18:12

Re: VLC on linux with nVidia: Failed setup for format vdpau: hwaccel initialisation returned error.

Postby DAC324 » 26 May 2021 19:58

Same answer: libavcodec thinks that VDPAU hardware acceleration intiailisation failed.
Indeed, it looks like the problem is that the ffmpeg packages in the official repositories are not compiled with support for vaapi or vdpau.

A solution is to download the ffmpeg 4.4 release sources (VLC cannot be compiled against later versions), and compile ffmpeg with at least the following options (taken from the VideLAN Wiki):

Code: Select all

--enable-vaapi --enable-vdpau --enable-hwaccel=h264_vdpau --enable-postproc
With VLC 4.0.0 from git, compiled against this ffmpeg version, the error

Code: Select all

[h264 @ 0x7fd158012240] Failed setup for format vdpau: hwaccel initialisation returned error.
does no longer occur.


Return to “VLC media player for Linux and friends Troubleshooting”

Who is online

Users browsing this forum: No registered users and 12 guests