[Cin] 10bit VAAPI encoding test thread continued

Terje J. Hanssen terjejhanssen at gmail.com
Sat Nov 9 17:10:46 CET 2024




Den 09.11.2024 10:48, skrev Terje J. Hanssen:
>
>
>
> 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.


hevc_qsv.mp4  revised:
pixel formats p010le and y210le render again to yuv420p10le and 
.yuv422p10le respectively
Woops; only when these window lines are commented out as written in my 
previous post !

    # profile=main
    # cin_pix_fmt=nv12

Works both with and without
export CIN_10BIT_ENC=1
before cin/bin



>
>
>>
>>
>>
>>
>>
>>>>     (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/edffbfdb/attachment-0001.htm>


More information about the Cin mailing list