[Cin] 10bit VAAPI encoding test thread continued
Terje J. Hanssen
terjejhanssen at gmail.com
Mon Nov 11 22:31:22 CET 2024
Den 11.11.2024 22:20, skrev Andrew Randrianasulu:
>
>
> пн, 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
>
What about
hevc_qsv_10bit-420.mp4
and
hevc_qsv_10bit-422.mp4
respectively?
>
>
>
>
>
>
>
> .
>
>
>
>>
>>
>>
>>>
>>>
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>> (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/20241111/4caaec18/attachment-0001.htm>
More information about the Cin
mailing list