CESNET / UltraGrid

UltraGrid low-latency audio and video network transmission system
http://www.ultragrid.cz
Other
489 stars 55 forks source link

Getting NVENC to work right #328

Closed TheSashmo closed 1 year ago

TheSashmo commented 1 year ago

Sorry for the millions of posts in the last few weeks. I am trying UG with nvenc, and it seems that everything I do results back to failure.

Features: Crypto (OpenSSL) ................ yes CUDA support (nvcc, default) .... yes Debug output .................... no iHDTV support ................... no IPv6 support .................... yes Library live555 ................. no OpenCV .......................... yes Profiling support ............... no Qt GUI .......................... no RT priority ..................... no SpeexDSP ........................ no Soxr ............................ no Standalone modules .............. no zfec ............................ yes

Audio: ALSA ............................ yes CoreAudio ....................... no JACK ............................ no JACK transport .................. no SDL_mixer ....................... no Portaudio ....................... no WASAPI .......................... no

Video: AJA ............................. no AV Foundation ................... no BitFlow ......................... no Bluefish444 ..................... no caca ............................ no DeckLink ........................ yes DELTACAST ....................... no DirectShow ...................... no DVS ............................. no File input ...................... yes Gpustitch ....................... no NDI ............................. yes OpenGL .......................... no OpenXR VR Display ............... no Panorama Gl Display ............. no RTSP capture client ............. yes SAGE ............................ no Screen capture (X11) ............ yes SDL ............................. no SW video mix .................... no V4L2 ............................ yes VULKAN_SDL2 ..................... no XIMEA ........................... no

Compressions: Cineform ........................ no Comprimato J2K .................. no CUDA DXT ........................ yes GPUJPEG ......................... yes GPUJPEG transcode to DXT ........ no Lavc (VDP yes, VA yes, RPI4 no) . yes Realtime DXT .................... no UYVY dummy compression .......... no

Others: Blank capture filter ............ yes GPU accelerated LDGM ............ yes Hole punching ................... no iHDTV support ................... no MCU-like video mixer ............ yes NAT-PMP traversal ............... no PCP NAT traversal ............... no Resize capture filter ........... yes RTSP server ..................... no Scale postprocessor ............. no SDP over HTTP ................... no Spout ........................... no Syphon .......................... no Testcard extras ................. yes Text postprocess and filter ..... no Swscale support ................. yes

*** Following WARNINGS were issued: Neither Soxr nor SpeexDSP was not found. Strongly recommending installing that, otherwise audio part of UG will be crippled.

checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/config.h config.status: executing depfiles commands

Testing this command: ./uv -t decklink:4 -s embedded -c libavcodec:encoder=nvenc_hevc:bitrate=20000k --audio-codec=MP3:sample_rate=48000:bitrate=256k --audio-capture-format channels=16 -m 1316 -P 10000 192.168.99.187 --control-port 12345

And I get: [lavc nvenc_hevc @ 0x7fea880979c0] dl_fn->cuda_dl->cuInit(0) failed -> CUDA_ERROR_UNKNOWN: unknown error [lavc] Could not open codec for pixel format rgb0

Tried the same with test card as a source: [lavc nvenc_hevc @ 0x7f29cc0f13c0] This encoder is deprecated, use 'hevc_nvenc' instead [lavc nvenc_hevc @ 0x7f29cc0f13c0] dl_fn->cuda_dl->cuInit(0) failed -> CUDA_ERROR_UNKNOWN: unknown error [lavc] Could not open codec for pixel format yuv444p16le

I played around with other pixel formats: [lavc nvenc_hevc @ 0x7f29cc0f3280] This encoder is deprecated, use 'hevc_nvenc' instead [lavc nvenc_hevc @ 0x7f29cc0f3280] dl_fn->cuda_dl->cuInit(0) failed -> CUDA_ERROR_UNKNOWN: unknown error [lavc] Could not open codec for pixel format rgb0

Suggestions?

alatteri commented 1 year ago

try the AppImage and encoder= hevc_nvenc

TheSashmo commented 1 year ago

Thanks but, Same result.

alatteri commented 1 year ago

What OS? What Nvidia card? What is the SDI source format? What install steps for Nvidia driver? Have you tried with testcard?

TheSashmo commented 1 year ago

Yes with testcard. Ubuntu 20.04 Nvidia Quadro P600 Tried varying SDI inputs, normally on auto detect, but tried 1080 all the way to 4k.

MartinPulec commented 1 year ago

ffmpeg -f lavfi -i testsrc -c:v hevc_nvenc -t 1 out.mp4 works?

TheSashmo commented 1 year ago

Same error: Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_nvenc)) Press [q] to stop, [?] for help [hevc_nvenc @ 0x55818763b140] dl_fn->cuda_dl->cuInit(0) failed -> CUDA_ERROR_UNKNOWN: unknown error Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height Conversion failed!

MartinPulec commented 1 year ago

okay, so if it is not UG issue, I'll convert it rather to discussion.