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

Terje J. Hanssen terjejhanssen at gmail.com
Tue Nov 19 01:25:29 CET 2024




Den 19.11.2024 00:02, skrev Andrew Randrianasulu:
>
>
> вт, 19 нояб. 2024 г., 01:57 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
>     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.
>
>
> yeah, replace profile names with numbers as they do in ffmpeg's output :/

Minor success. Could render av1 8bit 420 vaapi, no 10bit av1 vaapi and 
no qsv.
Looks like similar patches would be needed ........

>
>
>
>
>>
>>>     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/20241119/2c5a1a1f/attachment-0001.htm>


More information about the Cin mailing list