<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" 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"><u></u>
<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" 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" 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" target="_blank">https://drive.google.com/file/d/1Ic9DZXMSo07EJMqCFaQRKSSrSw6y1mYv/view?usp=sharing</a></div><div dir="auto"><br></div><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" 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" 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>