<div dir="auto"><div><br><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">вт, 29 апр. 2025 г., 00:47 Terje J. Hanssen <<a href="mailto:terjejhanssen@gmail.com">terjejhanssen@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>

  
    
  
  <div>
    <br>
    <br>
    <div>Den 28.04.2025 17:38, skrev Andrew
      Randrianasulu:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="auto">
        <div><br>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">пн, 28 апр. 2025 г., 17:20
              Terje J. Hanssen <<a href="mailto:terjejhanssen@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">terjejhanssen@gmail.com</a>>:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div> <br>
                <div>Den 27.04.2025 23:39, skrev Andrew Randrianasulu:<br>
                </div>
                <blockquote type="cite">
                  <div dir="auto">
                    <div><br>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">вс, 27 апр.
                          2025 г., 23:58 Terje J. Hanssen <<a href="mailto:terjejhanssen@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">terjejhanssen@gmail.com</a>>:<br>
                        </div>
                        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                          <div> <br>
                            <div>Den 26.04.2025 22:37, skrev Andrew
                              Randrianasulu via Cin:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="auto">RADV_PERFTEST=video_decode,video_encode
                                time -p ./ffmpeg  -init_hw_device
                                vulkan=vulkan -filter_hw_device vulkan 
                                 -hwaccel vulkan  -i
                                ~/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov
                                -vf 
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos:colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv 
                                -c:a copy -c:v libx264  -f mp4
                                -benchmark
                                /dev/shm/ffmpeg-git-libplacebo-vulkan-2k.mp4 
                                                                       
                                                                       
                                       
                                <div dir="auto"><br>
                                </div>
                                <div dir="auto">frame= 1148 fps= 10
                                  q=-1.0 Lsize=   30435KiB
                                  time=00:00:19.13
                                  bitrate=13029.3kbits/s speed=0.167x   
                                                                       
                                                                       
                                                       </div>
                                <div dir="auto">bench: utime=355.600s
                                  stime=25.878s rtime=114.342s</div>
                                <div dir="auto"><br>
                                </div>
                                <div dir="auto">so nearly 10 fps with
                                  scaled to FHD input! (otherwise 32bit
                                  x264 OOMs)</div>
                                <div dir="auto"><br>
                                </div>
                              </div>
                            </blockquote>
                            ==================<br>
                            <br>
                            I admit I'm not sure what's going on in
                            every detail above and below. But I've tried
                            to adapt something similar or equivalent (?)
                            using my Google Pixel 7 Pro smartphone to
                            record a small HDR10 video clip, and then
                            using ffmpeg on my Intel Alder Lake cpu/DG2
                            gpu workstation. Comments are welcome for
                            correction and learning?<br>
                          </div>
                        </blockquote>
                      </div>
                    </div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">Well, 125 fps sounds fast ;)</div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">This line tries to convert HDR video
                      to SDR version, same size (for your case) but it
                      now 10bit h264 instead of 10bit h265.</div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">You probably can add format=yuv420p
                      before all other -vf liblacebo options so
                      resulting file will be more compatible 8bit h264.</div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">You can try to watch both vids side
                      by side, I think mpv uses same algorithm as
                      libplacebo, so on SDR screen results must look
                      close to each other?</div>
                    <div dir="auto"><br>
                    </div>
                  </div>
                </blockquote>
                <br>
                <br>
                I tried also to convert adding -vf format=yuv420p,</div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">sorry, I mean </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"> -i
          ~/K38_sdcard1/Documents/iPhone11_4K-recorder_59.940HDR10.mov
          -vf 
libplacebo=format=yuv444p:w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos:colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">format as part of -vf libplacebo string, not
          separate ffmpeg filter.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div> but both the 10bit and 8bit output files are
                distorted when playback with vlc, mpv or ffplay.<br>
                In comparison testing with my highest ProRes hq 10bit
                video file as input (not HDR), the output mp4 file looks
                fine with the same ffmpeg code line.<br>
                <br>
                Was there a download site with small HDR10 test clips
                available, so we can test and compare using the same
                input?<br>
              </div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">No clips themselves, but wiki with links to
          them </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><a href="https://kodi.wiki/view/Samples" rel="noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://kodi.wiki/view/Samples</a></div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">I used</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Apple "special" clip</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">"HDR10 HEVC 59.94 (MOV, @hdmkv's iPhone 11 Pro
          Max raw 4K footage using 4K HDR Video Recorder app)"</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><a href="https://drive.google.com/file/d/1Ic9DZXMSo07EJMqCFaQRKSSrSw6y1mYv/view?usp=sharing" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://drive.google.com/file/d/1Ic9DZXMSo07EJMqCFaQRKSSrSw6y1mYv/view?usp=sharing</a></div>
      </div>
    </blockquote>
    <br>
    ================<br>
    <br>
    <font face="Courier New, Courier, monospace">For some reasons, the
      conversions work fine when I leave out the export of environment
      variables:<br>
      <br>
      env | egrep -i "ANV|vulkan"<br></font></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">may be latest mesa vulkan driver for intel enabled those extensions by default ....</div><div dir="auto"><br></div><div dir="auto">Enjoy THE SPEEED! ;)</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><font face="Courier New, Courier, monospace">
      <br>
      <br>
      a) HDR10 UHD/4k --> SDR FHD/2k<br>
      -------------------------------<br>
      <br>
      Downloaded the inpput testfile from<br>
      "HDR10 HEVC 59.94 (MOV, @hdmkv's iPhone 11 Pro Max raw 4K footage
      using 4K<br>
      HDR Video Recorder app)"<br>
<a href="https://drive.google.com/file/d/1Ic9DZXMSo07EJMqCFaQRKSSrSw6y1mYv/view?usp=sharing" target="_blank" rel="noreferrer">https://drive.google.com/file/d/1Ic9DZXMSo07EJMqCFaQRKSSrSw6y1mYv/view?usp=sharing</a><br>
      <br>
      time -p ffmpeg -hide_banner -init_hw_device vulkan=vulkan
      -filter_hw_device vulkan -hwaccel vulkan  -i
      iPhone11_4K-recorder_59.940HDR10.mov -vf
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos:colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv 
      -c:a copy -c:v libx264  -f mp4 -benchmark
      ffmpeg-libplacebo-iPhone11_4K-recorder_59.940HDR10.mp4<br>
      <br>
      frame= 1148 fps= 86 q=-1.0 Lsize=   32501KiB time=00:00:19.13
      bitrate=13913.6kbits/s speed=1.43x    <br>
      bench: utime=235.787s stime=2.261s rtime=13.349s<br>
      bench: maxrss=3259684KiB<br>
      real 13,45<br>
      user 235,84<br>
      sys 2,30<br>
      <br>
      <br>
      b) HDR FHD/2k --> SDR FHD/2k<br>
      -----------------------------<br>
      <br>
      Recorded input video test clip with Pixel 7 Pro smartphone<br>
      <br>
      time -p ffmpeg -hide_banner -init_hw_device vulkan=vulkan
      -filter_hw_device vulkan -hwaccel vulkan  -i
      PXL_20250427_195356771.TS.mp4 -vf
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos:colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv 
      -c:a copy -c:v libx264  -f mp4 -benchmark
      ffmpeg-libplacebo-PXL_20250427_195356771.mp4<br>
      <br>
      frame=  209 fps=104 q=-1.0 Lsize=    2862KiB time=00:00:06.90
      bitrate=3398.0kbits/s speed=3.44x    <br>
      bench: utime=27.177s stime=0.512s rtime=2.007s<br>
      bench: maxrss=2327544KiB<br>
      real 4,96<br>
      user 27,24<br>
      sys 0,54<br>
    </font><br>
    <br>
    <font face="Courier New, Courier, monospace">du -sh *<br>
      32M    ffmpeg-libplacebo-iPhone11_4K-recorder_59.940HDR10.mp4<br>
      2,8M    ffmpeg-libplacebo-PXL_20250427_195356771.mp4<br>
      158M    iPhone11_4K-recorder_59.940HDR10.mov<br>
      17M    PXL_20250427_195356771.TS.mp4</font><br>
    <br>
    =============================<br>
    <br>
    <blockquote type="cite">
      <div dir="auto">
        <div dir="auto">and less demanding (but still slideshow w/o hw
          acceleration!)</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">"HDR10+ Profile B HEVC 10-bit 23.976 Sample (MKV
          with EAC-3 JOC ATMOS audio)"</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><a href="https://mega.nz/file/nehDka6Z#C5_OPbSZkONdOp1jRmc09C9-viDc3zMj8ZHruHcWKyA" rel="noreferrer noreferrer noreferrer" target="_blank">https://mega.nz/file/nehDka6Z#C5_OPbSZkONdOp1jRmc09C9-viDc3zMj8ZHruHcWKyA</a></div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div> <br>
                <br>
                <font face="Courier New, Courier, monospace">time -p
                  ffmpeg -hide_banner  -init_hw_device vulkan=vulkan
                  -filter_hw_device vulkan -hwaccel vulkan  -i
                  PXL_20250427_195356771.TS.mp4 -vf
format=yuv420p,libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos:colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv 
                  -c:a copy -c:v libx264  -f mp4 -benchmark
                  ffmpeg-libplacebo-PXL_20250427_195356771.TS.mp4<br>
                  [mov,mp4,m4a,3gp,3g2,mj2 @ 0x56364496c680] All samples
                  in data stream index:id [3:4] have zero duration,
                  stream set to be discarded by default. Override using
                  AVStream->discard or -discard for ffmpeg command.<br>
                  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
                  'PXL_20250427_195356771.TS.mp4':<br>
                    Metadata:<br>
                      major_brand     : isom<br>
                      minor_version   : 131072<br>
                      compatible_brands: isomiso2mp41<br>
                      creation_time   : 2025-04-27T19:54:05.000000Z<br>
                      SpecialTypeID   :
                  com.google.android.apps.camera.gallery.specialtype.SpecialType-AMETHYST<br>
                      com.android.capture.fps: 30.000000<br>
                      com.android.model: Pixel 7 Pro<br>
                      com.android.manufacturer: Google<br>
                    Duration: 00:00:06.97, start: 0.000000, bitrate:
                  20255 kb/s<br>
                    Stream #0:0[0x1](eng): Data: none (mett /
                  0x7474656D), 47 kb/s (default)<br>
                        Metadata:<br>
                          creation_time   : 2025-04-27T19:54:05.000000Z<br>
                          handler_name    : MetaHandle<br>
                    Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a /
                  0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s
                  (default)<br>
                        Metadata:<br>
                          creation_time   : 2025-04-27T19:54:05.000000Z<br>
                          handler_name    : SoundHandle<br>
                          vendor_id       : [0][0][0][0]<br>
                    Stream #0:2[0x3](eng): Video: hevc (Main 10) (hvc1 /
                  0x31637668), yuv420p10le(tv,
                  bt2020nc/bt2020/arib-std-b67), 1920x1080, 20010 kb/s,
                  SAR 1:1 DAR 16:9, 29.99 fps, 30 tbr, 90k tbn (default)<br>
                        Metadata:<br>
                          creation_time   : 2025-04-27T19:54:05.000000Z<br>
                          handler_name    : VideoHandle<br>
                          vendor_id       : [0][0][0][0]<br>
                    Stream #0:3[0x4](eng): Data: none (mett /
                  0x7474656D) (default)<br>
                        Metadata:<br>
                          creation_time   : 2025-04-27T19:54:05.000000Z<br>
                          handler_name    : MetaHandle<br>
                  File 'ffmpeg-libplacebo-PXL_20250427_195356771.TS.mp4'
                  already exists. Overwrite? [y/N] y<br>
                  Stream mapping:<br>
                    Stream #0:2 -> #0:0 (hevc (native) -> h264
                  (libx264))<br>
                    Stream #0:1 -> #0:1 (copy)<br>
                  Press [q] to stop, [?] for help<br>
                  MESA-INTEL: warning:
                  ../src/intel/vulkan/anv_formats.c:834: FINISHME:
                  support more multi-planar formats with DRM modifiers<br>
                  [libx264 @ 0x563644986d40] using SAR=1/1<br>
                  [libx264 @ 0x563644986d40] using cpu capabilities:
                  MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2<br>
                  [libx264 @ 0x563644986d40] profile High, level 4.0,
                  4:2:0, 8-bit<br>
                  [libx264 @ 0x563644986d40] 264 - core 164 -
                  H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - <a href="http://www.videolan.org/x264.html" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">http://www.videolan.org/x264.html</a>
                  - options: cabac=1 ref=3 deblock=1:0:0
                  analyse=0x3:0x113 me=hex subme=7 psy=1
                  psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1
                  trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1
                  chroma_qp_offset=-2 threads=30 lookahead_threads=5
                  sliced_threads=0 nr=0 decimate=1 interlaced=0
                  bluray_compat=0 constrained_intra=0 bframes=3
                  b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1
                  open_gop=0 weightp=2 keyint=250 keyint_min=25
                  scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
                  mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4
                  ip_ratio=1.40 aq=1:1.00<br>
                  Output #0, mp4, to
                  'ffmpeg-libplacebo-PXL_20250427_195356771.TS.mp4':<br>
                    Metadata:<br>
                      major_brand     : isom<br>
                      minor_version   : 131072<br>
                      compatible_brands: isomiso2mp41<br>
                      com.android.manufacturer: Google<br>
                      SpecialTypeID   :
                  com.google.android.apps.camera.gallery.specialtype.SpecialType-AMETHYST<br>
                      com.android.capture.fps: 30.000000<br>
                      com.android.model: Pixel 7 Pro<br>
                      encoder         : Lavf61.7.100<br>
                    Stream #0:0(eng): Video: h264 (avc1 / 0x31637661),
                  yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1
                  DAR 16:9], q=2-31, 30 fps, 15360 tbn (default)<br>
                        Metadata:<br>
                          creation_time   : 2025-04-27T19:54:05.000000Z<br>
                          handler_name    : VideoHandle<br>
                          vendor_id       : [0][0][0][0]<br>
                          encoder         : Lavc61.19.101 libx264<br>
                        Side data:<br>
                          cpb: bitrate max/min/avg: 0/0/0 buffer size: 0
                  vbv_delay: N/A<br>
                    Stream #0:1(eng): Audio: aac (LC) (mp4a /
                  0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s
                  (default)<br>
                        Metadata:<br>
                          creation_time   : 2025-04-27T19:54:05.000000Z<br>
                          handler_name    : SoundHandle<br>
                          vendor_id       : [0][0][0][0]<br>
                  [out#0/mp4 @ 0x56364496f940] video:3480KiB
                  audio:163KiB subtitle:0KiB other streams:0KiB global
                  headers:0KiB muxing overhead: 0.242542%<br>
                  frame=  209 fps=116 q=-1.0 Lsize=    3651KiB
                  time=00:00:06.90 bitrate=4335.2kbits/s speed=3.83x    <br>
                  bench: utime=14.435s stime=0.739s rtime=1.804s<br>
                  bench: maxrss=1455376KiB<br>
                  [libx264 @ 0x563644986d40] frame I:2     Avg QP:18.68 
                  size:105708<br>
                  [libx264 @ 0x563644986d40] frame P:66    Avg QP:23.77 
                  size: 32017<br>
                  [libx264 @ 0x563644986d40] frame B:141   Avg QP:31.40 
                  size:  8783<br>
                  [libx264 @ 0x563644986d40] consecutive B-frames: 
                  7.2%  6.7%  5.7% 80.4%<br>
                  [libx264 @ 0x563644986d40] mb I  I16..4: 32.3% 25.8%
                  41.9%<br>
                  [libx264 @ 0x563644986d40] mb P  I16..4:  0.4%  0.5% 
                  1.2%  P16..4: 16.7%  8.0%  5.6%  0.0%  0.0%   
                  skip:67.5%<br>
                  [libx264 @ 0x563644986d40] mb B  I16..4:  0.0%  0.0% 
                  0.0%  B16..8: 12.9%  4.5%  1.4%  direct: 1.8% 
                  skip:79.2%  L0:46.1% L1:47.2% BI: 6.8%<br>
                  [libx264 @ 0x563644986d40] 8x8 transform intra:23.8%
                  inter:36.3%<br>
                  [libx264 @ 0x563644986d40] coded y,uvDC,uvAC intra:
                  56.1% 64.0% 50.1% inter: 6.8% 6.4% 2.8%<br>
                  [libx264 @ 0x563644986d40] i16 v,h,dc,p: 53% 44%  2% 
                  1%<br>
                  [libx264 @ 0x563644986d40] i8
                  v,h,dc,ddl,ddr,vr,hd,vl,hu: 43% 16% 16%  2%  1%  0% 
                  0%  0% 21%<br>
                  [libx264 @ 0x563644986d40] i4
                  v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 56% 12%  1%  1%  1% 
                  1%  1%  7%<br>
                  [libx264 @ 0x563644986d40] i8c dc,h,v,p: 42% 45% 13% 
                  1%<br>
                  [libx264 @ 0x563644986d40] Weighted P-Frames: Y:0.0%
                  UV:0.0%<br>
                  [libx264 @ 0x563644986d40] ref P L0: 68.8%  8.1% 12.7%
                  10.4%<br>
                  [libx264 @ 0x563644986d40] ref B L0: 88.9%  8.3%  2.8%<br>
                  [libx264 @ 0x563644986d40] ref B L1: 94.5%  5.5%<br>
                  [libx264 @ 0x563644986d40] kb/s:4091.33<br>
                  real 4,76<br>
                  user 14,49<br>
                  sys 0,77<br>
                  <br>
                </font><br>
                <br>
              </div>
            </blockquote>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div></div></div>