[FFmpeg-trac] #7129(ffmpeg:new): Color change observed while converting png to mp4 format

FFmpeg trac at avcodec.org
Mon Apr 9 14:44:40 EEST 2018


#7129: Color change observed while converting png to mp4 format
----------------------------------+--------------------------------------
             Reporter:  testh001  |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  ffmpeg    |                  Version:  git-master
             Keywords:  png mp4   |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 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
 SE4.2
 [libx264 @ 000000592af5d580] profile High 4:4:4 Predictive, level 4.0,
 4:4:4 8-b
 it
 [libx264 @ 000000592af5d580] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4
 AVC cod
 ec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - 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':
   Metadata:
     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
     Metadata:
       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:
 [https://trac.ffmpeg.org/ticket/7115]

 [[Image(https://user-
 images.githubusercontent.com/29530279/38495846-776e4676-3bfb-
 11e8-8770-a0ebbbd892de.png)]]

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7129>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list