Den 20.12.2024 17:40, skrev Andrew Randrianasulu:


пт, 20 дек. 2024 г., 19:20 Terje J. Hanssen via Cin <[email protected]>:

    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)


======

for hevc nvenc test may be try to set mjpeg colorspace instead of jpeg?

Tried the other option MPEG, and also BT.709, which both works for h264_nvenc, but has no effect with regards to the hevc errors.

Tried also to comment out each and both of the h265_nvenc preset's
preset medium
profile main

but with no effect.

So far it looks for me that there is something wrong with Cingg's hevc_nvenc encoding.



    ===================

    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
    [email protected]
    https://lists.cinelerra-gg.org/mailman/listinfo/cin

-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to