[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