Den 23.10.2024 03:10, skrev Andrew Randrianasulu:
Try to set vprofile instead of profile?

Doesn't this correspond to what we previously also discussed for ffmpeg 7.0.2?

Re: [Cin] FFmpeg supported QSV pixel formats and profiles 12.10.2024, 15:59
https://lists.cinelerra-gg.org/pipermail/cin/2024-October/008811.html

>>> I think we can concentrate on av1 for now.
>>> does it fail if you add "-profile main" to ffmpeg command line for dv av1 encode? >>> dv due to it being software codec, so ffmpeg forced to push and convert frames from system memory, as opposed to hdv (hw) = > av1 on-gpu transcode)

>> No, it doesn't fail:
>> but claims:
>> "Please use -profile:a or -profile:v, -profile is ambiguous"

> ah, I think it mostly relevant to ffmpeg as cli application.


Cingg renders standard PAL DV 5765i when the h264_qsv "profile" is changed to "vprofile",
though there are some other fail/err messages in the output

libva info: va_openDriver() returns 0
FFStream::encode_frame: encode failed.
file: /Videoklipp/QSV/dv01_07_h264_qsv_nv12.mp4
  err: Resource temporarily unavailable
FFStream::flush failed
:file:/Videoklipp/QSV/dv01_07_h264_qsv_nv12.mp4
  err: Operation not permitted
Render::render_single: Session finished.
** rendered 2832 frames in 5.291 secs, 535.249 fps
audio0 pad 32 0 (32)


Looks like this rendering automatic deinterlace DV

ffprobe -hide_banner dv01_07.dv
[dv @ 0x55613dce4140] Estimating duration from bitrate, this may be inaccurate
Input #0, dv, from 'dv01_07.dv':
  Metadata:
    timecode        : 01:09:35:09
  Duration: 00:01:53.28, start: 0.000000, bitrate: 28800 kb/s
  Stream #0:0: Video: dvvideo, yuv420p, 720x576 [SAR 16:15 DAR 4:3], 28800 kb/s, 60k fps, 25 tbr, 60k tbn
  Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s


ffprobe -hide_banner dv01_07_h264_qsv_nv12.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dv01_07_h264_qsv_nv12.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf61.7.100
  Duration: 00:01:53.28, start: 0.000000, bitrate: 2798 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt470bg/unknown/unknown, progressive), 720x576 [SAR 16:15 DAR 4:3], 2674 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
      Metadata:
        handler_name    : VideoHandler
        vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
      Metadata:
        handler_name    : SoundHandler
        vendor_id       : [0][0][0][0]

----------------

For invalid picture structure .. does it go away if you deinterlace video track?

So far standard PAL 1080i HDV is not accepted as input for h264_qsv rendering, which is too bad (tested it worked as deinterlaced to DV 16:9)

------------

i suspect that we should focus on one ffmpeg version that was working (7.0) instead of chasing new and improved breackage

For me it looks like the interface? issues lay more on the Cin side, because my three tested command line variants for av1_qsv encoding work for ffmpeg 7.1 as well as on the 7.0.2 predecessor:

ffmpeg -hide_banner -hwaccel_output_format qsv -qsv_device /dev/dri/renderD128 -i hdv09_04.m2t -c:v av1_qsv hdv09_04_av1_qsv.webm

ffmpeg -hide_banner -hwaccel_output_format qsv -qsv_device /dev/dri/renderD128 -extra_hw_frames 16 -i hdv09_04.m2t -c:v av1_qsv -preset 4 -b:v 3700k hdv09_04_av1_qsv_pr4_bv3700k.webm

ffmpeg -hide_banner -hwaccel_output_format qsv -i hdv09_04.m2t -pix_fmt p010le -c:v av1_qsv hdv09_04_av1_qsv_p010le.webm


745M    hdv09_04.m2t
47M     hdv09_04_av1_qsv_p010le.webm
111M    hdv09_04_av1_qsv_pr4_bv3700k.webm
47M     hdv09_04_av1_qsv.webm


ffprobe -hide_banner hdv09_04_av1_qsv_pr4_bv3700k.webm
Input #0, matroska,webm, from 'hdv09_04_av1_qsv_pr4_bv3700k.webm':
  Metadata:
    ENCODER         : Lavf61.7.100
  Duration: 00:03:59.08, start: -0.007000, bitrate: 3881 kb/s
  Stream #0:0: Video: av1 (libdav1d) (Main), yuv420p(tv, bt709), 1440x1080, SAR 4:3 DAR 16:9, 25 fps, 25 tbr, 1k tbn
      Metadata:
        ENCODER         : Lavc61.19.100 av1_qsv
        DURATION        : 00:03:59.080000000
  Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp
      Metadata:
        ENCODER         : Lavc61.19.100 libopus
        DURATION        : 00:03:58.784000000

------------------

Looking at ffmpeg vs the content of cingg's av1_qsv "profiles" again, I wonder why the latter don't contain a "vprofile" line?


ffmpeg -hide_banner -h encoder=av1_qsv | egrep 'Supported|profile|main'
    Supported hardware devices: qsv qsv qsv
    Supported pixel formats: nv12 p010le qsv
  -profile           <int>        E..V....... (from 0 to INT_MAX) (default unknown)
     main            1            E..V.......

/Cin/bin/ffmpeg/video> ls av1_qsv*
av1_qsv.dfl  av1_qsv.mp4  av1_qsv.webm

cat av1_qsv.dfl
av1_qsv.webm

cat av1_qsv.mp4
mp4 av1_qsv
# only usable with ext. ffmpeg
cin_pix_fmt=nv12

cat av1_qsv.webm
webm av1_qsv
# only usable with ext. ffmpeg
cin_pix_fmt=nv12




On Wed, Oct 23, 2024 at 2:49 AM Terje J. Hanssen <[email protected]> wrote:




    Den 23.10.2024 00:18, skrev Andrew Randrianasulu:


    вт, 22 окт. 2024 г., 21:52 Terje J. Hanssen
    <[email protected]>:




        Den 22.10.2024 17:04, skrev Andrew Randrianasulu:

        [snip]



            Yes, thanks for the help. I used

             #export CFLAGS=-I/usr/include/ffmpeg

            and then the rest worked fine.

            Enough for me today !



            This rebuild cingg to use ffmpeg 7.1 startup ok and
            testing DV rendering to  av1_qsv_nv12.mp4,
            av1_qsv_nv12.webm and also av1_qsv_p010le.webm work.

            But the same rendering from hdv does not longer work,
            tried also with BT.709 setting.


        does ffmpeg 7.1 itself work for this type of encoding and
        same input file ?

        Yes, I tried three varants of ffmpeg codelines, and all
        renderend hdv to av1_qsv.webm ok


        Do h264/hevc qsv encoders still work?

        No, I got the following Cingg output errors:


    looks like ffmpeg changed some parsing code :/
    you can try to replace high/main words with numbers like 0,1 but
    .....it will be sad if one set of profiles will not work for pre
    7.1 and 7.1 :/

    I got hevc_qsv to work both with uncommenting # profile and by
    setting profile=0 and profile=1

    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    Render::render_single: Session finished.
    ** rendered 5972 frames in 20.861 secs, 286.276 fps
    audio0 pad 64 0 (64)


    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    Render::render_single: Session finished.
    ** rendered 5972 frames in 21.269 secs, 280.784 fps
    audio0 pad 64 0 (64)


    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    Render::render_single: Session finished.
    ** rendered 5972 frames in 22.176 secs, 269.300 fps
    audio0 pad 64 0 (64)

    -----------------

    But h264_qsv didn't work similar ..........

    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    [h264_qsv @ 0x7f4108127880] Current picture structure is unsupported
    [h264_qsv @ 0x7f4108127880] some encoding parameters are not
    supported by the QSV runtime. Please double check the input
    parameters.
    FFMPEG::open_encoder  err: Function not implemented
    int FFMPEG::open_encoder(const char*, const char*):
    open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
    Render::render_single: Session finished.


    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    [h264_qsv @ 0x7f40c03e6dc0] Current picture structure is unsupported
    [h264_qsv @ 0x7f40c03e6dc0] some encoding parameters are not
    supported by the QSV runtime. Please double check the input
    parameters.
    FFMPEG::open_encoder  err: Function not implemented
    int FFMPEG::open_encoder(const char*, const char*):
    open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
    Render::render_single: Session finished.


    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    libva info: VA-API version 1.22.0
    libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_22
    libva info: va_openDriver() returns 0
    [h264_qsv @ 0x7f40b805bc80] Current picture structure is unsupported
    [h264_qsv @ 0x7f40b805bc80] some encoding parameters are not
    supported by the QSV runtime. Please double check the input
    parameters.
    FFMPEG::open_encoder  err: Function not implemented
    int FFMPEG::open_encoder(const char*, const char*):
    open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
    Render::render_single: Session finished.


    [h264_qsv @ 0x7f40a4038880] [Eval @ 0x7f40d97f36d0] Undefined
    constant or missing '(' in 'main'
    [h264_qsv @ 0x7f40a4038880] Unable to parse option value "main"
    [h264_qsv @ 0x7f40a4038880] Error setting option profile to value
    main.
    FFMPEG::open_encoder  err: Invalid argument
    int FFMPEG::open_encoder(const char*, const char*):
    open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv.mp4
    Render::render_single: Session finished.
    Total excess of backups: -50
    Session time: 0:16:31
    Cpu time: user: 0:02:54.493 sys: 0:00:12.204




    thanks for testing .....



        [h264_qsv @ 0x7f4c88107880] [Eval @ 0x7f4cb37f76d0] Undefined
        constant or missing '(' in 'high'
        [h264_qsv @ 0x7f4c88107880] Unable to parse option value "high"
        [h264_qsv @ 0x7f4c88107880] Error setting option profile to
        value high.
        FFMPEG::open_encoder  err: Invalid argument
        int FFMPEG::open_encoder(const char*, const char*):
        open failed h264_qsv:/Videoklipp/QSV/hdv09_04_h264_qsv_nv12.mp4
        Render::render_single: Session finished.


        [hevc_qsv @ 0x7f4c8406b180] [Eval @ 0x7f4cb8ff26d0] Undefined
        constant or missing '(' in 'main'
        [hevc_qsv @ 0x7f4c8406b180] Unable to parse option value "main"
        [hevc_qsv @ 0x7f4c8406b180] Error setting option profile to
        value main.
        FFMPEG::open_encoder  err: Invalid argument
        int FFMPEG::open_encoder(const char*, const char*):
        open failed hevc_qsv:/Videoklipp/QSV/hdv09_04_hevc_qsv_nv12.mp4
        Render::render_single: Session finished.

        I forgot to mention that I haven't applied specific patches
        to the last built based on ffmpeg 7.1, other than the copied
        profiles from previous built based on ffmpeg 7.0.2

        Have made a shortcut symlink /Cin

        ls -l /Cin
        lrwxrwxrwx 1 root root 29 Oct 22 20:23 /Cin ->
        /home/cinelerra/cinelerra-5.1

        localhost:/Cin/bin/ffmpeg/video #

        # ls *_qsv*
        av1_qsv.dfl  av1_qsv.mp4  av1_qsv.webm h264_qsv.mp4 
        h265_qsv.mp4  hevc_qsv.mp4 vp9_qsv.mp4

        Here the h264/hevc qsv profiles contain:

        # cat h264_qsv.mp4
        mp4 h264_qsv
        # only usable with ext. ffmpeg
        profile=high
        cin_pix_fmt=nv12

        # cat hevc_qsv.mp4
        mp4 hevc_qsv
        # only usable with ext. ffmpeg, another pixfmt is yuyv422
        profile=main
        cin_pix_fmt=nv12


            The current av1_qsv profiles contents are as follows
            (tried to copy them from previous ffmpeg 7.0.2 backup):

            localhost:/home/cinelerra/cinelerra-5.1/bin/ffmpeg/video #

            cat av1_qsv.dfl
            av1_qsv.webm

            cat av1_qsv.mp4
            mp4 av1_qsv
            # only usable with ext. ffmpeg
            cin_pix_fmt=nv12

            cat av1_qsv.webm
            webm av1_qsv
            # only usable with ext. ffmpeg
            cin_pix_fmt=nv12
            ------------

            As shown in the Cingg output below:
            [av1_qsv @ 0x7f4788de7200] Current picture structure is
            unsupported
            [av1_qsv @ 0x7f4788de7200] some encoding parameters are
            not supported by the QSV runtime. Please double check
            the input parameters.
            FFMPEG::open_encoder  err: Function not implemented


            Output format and profile from system ffmpeg 7.1 looks
            similar like from previous 7.0.2

            ffmpeg -hide_banner -h encoder=av1_qsv | egrep
            'Supported|profile|main'
                Supported hardware devices: qsv qsv qsv
                Supported pixel formats: nv12 p010le qsv
              -profile <int>        E..V....... (from 0 to INT_MAX)
            (default unknown)
                 main            1 E..V.......

            Any idea what cause this hd(v) rendering errors now in
            the built Cingg?


            # bin/cin
            Cinelerra Infinity - built: Oct 20 2024 21:21:06

            libva info: VA-API version 1.22.0
            libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
            libva info: Found init function __vaDriverInit_1_22
            libva info: va_openDriver() returns 0
            libva info: VA-API version 1.22.0
            libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
            libva info: Found init function __vaDriverInit_1_22
            libva info: va_openDriver() returns 0
            [av1_qsv @ 0x7f4788de7200] Current picture structure is
            unsupported
            [av1_qsv @ 0x7f4788de7200] some encoding parameters are
            not supported by the QSV runtime. Please double check
            the input parameters.
            FFMPEG::open_encoder  err: Function not implemented
            int FFMPEG::open_encoder(const char*, const char*):
            open failed
            av1_qsv:/Videoklipp/QSV/hdv09_04_av1_qsv_nv12.webm
            Render::render_single: Session finished.

            -----------------

            libva info: VA-API version 1.22.0
            libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
            libva info: Found init function __vaDriverInit_1_22
            libva info: va_openDriver() returns 0
            libva info: VA-API version 1.22.0
            libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
            libva info: Found init function __vaDriverInit_1_22
            libva info: va_openDriver() returns 0
            [av1_qsv @ 0x7f47b0040840] Current picture structure is
            unsupported
            [av1_qsv @ 0x7f47b0040840] some encoding parameters are
            not supported by the QSV runtime. Please double check
            the input parameters.
            FFMPEG::open_encoder  err: Function not implemented
            int FFMPEG::open_encoder(const char*, const char*):
            open failed
            av1_qsv:/Videoklipp/QSV/hdv09_04_av1_qsv_p010le.webm
            Render::render_single: Session finished.
            Total excess of backups: -50
            Session time: 0:06:36
            Cpu time: user: 0:00:08.543 sys: 0:00:03.847
            unjoined tids / owner 2
              00007f47c5ffb6c0 / 00007f48377fe6c0 12RenderEngine
              00007f47c7fff6c0 / 00007f48377fe6c0 12RenderEngine







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

Reply via email to