On 14/08/2025 02.55, Paul B Mahol via ffmpeg-user wrote: > see -xerror flag ? > > On Wed, Aug 13, 2025 at 10:08 PM Mark Filipak <markfilipak.i...@gmail.com> > wrote: > >> Here are two notices out of hundreds like them. They are in an FFREPORT >> log. >> >> ===== >> [h264 @ 00000000198b8040] concealing 7744 DC, 7744 AC, 7744 MV errors in >> P frame >> >> [vist#0:0/h264 @ 0000000006fc2e00] [dec:h264 @ 0000000005a0fc80] corrupt >> decoded frame >> ===== >> >> FFmpeg continued as though nothing had happened. The resulting video had >> some seriously f'ed-up frames. >> >> The lines above are seen only if one makes and views an FFREPORT log. >> >> To state this clearly: When such errors happen, I want FFmpeg to tell >> me, and I want FFmpeg to immediately stop, abort. How can I get FFmpeg >> to do that? to do what I want? to stop and tell me? >> see -xerror flag ?
I tried it. It's too blunt an instrument, Paul. It aborts on even trivial errors. Let me explain... You see below that I copy in two steps. Step 1 remuxes. Step 2 transcodes. The commands are below. The reason I take two steps is that a single step, from disc directly to transcode always fails. Why does it fail? I don't remember except that it's very serious. Step 1, the remux, generates hundreds of "Non-monotonic DTS" warnings, every time, for every BD. I think it's an FFmpeg bug but I'm not willing to argue about it anymore. It's a bug or every BD I own has Non-monotonic DTSes. With -xerror, the first "Non-monotonic DTS" warning aborts, so Step 1 always fails. Two steps always succeeds except for 'A MAN CALLED OTTO'. We suspect that my copy of 'A MAN CALLED OTTO' fails because it employs a new flavor of AACS or of BD+ -- that of course has nothing to do with "Non-monotonic DTS", real or bug. So, you see, there's two things going on. There's "Non-monotonic DTS" warnings -- real or bug -- and there's a new flavor of AACS or of BD+. Source Target 0:a:1 a:0 2.0 DD dialog 0:a:0 a:1 5.1 DTS-HDMA dialog 0:s:0 s:0 subtitles echo Step 1 : Make a copy of the m2ts. set _NAME_=A MAN CALLED OTTO [2022] set _GET_=h:\BDMV\STREAM\00001.m2ts set _PUT_=g:\%_NAME_%.m2ts set FFREPORT=file=%_NAME_%.1.ffreport.txt set _JOB_=c:\work\%_NAME_% c: & cd c:\work\ set _COPYv_=-map 0:v:0 -c:v:0 copy set _CODEa0_=-map "[a]" -c:a:0 ac3 -disposition:a:0 0 set _COPYa1_=-map 0:a:0 -c:a:1 copy -disposition:a:1 0 set _COPYs_=-map 0:s:0 -c:s:0 copy : set _PREP_=-analyzeduration 500000000 -probesize 500000000 -start_at_zero -copyts -dn -fix_sub_duration set _IS_CINEMA_=-r 24000/1001 : bsf:v set _NO_CC_=filter_units=remove_types=6 : filter_complex set _TO_HDR10_=-pix_fmt yuv420p10le set _TO_SDR_=-pix_fmt yuv420p set _TO_STEREO_=pan=stereo^|FL^<FL+FC+LFE+SL^|FR^<FR+FC+LFE+SR : start "%_NAME_% Step 1" cmd /k ffmpeg %_PREP_% %_IS_CINEMA_%^ -i "%_GET_%"^ -bsf:v "%_NO_CC_%"^ -filter_complex "[0:a:1]%_TO_STEREO_%[a]"^ %_COPYv_% %_CODEa0_% %_COPYa1_% %_COPYs_% "%_PUT_%" echo Step 2 : Make the final m2ts. set _NAME_=A MAN CALLED OTTO [2022] set _GET_=g:\%_NAME_%.m2ts set _PUT_=e:\Movies2\%_NAME_%.m2ts set FFREPORT=file=%_NAME_%.2.ffreport.txt set _JOB_=c:\work\%_NAME_% c: & cd c:\work\ set _CODEv_=-map 0:v:0 -c:v:0 libx264 -x264-params 8x8dct=1:analyse=0x3,0x133:aq-mode=1:aq-strength=1.0:b-adapt=2:b-bias=0:b-pyramid=2:bframes=5:bitrate=2850:bluray-compat=0:cabac=1:chroma-me=1:chroma-qp-offset=-2:constrained-intra=0:cplxblur=20.0:cqm=flat:deadzone-inter=21:deadzone-intra=11:deblock=1,-1,-1:direct=auto:fast-pskip=0:filler=0:interlaced=0:intra-refresh=0:ipratio=1.40:keyint-min=23:keyint=240:lookahead-threads=3:mbtree=1:me=umh:merange=30:nal-hrd=none:nr=0:open-gop=0:psy-rd=1.00,0.00:psy=1:qblur=0.5:qcomp=0.60:qpmax=69:qpmin=1:qpstep=4:ratetol=1.0:rc-lookahead=50:ref=5:scenecut=40:sliced-threads=0:slices=4:subme=7:threads=12:trellis=1:vbv-bufsize=78125:vbv-maxrate=62500:weightb=1:weightp=2 set _COPYa0_=-map 0:a:0 -c:a:0 copy -disposition:a:0 0 set _COPYa1_=-map 0:a:1 -c:a:1 copy -disposition:a:1 0 set _COPYs_=-map 0:s:0 -c:s:0 copy : set _PREP_=-analyzeduration 500000000 -probesize 500000000 -start_at_zero -copyts -dn set _IS_CINEMA_=-r 24000/1001 : bsf:v set _H264_GET_=h264_redundant_pps : filter_complex set _TO_HDR10_=-pix_fmt yuv420p10le set _TO_SDR_=-pix_fmt yuv420p : start "%_NAME_% Step 2" cmd /k ffmpeg %_PREP_% %_IS_CINEMA_%^ -i "%_GET_%"^ -bsf:v "%_H264_GET_%"^ %_CODEv_% %_COPYa0_% %_COPYa1_% %_COPYs_% "%_PUT_%" _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".