Opened 2 years ago

Closed 2 years ago

#7129 closed defect (duplicate)

Color change observed while converting png to mp4 format

Reported by: testh001 Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Note: This ticket follows all the requirements for a valid ticket. It contains:

  1. Full input line including all the input parameters
  2. Full output including header (banner)
  3. Reproducible test cases
  4. Input image
  5. Output

Summary of the bug:
When converting a png file from png format to mp4 format, colors sometime change to darker colors. Here is an example:

% ffmpeg -i 1.png 1.mp4

And here is the full output:

  built with gcc 7.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --e
nable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libblur
ay --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enab
le-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-li
bvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --en
able-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enabl
e-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enabl
e-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enab
le-dxva2 --enable-avisynth
  libavutil      56. 12.100 / 56. 12.100
  libavcodec     58. 16.100 / 58. 16.100
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 13.100 /  7. 13.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, png_pipe, from '1.png':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: png, rgb24(pc), 1920x1080 [SAR 3779:3779 DAR 16:9], 25 t
br, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 000000592af5d580] using SAR=1/1
[libx264 @ 000000592af5d580] using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 S
[libx264 @ 000000592af5d580] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-b
[libx264 @ 000000592af5d580] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC cod
ec - Copyleft 2003-2018 - - options: cabac=1 r
ef=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed
_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pski
p=1 chroma_qp_offset=4 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decim
ate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_a
dapt=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
Output #0, mp4, to '1.mp4':
    encoder         : Lavf58.10.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p, 1920x1080 [
SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
      encoder         : Lavc58.16.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=    1 fps=0.0 q=28.0 Lsize=       2kB time=00:00:00.00 bitrate=206666.7kbi
ts/s speed=0.000999x
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing ove
rhead: 68.196999%
[libx264 @ 000000592af5d580] frame I:1     Avg QP:13.00  size:   510
[libx264 @ 000000592af5d580] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 000000592af5d580] coded y,u,v intra: 0.0% 0.0% 0.0%
[libx264 @ 000000592af5d580] i16 v,h,dc,p: 99%  0%  1%  0%
[libx264 @ 000000592af5d580] kb/s:102.00

Here is input file (I have no idea how to upload image here, I just uploaded to github and posted link to it). The output 1.mp4 has only one frame and it has DARKER colors. Colors are changed. So basically, open output 1.mp4 in in any video player, then screenshot screen, paste somewhere, use color picker and you will see that colors are changed. It should not happen. Here is input file 1.png (and I dont know how to upload 1.mp4, but you can easily make it by using ffmpeg command line I posted above). For reference, here is my old ticket:

Change History (1)

comment:1 Changed 2 years ago by cehoyos

  • Component changed from ffmpeg to undetermined
  • Keywords png mp4 removed
  • Resolution set to duplicate
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.