Continued and extracted from [Cin] Video accelerators support, builds and use https://lists.cinelerra-gg.org/pipermail/cin/2024-December/009226.html Den 12.12.2024 00:54, skrev Terje J. Hanssen:
Den 11.12.2024 23:56, skrev Andrew Randrianasulu:
чт, 12 дек. 2024 г., 00:43 Terje J. Hanssen via Cin <[email protected]>:
To clarify some pieces once again, I put up some basic statements or questions:
..........snip
So what happened when adding oneVPL (qsv) support to the build system; dynamic linked to system or static added embedded into the build?
dynamic
.....snip
Could in principle similar methods be extended to include broader video acceleration support for AMD/amf and NVIDIA/nvenc?
nvenc already supported, I think? At some point I tried it with GF710 on livedvd and it was working for me. try to test it if you have proprietary nvidia drivers.
Apparently Cingg then should supports NVENC via some dynamic linked external Nvidia lib, equivalent to what we did for for QSV via oneVPL support. While h264_nvenc.mp4 rendering works, h265_nvenc.mp4 fails with the following errors, see detail below: [hevc_nvenc @ 0x7ff79c015640] No capable devices found FFMPEG::open_encoder err: Generic error in an external library
Yes, seemingly: Cin/bin/ffmpeg/video> ls *nvenc* h264_nvenc.mp4 h264_nvenc.qt h265_nvenc.mp4
NVENC Presets cat h264_nvenc.mp4 mp4 h264_nvenc # encode for nvidia graphics hw only preset medium profile main cat h265_nvenc.mp4 mp4 hevc_nvenc # encode for nvidia graphics hw only preset medium profile main
Maybe I can do an attempt later, if I get life in the old GeForce GTX 960 in my Skylake workstation.
Setup ---------- Booted BIOS and checked that the integrated Intel gpu and multimonitor setup were enabled. Installed the suse-prime package for nvidia/intel gpu selection (for NVIDIA optimus laptops with bbswitch support) and could then run the command prime-select on-demand and verified that both the Intel and Nvidia drivers were available inxi -G Graphics: Device-1: Intel HD Graphics 530 driver: i915 v: kernel Device-2: NVIDIA GM206 [GeForce GTX 960] driver: nvidia v: 550.135 Display: wayland server: X.org v: 1.21.1.14 with: Xwayland v: 24.1.4 compositor: gnome-shell v: 47.2 driver: X: loaded: modesetting,nvidia unloaded: fbdev,vesa dri: iris gpu: i915 resolution: 1920x1080~60Hz API: OpenGL v: 4.6 vendor: intel mesa v: 24.3.1 renderer: Mesa Intel HD Graphics 530 (SKL GT2) API: EGL Message: EGL data requires eglinfo. Check --recommends. ============== Test h264_nvenc.mp4 ------------------- OK ./CinGG-20241120-x86_64.AppImage Cinelerra Infinity - built: Nov 20 2024 22:06:05 Loads hdv09_04.m27 Shift-R mp4 h264_nvenc (video preset) pixels: yuv420p (default) ** rendered 5972 frames in 27.391 secs, 218.028 fps ffprobe -hide_banner hdv09_04_h264_nvenc_yuv420p.mp4 Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, smpte170m/unknown/unknown), 1440x1080 [SAR 4:3 DAR 16:9], 2156 kb/s, 25 fps, 25 tbr, 12800 tbn (default) ------- Tried also h264_nvenc with pixels: nv12 which for slowed down to 45% speed !? Render::render_single: Session finished. ** rendered 5972 frames in 60.368 secs, 98.927 fps ffprobe -hide_banner hdv09_04_h264_nvenc_nv12.mp4 Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, smpte170m/unknown/unknown), 1440x1080 [SAR 4:3 DAR 16:9], 2154 kb/s, 25 fps, 25 tbr, 12800 tbn (default) =================== Test h265_nvenc.mp4 ------------------- Did not render, neither with pixels yuv420p nor nv12: FFMPEG::open_encoder err: Generic error in an external library [hevc_nvenc @ 0x7ff79c015640] No capable devices found FFMPEG::open_encoder err: Generic error in an external library int FFMPEG::open_encoder(const char*, const char*): open failed hevc_nvenc:/run/media/terje/video/hdv09_04_h265_nvenc_yuv420p.mp4 Render::render_single: Session finished. =================== GeForce GTX 960 (GM206) should be capable to manage NVENC h265/hevc YUV 420 encoding https://en.wikipedia.org/wiki/Nvidia_NVENC#Third_generation,_Maxwell_GM20x https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new Tested hevc_nvenc full transcoding with FFmpeg 7.1 ffmpeg -hide_banner -hwaccel cuda -hwaccel_output_format cuda -i hdv09_04.m2t -c:v hevc_nvenc hdv09_04_ff_hevc_nvenc.mp4 frame= 5963 fps=270 q=34.0 Lsize= 64316KiB time=00:03:58.77 bitrate=2206.6kbits/s speed=10.8x [aac @ 0x55a38d4c4d40] Qavg: 488.890 ------------------ ffprobe -hide_banner hdv09_04_ff_hevc_nvenc.mp4 Stream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, bt709, top coded first (swapped)), 1440x1080 [SAR 4:3 DAR 16:9], 2074 kb/s, 24.99 fps, 25 tbr, 12800 tbn (default)