[Cin] 10bit VAAPI encoding test thread continued
Terje J. Hanssen
terjejhanssen at gmail.com
Sat Nov 9 10:48:47 CET 2024
Den 09.11.2024 00:10, skrev Andrew Randrianasulu:
>
>
> сб, 9 нояб. 2024 г., 01:58 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
> Den 07.11.2024 22:53, skrev Terje J. Hanssen:
>>
>>
>>
>> Den 07.11.2024 20:41, skrev Andrew Randrianasulu:
>>>
>>>>
>>>>
>>>>
>>>> sorry I mean set like this
>>>> export CIN_10BIT_ENC=1
>>>>
>>>>
>>>
>>> Now hevc_vaapi was able to render to yuv420p10le, that is
>>> 10-bit 420p, by selecting pixels p010le.
>>> Also rendering with pixels y210 resulted in yuv420p10le,
>>> that is not 10-bit 422p as for hevc_qsv below.
>>>
>>> I would assume this is caused due to the incomplete
>>> hevc_vapi.mp4 preset as shown below?
>>>
>>>
>>> More like incomplete code that does not yet know how to get
>>> custom format ... so far as name says it only adds 10bit 4:2:0
>>> encoding, not 4:2:2 subsampling.
>>>
>>> can you test other vaapi/qsv profiles too?
>>>
>>>
>>> also with test picture actually containing more than 8bit
>>> values? ;)
>>
>> To the latter; the input file cfhd01.mkv was 10bit 422: yuv422p10le
>>
>> Maybe have a look at and compare with the hevc_qsv code that
>> managed 10bit 422: yuv422p10le?
>>
>>
>
> Summary
> ----------------
>
> hevc_vaapi.mp4 and av1_vaapi.mp4
> Pixels: vaapi (default and only option) works and results in
> yuv420p
> p010 or p010le written works and result in yuv420p10le
> y210 or all variants y210le/Y210/le render (with
> fallback) to yuv420p10le
>
> h264_vaapi.mp4 didn't render (error message)
>
>
> yeah, no 10bit h264 here (while possible by spec)
>
>
>
> av1_qsv.mp4 is for external ffmpeg
>
>
> if you still have my onevpl patch applied (and enabled it earlier with
> configure switch) too - qsv should work ...
>
> try it too just in case?
av1_qsv.mp4
Would not render at all
[av1_qsv @ 0x7fe19826f240] Current picture structure is unsupported
[av1_qsv @ 0x7fe19826f240] 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/Cineform/cfhd01_av1_qsv_pix_nv12.mp4
Render::render_single: Session finished.
hevc_qsv.mp4
Does render, but only to yuv420p now.
For one or another reason pixel formats p010le and y210le results in
yuv420p.
That is I am not able to reconstruct the previous 10bit results below.
I do another attempt next day.
>
>
>
>
>
>>> (probably made up something in GIMP 2.10, save as tiff/EXR,
>>> import in cingg, set format to rgba-float, rendrer ..... hm, may
>>> be use YUView to see pixel values independently of cinelerra's
>>> decoding abilities? a bit of adventure, but should provide some
>>> proof about encoding)
>>>
>>>
>>> ffprobe -hide_banner cfhd01_hevc_vaapi_pix_p010le.mp4
>>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>> 'cfhd01_hevc_vaapi_pix_p010le.mp4':
>>> Metadata:
>>> major_brand : isom
>>> minor_version : 512
>>> compatible_brands: isomiso2mp41
>>> encoder : Lavf61.1.100
>>> Duration: 00:01:11.20, start: 0.000000, bitrate: 11082 kb/s
>>> Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 /
>>> 0x31766568), yuv420p10le(tv, bt709/unknown/unknown, top
>>> coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9], 11080
>>> kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>> Metadata:
>>> handler_name : VideoHandler
>>> vendor_id : [0][0][0][0]
>>>
>>> ffprobe -hide_banner cfhd01_hevc_vaapi_pix_y210.mp4
>>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>> 'cfhd01_hevc_vaapi_pix_y210.mp4':
>>> Metadata:
>>> major_brand : isom
>>> minor_version : 512
>>> compatible_brands: isomiso2mp41
>>> encoder : Lavf61.1.100
>>> Duration: 00:01:11.20, start: 0.000000, bitrate: 11082 kb/s
>>> Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 /
>>> 0x31766568), yuv420p10le(tv, bt709/unknown/unknown, top
>>> coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9], 11080
>>> kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>> Metadata:
>>> handler_name : VideoHandler
>>> vendor_id : [0][0][0][0]
>>>
>>>>
>>>> -----
>>>>
>>>> No hevc_vaapi 10bit worked:
>>>>
>>>> localhost:/Cin/ffmpeg/video # cat hevc_vaapi.mp4
>>>> mp4 hevc_vaapi
>>>> # cin_hw_dev=vaapi
>>>>
>>>> I tested hevc_vaapi.m4 and tried to write p010 both in
>>>> the pixels field and as format=p010 in the widget,
>>>> but only 8bit 420p each time.
>>>>
>>>> -------------------------------
>>>>
>>>> hevc_qsv 10 bit worked with p010 and with y210
>>>>
>>>> localhost:/Cin/ffmpeg/video # cat hevc_qsv.mp4
>>>> # only usable with ext. ffmpeg, another pixfmt is yuyv422
>>>> mp4 hevc_qsv
>>>> # profile=main
>>>> # cin_pix_fmt=nv12
>>>>
>>>>
>>>> ffprobe -hide_banner cfhd01_hevc_qsv_pix_p010le.mp4
>>>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>>> 'cfhd01_hevc_qsv_pix_p010le.mp4':
>>>> Metadata:
>>>> major_brand : isom
>>>> minor_version : 512
>>>> compatible_brands: isomiso2mp41
>>>> encoder : Lavf61.1.100
>>>> Duration: 00:01:11.20, start: 0.000000, bitrate:
>>>> 28276 kb/s
>>>> Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 /
>>>> 0x31766568), yuv420p10le(tv, bt709/unknown/unknown, top
>>>> coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9],
>>>> 28273 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>>> Metadata:
>>>> handler_name : VideoHandler
>>>> vendor_id : [0][0][0][0]
>>>>
>>>>
>>>> ffprobe -hide_banner cfhd01_hevc_qsv_pix_y210le.mp4
>>>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>>> 'cfhd01_hevc_qsv_pix_y210le.mp4':
>>>> Metadata:
>>>> major_brand : isom
>>>> minor_version : 512
>>>> compatible_brands: isomiso2mp41
>>>> encoder : Lavf61.1.100
>>>> Duration: 00:01:11.20, start: 0.000000, bitrate:
>>>> 32074 kb/s
>>>> Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 /
>>>> 0x31766568), yuv422p10le(tv, bt709/unknown/unknown, top
>>>> coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9],
>>>> 32071 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>>> Metadata:
>>>> handler_name : VideoHandler
>>>> vendor_id : [0][0][0][0]
>>>>
>>>>>
>>>>>>
>>>>>> you also can set bin/ffmpeg/encode.opts loglevel
>>>>>> to debug, but render exactly one frame so log
>>>>>> will be smaller.
>>>>>
>>>>> How to render render exactly one frame ?
>>>>>
>>>>>
>>>>> In render dialog window there is selection of render
>>>>> range with 4 choices ... 1 frame mp4/webm should be
>>>>> perfectly legal :)
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "git log" where?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> in cinelerra-5.1 directory, or some down the
>>>>>>> hierarchy ...
>>>>>>>
>>>>>>> this is command, part of git suite of commands.
>>>>>>>
>>>>>>> displays log of commits in git repo. (for me
>>>>>>> it uses l"less" as pager, so you can scroll
>>>>>>> around and search)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241109/a3622ee5/attachment-0001.htm>
More information about the Cin
mailing list