[FFmpeg-trac] #7180(undetermined:new): Encoding to H.265 produces washed out colors

FFmpeg trac at avcodec.org
Tue May 1 23:14:19 EEST 2018


#7180: Encoding to H.265 produces washed out colors
-------------------------------------+-------------------------------------
             Reporter:  martinml     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 I have a H.264 encoded video and want to re-encode it to H.265. The
 resulting colors are washed out, i.e. blacks become lighter. Probably
 something to do with the color range? I tried VLC 2.2.6 and MPC-HC 1.7.13
 in Windows 10 1709.

 {{{
 > ffmpeg -i input.mp4 -c:v libx265 -an output.mp4
 ffmpeg version N-90908-g0807a77160 Copyright (c) 2000-2018 the FFmpeg
 developers
   built with gcc 7.3.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass
 --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
   libavutil      56. 18.100 / 56. 18.100
   libavcodec     58. 19.100 / 58. 19.100
   libavformat    58. 13.100 / 58. 13.100
   libavdevice    58.  4.100 / 58.  4.100
   libavfilter     7. 21.100 /  7. 21.100
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
   libpostproc    55.  2.100 / 55.  2.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf56.1.100
   Duration: 00:00:07.69, start: 0.000000, bitrate: 9074 kb/s
     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661),
 yuvj420p(pc), 1920x1080, 9063 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
 (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(eng): Audio: mp3 (mp4a / 0x6134706D), 22050 Hz, stereo,
 fltp, 64 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
 Press [q] to stop, [?] for help
 [swscaler @ 000001fad3877740] deprecated pixel format used, make sure you
 did set range correctly
 x265 [info]: HEVC encoder version 2.7+336-07defe235cde
 x265 [info]: build info [Windows][GCC 7.3.0][64 bit] 8bit+10bit
 x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX
 FMA3 BMI2 AVX2
 x265 [info]: Main profile, Level-4 (Main tier)
 x265 [info]: Thread pool created using 4 threads
 x265 [info]: Slices                              : 1
 x265 [info]: frame threads / pool features       : 2 / wpp(17 rows)
 x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
 x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
 x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 2
 x265 [info]: Keyframe min / max / scenecut / bias: 25 / 250 / 40 / 5.00
 x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
 x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
 x265 [info]: References / ref-limit  cu / depth  : 3 / on / on
 x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
 x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60
 x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-
 smoothing
 x265 [info]: tools: lslices=6 deblock sao
 Output #0, mp4, to 'output.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf58.13.100
     Stream #0:0(eng): Video: hevc (libx265) (hev1 / 0x31766568), yuv420p,
 1920x1080, q=2-31, 25 fps, 12800 tbn, 25 tbc (default)
     Metadata:
       handler_name    : VideoHandler
       encoder         : Lavc58.19.100 libx265
 frame=  191 fps=6.3 q=-0.0 Lsize=    1578kB time=00:00:07.52
 bitrate=1719.5kbits/s speed=0.249x
 video:1573kB audio:0kB subtitle:0kB other streams:0kB global headers:2kB
 muxing overhead: 0.327104%
 x265 [info]: frame I:      1, Avg QP:28.32  kb/s: 4202.60
 x265 [info]: frame P:     44, Avg QP:27.46  kb/s: 2913.61
 x265 [info]: frame B:    146, Avg QP:31.75  kb/s: 1299.09
 x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
 x265 [info]: consecutive B-frames: 2.2% 2.2% 4.4% 51.1% 40.0%

 encoded 191 frames in 30.17s (6.33 fps), 1686.22 kb/s, Avg QP:30.74
 }}}

 {{{
 > ffprobe -v verbose input.mp4
 ffprobe version N-90908-g0807a77160 Copyright (c) 2007-2018 the FFmpeg
 developers
   built with gcc 7.3.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass
 --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
   libavutil      56. 18.100 / 56. 18.100
   libavcodec     58. 19.100 / 58. 19.100
   libavformat    58. 13.100 / 58. 13.100
   libavdevice    58.  4.100 / 58.  4.100
   libavfilter     7. 21.100 /  7. 21.100
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
   libpostproc    55.  2.100 / 55.  2.100
 [h264 @ 000001f046b0f740] Reinit context to 1920x1088, pix_fmt: yuvj420p
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf56.1.100
   Duration: 00:00:07.69, start: 0.000000, bitrate: 9074 kb/s
     Stream #0:0(eng): Video: h264 (High), 1 reference frame (avc1 /
 0x31637661), yuvj420p(pc, left), 1920x1080 (1920x1088), 9063 kb/s, 25 fps,
 25 tbr, 12800 tbn, 50 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(eng): Audio: mp3 (mp4a / 0x6134706D), 22050 Hz, stereo,
 fltp, 64 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 }}}

 {{{
 > ffprobe -v verbose output.mp4
 ffprobe version N-90908-g0807a77160 Copyright (c) 2007-2018 the FFmpeg
 developers
   built with gcc 7.3.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass
 --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
   libavutil      56. 18.100 / 56. 18.100
   libavcodec     58. 19.100 / 58. 19.100
   libavformat    58. 13.100 / 58. 13.100
   libavdevice    58.  4.100 / 58.  4.100
   libavfilter     7. 21.100 /  7. 21.100
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
   libpostproc    55.  2.100 / 55.  2.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf58.13.100
   Duration: 00:00:07.64, start: 0.000000, bitrate: 1692 kb/s
     Stream #0:0(eng): Video: hevc (Main), 1 reference frame (hev1 /
 0x31766568), yuv420p(tv, progressive), 1920x1080, 1687 kb/s, 25 fps, 25
 tbr, 12800 tbn, 25 tbc (default)
     Metadata:
       handler_name    : VideoHandler
 }}}

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


More information about the FFmpeg-trac mailing list