Den 20.12.2024 17:27, skrev Андрей Спицын via Cin:
>Cingg then should supports NVENC via some dynamic linked external Nvidia lib

Nvenc supported in ffmpeg, but you need to add nvidia headers and add a flag during ffmpeg configuration step.

The friend of mine tested davinci and ffmpeg encoding on nvidia card on windows. The davinci is 7 times faster compared to ffmpeg. In both cases nvenc is used and card used by 100%. I don't know the reason of this.

Not sure why h264_nvenc works and not h265_nvenc in Cingg.

Quality/speed may differ with different profiles/presets in use, though 7x was much
.



пт, 20 дек. 2024 г., 19:20 Terje J. Hanssen via Cin <cin@lists.cinelerra-gg.org>:
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 <cin@lists.cinelerra-gg.org>:
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)






--
Cin mailing list
Cin@lists.cinelerra-gg.org
https://lists.cinelerra-gg.org/mailman/listinfo/cin