[Cin] 10bit VAAPI encoding test thread continued

Andrew Randrianasulu randrianasulu at gmail.com
Mon Nov 11 22:20:24 CET 2024


пн, 11 нояб. 2024 г., 23:43 Terje J. Hanssen <terjejhanssen at gmail.com>:

{snip}



> .
>>>
>>>
>>>
>>> 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
>>>
>>
>>
>> we most likely will need new profiles for 10bit everything anyway ...
>>
>> thanks for continued (and very exhaustive!) testing
>>
>>
>> Also the preset's combination of pixel formats and the right (ffmpeg)
>> codec profiles would need an overhaul.
>>
>> As mentioned already above:
>>
>> 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
>>
>>
>> I experimented additional and got
>>
>> y210/profile=1  ==> yuv422p10le
>>
>> y210/ profile=main10/ profile=2/ profile=3 ==> yuv420p10le
>>
>> I got similar results with my own dynamic Cingg built with ffmpeg 7.1.
>>
>> --------------------------
>>
>> So a question beside:
>>
>> Yesterday I did a new (monthly) upgrade of Tumbleweed-Slowroll, which
>> replaced Packman package libs and ffmpeg 7.1
>>
>> After that, the static Cingg with onevpl and 10bit patch would not render
>> hevc_qsv.
>>
>> Today's upgrade with new Packman packages up-to-date with the new
>> Slowroll version, and now Cingg worked as before:
>>
>>  ffmpeg-7 ffmpeg-7-libavcodec-devel ffmpeg-7-libavdevice-devel
>> ffmpeg-7-libavfilter-devel
>>   ffmpeg-7-libavformat-devel ffmpeg-7-libavutil-devel
>> ffmpeg-7-libpostproc-devel ffmpeg-7-libswresample-devel
>>   ffmpeg-7-libswscale-devel libavcodec61 libavdevice61 libavfilter10
>> libavformat61 libavutil59 libpostproc58
>>   libswresample5 libswscale8
>>
>> So even Cingg with onevpl is static built, it looks like it is dependent
>> of one or more system packages/libs beside?
>> Any idea what packages it can be ?
>>
>
>
> onevpl/vaapi/vdpau - they all linked  dynamically (not sure if static
> version of them even possible)
>
>
> Ah, I see.
>
> I tried to compare the two configure lines for my full dynamic
> Cingg/ffmpeg7.1 built and static-dynamic Cingg/ffmpeg7.0 respectively:
>
> ./configure --with-single-user --disable-static-build --without-thirdparty
> --without-libdpx
> ./configure --with-single-user --with-onevpl
>
> As the first line didn't mention "vpl" I searched backwards and got the
> understanding that the source code was patched to use the system libvpl.
>

not exactly, in first case it just uses libav* from system ffmpeg
package... and this in your case uses libvpl.


In the second case the build-system itself was patched with onevpl (default
> off) to use the same system libvpl, I assume?
>
> Is/will possibly the current or upcoming Cingg appimage/rpm available with
> the onevpl patch, so it can be switched on and tested on other available
> hardware?
>


I was about to ask if onevpl patch can be added to git ...

Dear Phyllis, can you add onevpl.patch so future QSV testing will be easier
(it defaults to off so should not break anything ... by default).

while there, Terje, can you pack your latest profile work and send it
separately? I think we use codec_encoder_additional_params.container as
format

so 10bit 420 hevc  qsv for mp4 will look like

hevc_qsv_10bit.mp4

with  content you experimentally determinated.

and y210 probably will be named

hevc_qsv_y210.mp4





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


More information about the Cin mailing list