[Cin] 10bit VAAPI encoding test thread continued
Andrew Randrianasulu
randrianasulu at gmail.com
Sat Nov 9 00:10:31 CET 2024
сб, 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?
>
>
> (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/76206ef6/attachment-0001.htm>
More information about the Cin
mailing list