Den 17.11.2024 19:53, skrev Andrew Randrianasulu:


вс, 17 нояб. 2024 г., 20:50 Terje J. Hanssen <[email protected]>:




    Den 17.11.2024 11:53, skrev Andrew Randrianasulu:


    вс, 17 нояб. 2024 г., 13:24 Terje J. Hanssen
    <[email protected]>:


        Den 16.11.2024 23:24, skrev Terje J. Hanssen:



        Den 16.11.2024 22:20, skrev Andrew Randrianasulu:


        вс, 17 нояб. 2024 г., 00:02 Terje J. Hanssen
        <[email protected]>:




            Den 16.11.2024 20:36, skrev Terje J. Hanssen:



            Den 16.11.2024 19:00, skrev Andrew Randrianasulu:


            сб, 16 нояб. 2024 г., 20:56 Terje J. Hanssen via Cin
            <[email protected]>:

                Now when 10bit hevc_qsv and hevc_vaapi
                accelerated encoding looks to be in box, I wonder
                if something prohibits us to get accelerated
                encoding for av1 and h264?


            I think av1 was complaining about invalid picture
            structure?


            feel free to experiment. You can also try vp9 ....



                According to ffmpeg help the following support
                should be available:

                av1_qsv
                    Supported pixel formats: nv12 p010le qsv
                -profile <int>        E..V....... (from 0 to
                INT_MAX) (default unknown)
                unknown 0 E..V.......
                main 1 E..V.......

                av1_vaapi
                    Supported pixel formats: vaapi
                -profile <int>        E..V....... Set profile
                (seq_profile) (from -99 to 255) (default -99)
                main 0 E..V.......
                high 1 E..V.......
                professional 2 E..V.......

                ..........h264 snip

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

            Starting tests with

            /Cin # bin/cin
            Cinelerra Infinity - built: Nov 15 2024 20:29:14


            1) AV1_QSV
            -----------

            av1_qsv.mp4

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

            DV input renders ok to yuv420p
            ** rendered 2832 frames in 5.475 secs, 517.260 fps

            HDV input fails:
            [av1_qsv @ 0x7ff7cca8b9c0] Current picture structure
            is unsupported
            [av1_qsv @ 0x7ff7cca8b9c0] 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.mp4

            FHD input fails
            [av1_qsv @ 0x7ff7918e82c0] Current picture structure
            is unsupported
            [av1_qsv @ 0x7ff7918e82c0] 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/hd01_av1_qsv.mp4


        After this overview:

        I modified ffmpeg/encode.opts to loglevel=debug and tried to
        render HDV (and FHD) again:

        [AVHWDeviceContext @ 0x7f99881fee40] Trying to use DRM render
        node for device 0.
        [AVHWDeviceContext @ 0x7f99881fee40] libva: VA-API version 1.22.0
        [AVHWDeviceContext @ 0x7f99881fee40] libva: User requested
        driver 'iHD'
        [AVHWDeviceContext @ 0x7f99881fee40] libva: Trying to open
        /usr/lib64/dri/iHD_drv_video.so
        [AVHWDeviceContext @ 0x7f99881fee40] libva: Found init
        function __vaDriverInit_1_22
        [AVHWDeviceContext @ 0x7f99881fee40] libva: va_openDriver()
        returns 0
        [AVHWDeviceContext @ 0x7f99881fee40] Initialised VAAPI
        connection: version 1.22
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x41524742 -> bgra.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x41424752 -> rgba.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x58524742 -> bgr0.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x58424752 -> rgb0.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30335241 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30334241 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30335258 ->
        x2rgb10le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30334258 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x36314752 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x56555941 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x56555958 -> vuyx.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30303859 -> gray.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x3231564e -> nv12.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x3132564e ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x32595559 ->
        yuyv422.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x59565955 ->
        uyvy422.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x32315659 ->
        yuv420p.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30323449 ->
        yuv420p.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x50313134 ->
        yuv411p.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x48323234 ->
        yuv422p.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x56323234 ->
        yuv440p.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x50343434 ->
        yuv444p.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x33434d49 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30313050 -> p010le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x32313050 -> p012le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x36313050 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30313259 -> y210le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x32313259 -> y212le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x36313259 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x30313459 -> xv30le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x32313459 -> xv36le.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x36313459 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x50424752 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] Format 0x50524742 ->
        unknown.
        [AVHWDeviceContext @ 0x7f99881fee40] VAAPI driver: Intel iHD
        driver for Intel(R) Gen Graphics - 24.4.0 ().
        [AVHWDeviceContext @ 0x7f99881fee40] Driver not found in
        known nonstandard list, using standard behaviour.
        [av1_qsv @ 0x7f99880565c0] Initialized an internal MFX
        session using hardware accelerated implementation
        [av1_qsv @ 0x7f99880565c0] Using the constant quantization
        parameter (CQP) by default. Please use the global_quality
        option and other options for a quality-based mode or the b
        option and other options for a bitrate-based mode if the
        default is not the desired choice.
        [av1_qsv @ 0x7f99880565c0] Using the constant quantization
        parameter (CQP) ratecontrol method
        [av1_qsv @ 0x7f99880565c0] Current picture structure is
        unsupported
        [av1_qsv @ 0x7f99880565c0] 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.mp4
        Render::render_single: Session finished.


    Sorry, but even with additional msgs  root case of this problem
    is not clearer at all for me.

    You tried with progressive/deinterlaced source, with everything
    set to progressive?

    Isn't point of this thread to get 10bit, 10bit + yuv422 encoder
    presets working? I suggest to put aside obviously failing ones
    for now.



    I think AV1-10bit yuv422 is only supported by librav1e software
    encoding yet.

    But av1_qsv encoding 8bit (nv12) and 10bit 420 (p010) is supported
    by ffmpeg.
    The following command works for me for me with HDV and FHD
    interlaced input:

    HDV --> av1_qsv -global_quality 25
    -----------------------------------
    ffmpeg -hide_banner -qsv_device /dev/dri/renderD128 -i
    hdv09_04.m2t -pix_fmt nv12 -c:v av1_qsv -global_quality 25
    hdv09_04_av1_qsv_format_nv12_gq25.mp4

    ffprobe -hide_banner hdv09_04_av1_qsv_format_nv12_gq25.mp4
      Stream #0:0[0x1](und): Video: av1 (libdav1d) (Main) (av01 /
    0x31307661), yuv420p(tv, bt709, top coded first (swapped)),
    1440x1080, 7902 kb/s, SAR 4:3 DAR 16:9, 24.99 fps, 25 tbr, 12800
    tbn (default)


    FHD --> av1_qsv -global_quality 25
    -----------------------------------
    ffmpeg -hide_banner -qsv_device /dev/dri/renderD128 -i cfhd01.mkv
    -pix_fmt p010 -c:v av1_qsv -global_quality 25
    cfhd01_av1_qsv_format_p010_gq25.mp4

    ffprobe -hide_banner cfhd01_av1_qsv_format_p010_gq25.mp4
      Stream #0:0[0x1](eng): Video: av1 (libdav1d) (Main) (av01 /
    0x31307661), yuv420p10le(tv, bt709, progressive), 1920x1080, 5761
    kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 12800 tbn (default)


    ffmpeg output some mpeg warnings in the HDV file, but renders it
    seemingly ok

    [mpegts @ 0x560dbed1b800] PES packet size mismatch0:03:56.16
    bitrate=8036.6kbits/s speed=22.5x
    [mpegts @ 0x560dbed1b800] Packet corrupt (stream = 1, dts =
    258142320).
    [mpeg2video @ 0x560dbec663c0] ac-tex damaged at 10 61
    [mpeg2video @ 0x560dbec663c0] Warning MVs not available
    [mpeg2video @ 0x560dbec663c0] concealing 630 DC, 630 AC, 630 MV
    errors in P frame
    [vist#0:0/mpeg2video @ 0x560dbedd2f40] [dec:mpeg2video @
    0x560dbecb4140] corrupt decoded frame
    [out#0/mp4 @ 0x560dbec67440] video:230191KiB audio:3787KiB
    subtitle:0KiB other streams:0KiB global headers:0KiB muxing
    overhead: 0.051687%
    frame= 5963 fps=561 q=-0.0 Lsize=  234099KiB time=00:03:58.77
    bitrate=8031.5kbits/s speed=22.5x


    I tried to adapt my hevc_qsv preset for av1_qsv as follows

    av1_qsv_8b420.mp4

        mp4 av1_qsv
        # av1_qsv_8b420
        # usable with Pixels: nv12
        profile=main
        global_quality=25


    but attempt to render the same HDV file fails with the following
    output

    [av1_qsv @ 0x7fd604299600] Encoder: input is system memory surface
    [av1_qsv @ 0x7fd604299600] Use Intel(R) oneVPL to create MFX
    session, the required implementation version is 1.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
    [AVHWDeviceContext @ 0x7fd60408bd40] Trying to use DRM render node
    for device 0.
    [AVHWDeviceContext @ 0x7fd60408bd40] libva: VA-API version 1.22.0
    [AVHWDeviceContext @ 0x7fd60408bd40] libva: User requested driver
    'iHD'
    [AVHWDeviceContext @ 0x7fd60408bd40] libva: Trying to open
    /usr/lib64/dri/iHD_drv_video.so
    [AVHWDeviceContext @ 0x7fd60408bd40] libva: Found init function
    __vaDriverInit_1_22
    [AVHWDeviceContext @ 0x7fd60408bd40] libva: va_openDriver() returns 0
    [AVHWDeviceContext @ 0x7fd60408bd40] Initialised VAAPI connection:
    version 1.22
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x41524742 -> bgra.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x41424752 -> rgba.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x58524742 -> bgr0.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x58424752 -> rgb0.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30335241 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30334241 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30335258 -> x2rgb10le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30334258 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x36314752 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x56555941 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x56555958 -> vuyx.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30303859 -> gray.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x3231564e -> nv12.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x3132564e -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x32595559 -> yuyv422.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x59565955 -> uyvy422.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x32315659 -> yuv420p.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30323449 -> yuv420p.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x50313134 -> yuv411p.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x48323234 -> yuv422p.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x56323234 -> yuv440p.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x50343434 -> yuv444p.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x33434d49 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30313050 -> p010le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x32313050 -> p012le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x36313050 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30313259 -> y210le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x32313259 -> y212le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x36313259 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x30313459 -> xv30le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x32313459 -> xv36le.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x36313459 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x50424752 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] Format 0x50524742 -> unknown.
    [AVHWDeviceContext @ 0x7fd60408bd40] VAAPI driver: Intel iHD
    driver for Intel(R) Gen Graphics - 24.4.0 ().
    [AVHWDeviceContext @ 0x7fd60408bd40] Driver not found in known
    nonstandard list, using standard behaviour.
    [av1_qsv @ 0x7fd604299600] Initialized an internal MFX session
    using hardware accelerated implementation
    [av1_qsv @ 0x7fd604299600] Using the intelligent constant quality
    (ICQ) ratecontrol method
    [av1_qsv @ 0x7fd604299600] Current picture structure is unsupported


I think this error comes from

http://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/7.0:/libavcodec/qsvenc.c

     if (UNMATCH(FrameInfo.PicStruct))
 689               av_log(avctx, AV_LOG_ERROR, "Current picture structure is unsupported\n");

    if (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) {
 850         // it is important that PicStruct be setup correctly from the
 851         // start--otherwise, encoding doesn't work and results in a bunch
 852         // of incompatible video parameter errors
 853  q->param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_FIELD_TFF;
 854         // height alignment always must be 32 for interlaced video
 855         q->height_align = 32;
 856     } else {
 857  q->param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
 858         // for progressive video, the height should be aligned to 16 for  859         // H.264.  For HEVC, depending on the version of MFX, it should be
 860         // either 32 or 16.  The lower number is better if possible.
 861         // For AV1, it is 32
 862         q->height_align = (avctx->codec_id == AV_CODEC_ID_HEVC ||
 863 avctx->codec_id == AV_CODEC_ID_AV1) ? 32 : 16;
 864     }
 865     q->param.mfx.FrameInfo.Height = FFALIGN(avctx->height, q->height_align);


2030
2031         qf->surface.Info.PicStruct =
2032             !(frame->flags & AV_FRAME_FLAG_INTERLACED) ? MFX_PICSTRUCT_PROGRESSIVE : 2033             (frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST) ? MFX_PICSTRUCT_FIELD_TFF :
2034   MFX_PICSTRUCT_FIELD_BFF;



i.e. common code for all qsv encoders?

so *I think* it only test  for either bff or tff and fails if +ildct flag actually set.

you can try to add it ffmpeg line and see if it starts to fail

BUT


can you test progressive or bff source in cingg ??

i do not ask just for lulz, I want to understand *where* it fails, and does this mean we need to ask ffmpeg guys todo something or alter ourselves.

So, *PLEASE* do progressive/bff test!



Yeah, thank you for all help and tip to solve this.
I had just to finish my std interlaced HDV and FHD input testing with various preset parameters 😉

And my first bff interlaced test already worked without those problems

1) SD-DV --> AV1_QSV

mediainfo dv01_07.dv | grep -i scan
Scan type                                : Interlaced
Scan order                               : Bottom Field First

av1_qsv_8b420.mp4
    mp4 av1_qsv
    # av1_qsv_8b420
    # usable with Pixels: nv12
    profile=main
    # global_quality=25

BC_DisplayInfo::gl_fb_config failed
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 2832 frames in 3.645 secs, 776.955 fps

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

while the std HDV and FHD input files were tff interlaced:

mediainfo hdv09_04.m2t  | grep -i scan
Scan type                                : Interlaced
Scan order                               : Top Field First

mediainfo cfhd01.mkv  | grep -i scan
Scan type                                : Interlaced
Scan type, store method                  : Interleaved fields
Scan order                               : Top Field First

So I deinterlaced them to-night with ffmpeg and yadif and bitrate to keep quality. And it was no "lul" for cfhd (FHD) with very high bitrate (fps=0.8, speed=0.03) 🙁

ffmpeg -hide_banner -i hdv09_04.m2t -vf yadif=parity=auto -vb 30M hdv09_04_progr.m2t

ffmpeg -hide_banner -i cfhd01.mkv -vf yadif=parity=auto -vb 400M cfhd01_progr.mkv

And the good thing to report back is rendering now worked for the progressive input files 🙂

-----------

2) HDV progressive --> av1_qsv (8bit yuv420p, nv12)

av1_qsv_8b420.mp4
    mp4 av1_qsv
    # av1_qsv_8b420
    # usable with Pixels: nv12
    profile=main
    # global_quality=25

BC_DisplayInfo::gl_fb_config failed
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 2832 frames in 3.645 secs, 776.955 fps

ffprobe -hide_banner hdv09_04_progr_av1_qsv.mp4
  Stream #0:0[0x1](und): Video: av1 (libdav1d) (Main) (av01 / 0x31307661), yuv420p(tv, bt709/unknown/unknown, progressive), 1440x1080, 927 kb/s, SAR 4:3 DAR 16:9, 25 fps, 25 tbr, 12800 tbn (default)

----------

3) FHD (cfhd) progressive --> av1_qsv (10bit yuv420p, p010le)

av1_qsv_10b420.mp4
    mp4 av1_qsv
    # av1_qsv_10b420
    # usabel with Pixels: p010le
    profile=main
    # global_quality=25

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
FFMPEG::open_decoder: some stream times estimated: /Videoklipp/QSV/cfhd01_progr.mkv
Render::render_single: Session finished.
** rendered 1780 frames in 28.383 secs, 62.714 fps
FFMPEG::open_decoder: some stream times estimated: /Videoklipp/QSV/cfhd01_progr.mkv


ffprobe -hide_banner hdv09_04_progr_av1_qsv.mp4
  Stream #0:0[0x1](und): Video: av1 (libdav1d) (Main) (av01 / 0x31307661), yuv420p10le(tv, bt709/unknown/unknown, progressive), 1440x1080, 926 kb/s, SAR 4:3 DAR 16:9, 25 fps, 25 tbr, 12800 tbn

-------

I tested also that HDV could be rendered correctly using both 8bit and 10 presets as attached

   av1_qsv_10b420.mp4
   av1_qsv_8b420.mp4







Attachment: av1_qsv_8b420.mp4
Description: video/mp4

Attachment: av1_qsv_10b420.mp4
Description: video/mp4

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

Reply via email to