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)

av1_qsv.mp4 is for external ffmpeg



(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)





















-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to