[FFmpeg-trac] #1611(undetermined:new): The colors change when converting bgr24 to yuv420p

FFmpeg trac at avcodec.org
Sun Aug 5 23:04:07 CEST 2012


#1611: The colors change when converting bgr24 to yuv420p
-------------------------------------+-------------------------------------
             Reporter:  fftest800    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  0.11.1
  undetermined                       |               Blocked By:
             Keywords:               |  Reproduced by developer:  0
  colors,bgr24,yuv                   |
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Similar to this ticket : http://ffmpeg.org/trac/ffmpeg/ticket/979

 The colors change when converting bgr24 to yuv420p

 TEST A - 1)) :
 {{{
 Input #0, flv, from 'source_flashsv_bgr24_720x480.flv':
 Metadata:
 encoder         : Lavf54.3.100
 Duration: 00:00:15.03, start: 0.000000, bitrate: 80 kb/s
 Stream #0:0: Video: flashsv, bgr24, 720x480, 200 kb/s, 1 tbr, 1k tbn, 1k
 tbc
 }}}

 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 TEST A - 2)) :
 ffmpeg.exe -i source_flashsv_bgr24_720x480.flv -pix_fmt yuv420p -s 720x480
 -vcodec libx264 -an output_x264_yuv420p_720x480.mp4

 {{{
 ffmpeg version N-43060-ga85b4a5 Copyright (c) 2000-2012 the FFmpeg
 developers  built on Jul 30 2012 13:14:08 with gcc 4.7.1 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-
 frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb
 --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-
 libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-
 libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo
 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-
 libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      51. 66.100 / 51. 66.100
   libavcodec     54. 45.100 / 54. 45.100
   libavformat    54. 22.100 / 54. 22.100
   libavdevice    54.  2.100 / 54.  2.100
   libavfilter     3.  5.101 /  3.  5.101
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 15.100 /  0. 15.100
   libpostproc    52.  0.100 / 52.  0.100
 Input #0, flv, from 'source_flashsv_bgr24_720x480.flv':
   Metadata:
     encoder         : Lavf54.3.100
   Duration: 00:00:15.03, start: 0.000000, bitrate: 80 kb/s
     Stream #0:0: Video: flashsv, bgr24, 720x480, 200 kb/s, 1 tbr, 1k tbn,
 1k tbc

 [libx264 @ 01d85e00] using cpu capabilities: MMX2 SSE2Fast SSSE3
 FastShuffle SSE
 4.2
 [libx264 @ 01d85e00] profile High, level 2.2
 [libx264 @ 01d85e00] 264 - core 125 r2200 999b753 - H.264/MPEG-4 AVC codec
 - Cop
 yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1
 ref=3 deb
 lock=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=6 lookahead_threads=1 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=1
 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 'output_x264_yuv420p_720x480.mp4':
   Metadata:
     encoder         : Lavf54.22.100
     Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 720x480,
 q=-1--1
 , 1 tbn, 1 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (flashsv -> libx264)
 Press [q] to stop, [?] for help
 frame=   16 fps=0.0 q=17.0 Lsize=      44kB time=00:00:14.00 bitrate=
 25.9kbits
 /s dup=14 drop=0
 video:43kB audio:0kB subtitle:0 global headers:0kB muxing overhead
 2.228532%
 [libx264 @ 01d85e00] frame I:1     Avg QP:12.63  size: 42981
 [libx264 @ 01d85e00] frame P:4     Avg QP:15.77  size:    93
 [libx264 @ 01d85e00] frame B:11    Avg QP:17.00  size:    27
 [libx264 @ 01d85e00] consecutive B-frames:  6.3%  0.0% 18.8% 75.0%
 [libx264 @ 01d85e00] mb I  I16..4: 56.2%  2.2% 41.6%
 [libx264 @ 01d85e00] mb P  I16..4:  0.1%  0.0%  0.0%  P16..4:  0.9%  0.0%
 0.0%
  0.0%  0.0%    skip:99.0%
 [libx264 @ 01d85e00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.3%  0.0%
 0.0%
  direct: 0.0%  skip:99.7%  L0:45.1% L1:54.9% BI: 0.0%
 [libx264 @ 01d85e00] 8x8 transform intra:2.2% inter:13.3%
 [libx264 @ 01d85e00] coded y,uvDC,uvAC intra: 31.4% 43.3% 40.6% inter:
 0.0% 0.2%
  0.0%
 [libx264 @ 01d85e00] i16 v,h,dc,p: 83% 12%  4%  0%
 [libx264 @ 01d85e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 49% 34% 14%  2%  0%
 1%  0%
  0%  0%
 [libx264 @ 01d85e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 40% 33% 10%  3%  2%
 3%  3%
  3%  4%
 [libx264 @ 01d85e00] i8c dc,h,v,p: 54% 24% 22%  1%
 [libx264 @ 01d85e00] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 01d85e00] ref P L0: 93.8%  0.0%  2.1%  4.2%
 [libx264 @ 01d85e00] ref B L0: 73.9% 26.1%
 [libx264 @ 01d85e00] ref B L1: 71.4% 28.6%
 [libx264 @ 01d85e00] kb/s:21.83
 }}}
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 TEST B - 1)) :
 {{{
 Input #0, flv, from 'source_flashsv_bgr24_720x480.flv':
 Metadata:
 encoder         : Lavf54.3.100
 Duration: 00:00:15.03, start: 0.000000, bitrate: 80 kb/s
 Stream #0:0: Video: flashsv, bgr24, 720x480, 200 kb/s, 1 tbr, 1k tbn, 1k
 tbc
 }}}

 TEST B - 2)) : [change the Size -s anyxany]
 ffmpeg.exe -i source_flashsv_bgr24_720x480.flv -pix_fmt yuv420p -s 722x480
 -vcodec libx264 -an output_x264_yuv420p_722x480.mp4

 {{{
 ffmpeg version N-43060-ga85b4a5 Copyright (c) 2000-2012 the FFmpeg
 developers  built on Jul 30 2012 13:14:08 with gcc 4.7.1 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-
 frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb
 --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-
 libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-
 libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo
 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-
 libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      51. 66.100 / 51. 66.100
   libavcodec     54. 45.100 / 54. 45.100
   libavformat    54. 22.100 / 54. 22.100
   libavdevice    54.  2.100 / 54.  2.100
   libavfilter     3.  5.101 /  3.  5.101
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 15.100 /  0. 15.100
   libpostproc    52.  0.100 / 52.  0.100
 Input #0, flv, from 'source_flashsv_bgr24_720x480.flv':
   Metadata:
     encoder         : Lavf54.3.100
   Duration: 00:00:15.03, start: 0.000000, bitrate: 80 kb/s
     Stream #0:0: Video: flashsv, bgr24, 720x480, 200 kb/s, 1 tbr, 1k tbn,
 1k tbc

 [libx264 @ 03d75e00] using cpu capabilities: MMX2 SSE2Fast SSSE3
 FastShuffle SSE
 4.2
 [libx264 @ 03d75e00] profile High, level 2.2
 [libx264 @ 03d75e00] 264 - core 125 r2200 999b753 - H.264/MPEG-4 AVC codec
 - Cop
 yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1
 ref=3 deb
 lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
 mixed_ref=1 m
 e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11
 fast_pskip=1 chro
 ma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0
 decimate=1 i
 nterlaced=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=1
 scenecu
 t=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 'output_x264_yuv420p_722x480.mp4':
   Metadata:
     encoder         : Lavf54.22.100
     Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 722x480,
 q=-1--1
 , 1 tbn, 1 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (flashsv -> libx264)
 Press [q] to stop, [?] for help
 frame=   16 fps=0.0 q=17.0 Lsize=      45kB time=00:00:14.00 bitrate=
 26.6kbits
 /s dup=14 drop=0
 video:44kB audio:0kB subtitle:0 global headers:0kB muxing overhead
 2.171479%
 [libx264 @ 03d75e00] frame I:1     Avg QP:12.54  size: 44205
 [libx264 @ 03d75e00] frame P:4     Avg QP:15.08  size:    83
 [libx264 @ 03d75e00] frame B:11    Avg QP:17.00  size:    26
 [libx264 @ 03d75e00] consecutive B-frames:  6.3%  0.0% 18.8% 75.0%
 [libx264 @ 03d75e00] mb I  I16..4: 60.9%  2.0% 37.2%
 [libx264 @ 03d75e00] mb P  I16..4:  0.1%  0.0%  0.0%  P16..4:  0.7%  0.1%
 0.1%
  0.0%  0.0%    skip:99.0%
 [libx264 @ 03d75e00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.3%  0.0%
 0.0%
  direct: 0.0%  skip:99.7%  L0:17.3% L1:82.7% BI: 0.0%
 [libx264 @ 03d75e00] 8x8 transform intra:1.9% inter:76.5%
 [libx264 @ 03d75e00] coded y,uvDC,uvAC intra: 33.2% 40.5% 37.7% inter:
 0.0% 0.2%
  0.0%
 [libx264 @ 03d75e00] i16 v,h,dc,p: 85% 11%  4%  0%
 [libx264 @ 03d75e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 37% 35% 24%  0%  0%
 1%  1%
  0%  2%
 [libx264 @ 03d75e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 43% 27%  9%  3%  3%
 3%  3%
  3%  4%
 [libx264 @ 03d75e00] i8c dc,h,v,p: 60% 20% 19%  1%
 [libx264 @ 03d75e00] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 03d75e00] ref P L0: 94.7%  0.0%  3.2%  2.1%
 [libx264 @ 03d75e00] ref B L0: 76.5% 11.8% 11.8%
 [libx264 @ 03d75e00] ref B L1: 92.6%  7.4%
 [libx264 @ 03d75e00] kb/s:22.41
 }}}

 Results)) :
 source_flashsv_bgr24_orginalsize ==> output_x264_yuv420p_orginalsize (The
 colors change)

 source_flashsv_bgr24_orginalsize ==> output_x264_yuv420p_anysize (The
 colors OK)

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


More information about the FFmpeg-trac mailing list