[Cin] 10bit av1 and h264 QSV and VAAPI encoding

Terje J. Hanssen terjejhanssen at gmail.com
Mon Nov 18 23:57:41 CET 2024




Den 18.11.2024 22:12, skrev Andrew Randrianasulu:
>
>
> вт, 19 нояб. 2024 г., 00:06 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
>     Den 18.11.2024 04:48, skrev Andrew Randrianasulu:
>>
>>
>>     On Mon, Nov 18, 2024 at 3:35 AM Phyllis Smith
>>     <phylsmith2017 at gmail.com> wrote:
>>
>>         Terje, Andrew:
>>         Just so I got this right and did not miss any.  These 8 are
>>         all tested new render formats to add?
>>
>>             av1_qsv_8b420.mp4
>>             av1_qsv_10b420.mp4
>>             hevc_qsv_8b420.mp4
>>             hevc_qsv_10b420.mp4
>>             hevc_qsv_10b422.mp4
>>             hevc_vaapi_8b420.mp4
>>             hevc_vaapi_10b420.mp4
>>             hevc_vaapi_10b422.mp4
>>
>>
>>
>>     May be Terje will make few more how we found qsv is picky about
>>     tff-interlaced input ....
>
>     Yeah, I have continued with more vaapi presets.
>
>     While progressive video worked fine as input for av1_qsv, the
>     av1_vaapi output become ruined with no visible pictures.
>
>     My av1_vaapi_8b420.mp4 preset based on nv12 renders interlaced
>     input as it should.
>
>     av1_vaapi_10b420.mp4 render attempts fail however with the
>     following errors:
>
>     [av1_vaapi @ 0x7f692202a880] Specified pixel format p010le is not
>     supported by the av1_vaapi encoder.
>     [av1_vaapi @ 0x7f692202a880] Supported pixel formats:
>     [av1_vaapi @ 0x7f692202a880]   vaapi
>
>
>
> I think I saw this error during testing. Be sure you have cin_pix_fmt 
> line in preset and do not touch Pixels menu.
>

Sorry, my fault. I had forgotten to define the hw_device, and now this 
preset works

av1_vaapi_10b420.mp4

    mp4 av1_vaapi
    # av1_vaapi_10b420
    cin_hw_dev=vaapi
    cin_pix_fmt=p010le
    profile=main
    # global_quality=22

** rendered 1780 frames in 42.235 secs, 42.145 fps

ffprobe -hide_banner hd01_av1_vaapi.mp4
   Stream #0:0[0x1](und): Video: av1 (libdav1d) (Main) (av01 / 
0x31307661), yuv420p10le(tv, bt709/unknown/unknown, top coded first 
(swapped)), 1920x1080, 14039 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 
12800 tbn (default)

>
>     As my system ffmpeg 7.1 has encoded video to p010le without
>     issues, I wonder if there may be lesser vaapi support in Cingg's
>     internal ffmpeg 7,0?
>
>     And what about the qsv interlace tff input issues, may it be fixed
>     in 7.1 ?
>
>
> you have system-ffmpeg-based cingg somewhere already?

Yeah, tried, but it failed with the following errors respectively:

[av1_vaapi @ 0x7fd7c8377940] [Eval @ 0x7fd7b89f66d0] Undefined constant 
or missing '(' in 'main'
[av1_vaapi @ 0x7fd7c8377940] Unable to parse option value "main"
[av1_vaapi @ 0x7fd7c8377940] Error setting option profile to value main.

[av1_qsv @ 0x7fd7b0054d80] [Eval @ 0x7fd848ff26d0] Undefined constant or 
missing '(' in 'main'
[av1_qsv @ 0x7fd7b0054d80] Unable to parse option value "main"
[av1_qsv @ 0x7fd7b0054d80] Error setting option profile to value main.


>
>> I have idea about ffmpeg's internals but it has potential to either 
>> fix it or broke it :)
>>
>> I'll try to make patch tomorrow
>>
>>
>>
>>     On Sun, Nov 17, 2024 at 5:13 PM Terje J. Hanssen via Cin
>>     <cin at lists.cinelerra-gg.org> wrote:
>>
>>
>>
>>
>>         Den 17.11.2024 19:53, skrev Andrew Randrianasulu:
>>>
>>>
>>>         вс, 17 нояб. 2024 г., 20:50 Terje J. Hanssen
>>>         <terjejhanssen at gmail.com>:
>>>
>>>
>>>
>>>
>>>             Den 17.11.2024 11:53, skrev Andrew Randrianasulu:
>>>>
>>>>
>>>>             вс, 17 нояб. 2024 г., 13:24 Terje J. Hanssen
>>>>             <terjejhanssen at gmail.com>:
>>>>
>>>>
>>>>                 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
>>>>>>                 <terjejhanssen at gmail.com>:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                     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 <cin at lists.cinelerra-gg.org>:
>>>>>>>>
>>>>>>>>                         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
>>
>>
>>
>>
>>
>>
>>
>>
>>         -- 
>>         Cin mailing list
>>         Cin at lists.cinelerra-gg.org
>>         https://lists.cinelerra-gg.org/mailman/listinfo/cin
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241118/0be02e88/attachment-0001.htm>


More information about the Cin mailing list