[FFmpeg-trac] #4287(avcodec:new): lossless libx264rgb data corruption with image2 input

FFmpeg trac at avcodec.org
Thu Jan 29 21:54:46 CET 2015


#4287: lossless libx264rgb data corruption with image2 input
-------------------------------------+-------------------------------------
             Reporter:  pcordes      |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  avcodec
              Version:  git-master   |               Resolution:
             Keywords:  libx264rgb   |               Blocked By:
  x264 corruption lossless image2    |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by pcordes):

 Neither do I, with just a single PNG as input.  If I said "always
 corrupts", I meant when varying anything except the 16 frames of the
 Sintel trailer I was feeding it.  I haven't tested other inputs, to see if
 maybe full-range RGB is the problem, or anything specific to the Sintel
 trailer is the problem.

 I **do** still see corruption with only 2 frames of input.

 {{{
 mkdir -p "gtest-$HOSTNAME";
 for opt in subme={0,3}; do
   sframe=13 fr=2 crf=0 pr=ultrafast;
   s="gtest-$HOSTNAME/ffmpeg.frame$sframe+$fr.from-png.$pr.$opt";
   FFREPORT=file="'$s.log'" ffmpeg -sws_flags +print_info  -framerate 24
 -start_number $sframe -i 1080/sintel_trailer_2k_00%d.png -c:v libx264rgb
 -crf $crf -preset $pr -frames $fr -x264-params "$opt" "$s.mkv";
   ffmpeg -i "$s.mkv" -pix_fmt rgb24 -f framemd5
 "${s/ffmpeg/framemd5.rgb24}"; done

 md5sum gtest-tesla/framemd5.rgb24.* | sort
 40dcf9e04347a6558866d3e126e5bb3a  gtest-tesla/framemd5.rgb24.frame13+2
 .from-png.ultrafast.subme=0
 40dcf9e04347a6558866d3e126e5bb3a  gtest-
 tesla/framemd5.rgb24.threads1.frame13+2.from-png.ultrafast.subme=0
 d813854b43e44ec7efaf5bb44d5b99e1  gtest-tesla/framemd5.rgb24.frame13+2
 .from-png.ultrafast.subme=3
 d813854b43e44ec7efaf5bb44d5b99e1  gtest-
 tesla/framemd5.rgb24.threads1.frame13+2.from-png.ultrafast.subme=3
 }}}

 -threads 1 had no effect, not even combined with x264-params
 threads=1:$opts.  (-threads doesn't get passed on to libx264, which still
 autodetects and uses multiple threads.)

 The framemd5 of the corrupted frame (the 2nd one, which is also the first
 non-black frame), is the same as when running ffmpeg starting from frame
 !#1.  So whatever the problem is, it gets the same wrong answer with many
 or just one black frame before 0014.png (frame 13 of the video, counting
 from zero).

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4287#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list