Using the latest 5.1.1 "essentials build" by www.gyan.dev.
Hi all, I'm a beginner to ffmpeg so I'm having a hard time believing that a
utility so old and so widely used has such a fundamental bug, but the evidence
is staring me in the face and leads me to no other conclusion.
It's incredibly easy to replicate thankfully. I want to convert numerous frames
to make an animation, but thankfully, I've simplified the problem to even using
a single image to make a '1 frame video' for the purposes of debugging.
Simply perform this command line:
ffmpeg.exe -i original.png -crf 0 -vcodec libx264 output.mp4
...With this "original.png" ("fC2Tj") image: https://i.stack.imgur.com/5jkct.png
And this command line:
ffmpeg.exe -i doubleHeight.png -crf 0 -vcodec libx264 output.mp4
...On this "doubleHeight" ("RGIvA") image: https://i.stack.imgur.com/PLdsb.png
The double height version is darker than it should be. I've checked the
resulting video in both Media Player Classic and Chrome.
If you check the dark green colour on the original PNG images, using an eye
dropper tool, they're both R=25,G=74,B=15. However, if you check the same
colour on the output MP4s, the colour matches on the original PNG, but not the
doubleHeight version, which is R=22,G=66,B=12.
If I use -vcodec libx264rgb, instead of -vcodec libx264, that fixes the issue,
but I need libx264 so the output video can work on Chrome and other media
players.
What gives? CLI output below (for the double height version):
-------------------------------------------------------------------------------
D:\Utils\ffmpeg\bin\ffmpeg.exe -i C:\Users\<USERNAME>\Desktop\testcol\PLdsb.png -crf
0 -vcodec libx264 C:\Users\<USERNAME>\Desktop\testcol\PLdsb.mp4
ffmpeg version 5.1.1-essentials_build-www.gyan.dev Copyright (c) 2000-2022 the
FFmpeg developers
built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static
--disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv
--enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib
--enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid
--enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass
--enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf
--enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid
--enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va
--enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt
--enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora
--enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb
--enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
Input #0, png_pipe, from 'C:\Users\<USERNAME>\Desktop\testcol\PLdsb.png':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: png, rgb24(pc), 968x984, 25 fps, 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 000001b24acb3400] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 000001b24acb3400] profile High 4:4:4 Predictive, level 3.2, 4:4:4,
8-bit
[libx264 @ 000001b24acb3400] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC
codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options:
cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=0 mixed_ref=1
me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=0
chroma_qp_offset=0 threads=12 lookahead_threads=2 sliced_threads=0 nr=0
decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=2
keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=0
Output #0, mp4, to 'C:\Users\<USERNAME>\Desktop\testcol\PLdsb.mp4':
Metadata:
encoder : Lavf59.27.100
Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv444p(tv, progressive),
968x984, q=2-31, 25 fps, 12800 tbn
Metadata:
encoder : Lavc59.37.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 1 fps=0.0 q=0.0 Lsize= 2kB time=00:00:00.00
bitrate=180512.8kbits/s speed=0.0017x
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: 88.235291%
[libx264 @ 000001b24acb3400] frame I:1 Avg QP: 0.00 size: 405
[libx264 @ 000001b24acb3400] mb I I16..4: 83.5% 16.4% 0.1%
[libx264 @ 000001b24acb3400] 8x8 transform intra:16.4%
[libx264 @ 000001b24acb3400] coded y,u,v intra: 0.0% 0.0% 0.0%
[libx264 @ 000001b24acb3400] i16 v,h,dc,p: 100% 0% 0% 0%
[libx264 @ 000001b24acb3400] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 41% 0% 59% 0% 0%
0% 0% 0% 0%
[libx264 @ 000001b24acb3400] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 6% 56% 0% 0%
0% 0% 0% 0%
[libx264 @ 000001b24acb3400] kb/s:81.00
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".