[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