[FFmpeg-trac] #11142(undetermined:new): Decoding error for 1-frame concatenated chunks encoded by libx265 if keint=1:min-keyint=1

FFmpeg trac at avcodec.org
Fri Aug 16 16:59:03 EEST 2024


#11142: Decoding error for 1-frame concatenated chunks encoded by libx265 if
keint=1:min-keyint=1
--------------------------------------+----------------------------------
             Reporter:  Anatoliy      |                     Type:  defect
               Status:  new           |                 Priority:  normal
            Component:  undetermined  |                  Version:  7.0
             Keywords:                |               Blocked By:
             Blocking:                |  Reproduced by developer:  0
Analyzed by developer:  0             |
--------------------------------------+----------------------------------
 Summary of the bug:
 What I trying to accomplish: I want to concatenate multiple almost
 independent, but having the same format (resolution, codec, pix_fmt and
 all others), chunks of video, size of which is in a range 1-25.
 The problem I encountered: Resulting video cannot be decoded (at least) by
 `libav*` and players that depend on it (mpv, vlc).
 The exact command line you used:
 {{{
 #!/usr/bin/env bash

 set -xueo pipefail

 rm -f {1,2,12}.mp4 ffmpeg-*.log
 ./ffmpeg -f lavfi -i testsrc=s=640x480 -frames:v 1 -codec:v libx265
 -x265-params keyint=1:min-keyint=1 1.mp4
 ./ffmpeg -f lavfi -i testsrc=s=640x480 -frames:v 2 -codec:v libx265 2.mp4
 cat >cat.txt <<_EOF
 file 1.mp4
 file 2.mp4
 _EOF
 ./ffmpeg -safe 0 -f concat -i cat.txt -codec:v copy 12.mp4
 ./ffmpeg -v 9 -loglevel 99 -report -i 12.mp4 -f null - &>err.txt
 }}}
 The full uncut console output:
 {{{
 ffmpeg started on 2024-08-16 at 18:53:39
 Report written to "ffmpeg-20240816-185339.log"
 Log level: 99
 ffmpeg version 7.0.1-static https://johnvansickle.com/ffmpeg/  Copyright
 (c) 2000-2024 the FFmpeg developers
   built with gcc 8 (Debian 8.3.0-6)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio
 --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp
 --enable-libgme --enable-gray --enable-libaom --enable-libfribidi
 --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt
 --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264
 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid
 --enable-libzvbi --enable-libzimg
   libavutil      59.  8.100 / 59.  8.100
   libavcodec     61.  3.100 / 61.  3.100
   libavformat    61.  1.100 / 61.  1.100
   libavdevice    61.  1.100 / 61.  1.100
   libavfilter    10.  1.100 / 10.  1.100
   libswscale      8.  1.100 /  8.  1.100
   libswresample   5.  1.100 /  5.  1.100
   libpostproc    58.  1.100 / 58.  1.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Reading option '-i' ... matched as input url with argument '12.mp4'.
 Reading option '-f' ... matched as option 'f' (force container format
 (auto-detected otherwise)) with argument 'null'.
 Reading option '-' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Applying option report (generate a report) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input url 12.mp4.
 Successfully parsed a group of options.
 Opening an input file: 12.mp4.
 [AVFormatContext @ 0x77db140] Opening '12.mp4' for reading
 [file @ 0x77db940] Setting default whitelist 'file,crypto,data'
 Probing mov,mp4,m4a,3gp,3g2,mj2 score:100 size:2048
 Probing mp3 score:1 size:2048
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] Format mov,mp4,m4a,3gp,3g2,mj2
 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'ftyp' parent:'root' sz: 28 8
 16012
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] ISO: File Type Major Brand: isom
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'free' parent:'root' sz: 8 36
 16012
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'mdat' parent:'root' sz: 12785
 44 16012
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'moov' parent:'root' sz: 3191
 12829 16012
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'mvhd' parent:'moov' sz: 108 8
 3183
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] time scale = 1000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'trak' parent:'moov' sz: 2978
 116 3183
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'tkhd' parent:'trak' sz: 92 8
 2970
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'edts' parent:'trak' sz: 36 100
 2970
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'elst' parent:'edts' sz: 28 8
 28
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] track[0].edit_count = 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] duration=120 time=0 rate=1.000000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'mdia' parent:'trak' sz: 2842
 136 2970
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'mdhd' parent:'mdia' sz: 32 8
 2834
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'hdlr' parent:'mdia' sz: 45 40
 2834
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] ctype=[0][0][0][0]
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] stype=vide
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'minf' parent:'mdia' sz: 2757
 85 2834
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'vmhd' parent:'minf' sz: 20 8
 2749
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'dinf' parent:'minf' sz: 36 28
 2749
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'dref' parent:'dinf' sz: 28 8
 28
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] Unknown dref type 0x206c7275 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stbl' parent:'minf' sz: 2693
 64 2749
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stsd' parent:'stbl' sz: 2557 8
 2685
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] size=2541 4CC=hev1 codec_type=0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'hvcC' parent:'stsd' sz: 2409 8
 2455
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'fiel' parent:'stsd' sz: 10
 2417 2455
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'pasp' parent:'stsd' sz: 16
 2427 2455
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'btrt' parent:'stsd' sz: 20
 2443 2455
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stts' parent:'stbl' sz: 24
 2565 2685
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] track[0].stts.entries = 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] sample_count=3, sample_duration=512
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stss' parent:'stbl' sz: 24
 2589 2685
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] keyframe_count = 2
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stsc' parent:'stbl' sz: 28
 2613 2685
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] track[0].stsc.entries = 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stsz' parent:'stbl' sz: 32
 2641 2685
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] sample_size = 0 sample_count = 3
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'stco' parent:'stbl' sz: 20
 2673 2685
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] AVIndex stream 0, sample 0, offset
 2c, dts 0, size 8185, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] AVIndex stream 0, sample 1, offset
 2025, dts 512, size 4458, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] AVIndex stream 0, sample 2, offset
 318f, dts 1024, size 134, distance 1, keyframe 0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] Processing st: 0, edit list 0 -
 media time: 0, duration: 1536
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'udta' parent:'moov' sz: 97
 3094 3183
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'meta' parent:'udta' sz: 89 8
 89
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'hdlr' parent:'meta' sz: 33 8
 77
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] ctype=[0][0][0][0]
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] stype=mdir
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'ilst' parent:'meta' sz: 44 41
 77
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] type:'[169]too' parent:'ilst' sz: 36
 8 36
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] on_parse_exit_offset=16012
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] Before avformat_find_stream_info()
 pos: 16012 bytes read:16012 seeks:0 nb_streams:1
 [hevc @ 0x77dc700] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x77dc700] Decoding VPS
 [hevc @ 0x77dc700] Range Extension profile bitstream
 [hevc @ 0x77dc700] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x77dc700] Decoding SPS
 [hevc @ 0x77dc700] Range Extension profile bitstream
 [hevc @ 0x77dc700] Decoding VUI
 [hevc @ 0x77dc700] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x77dc700] Decoding PPS
 [hevc @ 0x77dc700] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0,
 temporal_id: 0
 [hevc @ 0x77dc700] Decoding SEI
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] stream 0, sample 0, dts 0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] stream 0: start_time: 0 duration:
 0.12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] format: start_time: 0 duration: 0.12
 (estimate from stream) bitrate=1067 kb/s
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] After avformat_find_stream_info()
 pos: 8229 bytes read:16012 seeks:0 frames:1
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '12.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf61.1.100
   Duration: 00:00:00.12, start: 0.000000, bitrate: 1067 kb/s
   Stream #0:0[0x1](und), 1, 1/12800: Video: hevc (Rext), 1 reference frame
 (hev1 / 0x31766568), gbrp(pc, gbr/unknown/unknown, progressive), 640x480
 [SAR 1:1 DAR 4:3], 0/1, 851 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
       Metadata:
         handler_name    : VideoHandler
         vendor_id       : [0][0][0][0]
         encoder         : Lavc61.3.100 libx265
 Successfully opened the file.
 Parsing a group of options: output url -.
 Applying option f (force container format (auto-detected otherwise)) with
 argument null.
 Successfully parsed a group of options.
 Opening an output file: -.
 [out#0/null @ 0x77e3a40] No explicit maps, mapping streams
 automatically...
 [vost#0:0/wrapped_avframe @ 0x780e7c0] Created video stream from input
 stream 0:0
 detected 20 logical cores
 [hevc @ 0x7811cc0] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x7811cc0] Decoding VPS
 [hevc @ 0x7811cc0] Range Extension profile bitstream
 [hevc @ 0x7811cc0] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x7811cc0] Decoding SPS
 [hevc @ 0x7811cc0] Range Extension profile bitstream
 [hevc @ 0x7811cc0] Decoding VUI
 [hevc @ 0x7811cc0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x7811cc0] Decoding PPS
 [hevc @ 0x7811cc0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0,
 temporal_id: 0
 [hevc @ 0x7811cc0] Decoding SEI
 Successfully opened the file.
 Stream mapping:
   Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native))
 [vost#0:0/wrapped_avframe @ 0x780e7c0] Starting thread...
 [vf#0:0 @ 0x780cc40] Starting thread...
 [vist#0:0/hevc @ 0x7821e40] [dec:hevc @ 0x7810a00] Starting thread...
 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x77dae40] Starting thread...
 Press [q] to stop, [?] for help
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] stream 0, sample 1, dts 40000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x77db140] stream 0, sample 2, dts 80000
 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x77dae40] EOF while reading input
 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x77dae40] Terminating thread with return
 code 0 (success)
 [hevc @ 0x7811cc0] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x7811cc0] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x7811cc0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
 [hevc @ 0x7811cc0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0,
 temporal_id: 0
 [hevc @ 0x7811cc0] nal_unit_type: 20(IDR_N_LP), nuh_layer_id: 0,
 temporal_id: 0
 [hevc @ 0x7811cc0] Decoding VPS
 [hevc @ 0x7811cc0] Range Extension profile bitstream
 [hevc @ 0x7811cc0] Decoding SPS
 [hevc @ 0x7811cc0] Range Extension profile bitstream
 [hevc @ 0x7811cc0] Decoding VUI
 [hevc @ 0x7811cc0] Decoding PPS
 [hevc @ 0x7811cc0] Decoding SEI
 [hevc @ 0x7811cc0] Format gbrp chosen by get_format().
 [hevc @ 0x7811cc0] Output frame with POC 0.
 [hevc @ 0x780b6c0] nal_unit_type: 20(IDR_N_LP), nuh_layer_id: 0,
 temporal_id: 0
 [hevc @ 0x780b6c0] Output frame with POC 0.
 [vist#0:0/hevc @ 0x7821e40] [dec:hevc @ 0x7810a00] Decoder thread received
 EOF packet
 [hevc @ 0x7a91ac0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0,
 temporal_id: 0
 [hevc @ 0x7a91ac0] Invalid number of merging MVP candidates: 254.
 [hevc @ 0x7a91ac0] Error parsing NAL unit #0.
 [hevc @ 0x7811cc0] Decoded frame with POC 0.
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'video_size' to
 value '640x480'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'pix_fmt' to
 value '71'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'time_base' to
 value '1/12800'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'pixel_aspect' to
 value '1/1'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'colorspace' to
 value '0'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'range' to value
 '2'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] Setting 'frame_rate' to
 value '25/1'
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] w:640 h:480 pixfmt:gbrp
 tb:1/12800 fr:25/1 sar:1/1 csp:gbr range:pc
 [hevc @ 0x780b6c0] Decoded frame with POC 0.
 [AVFilterGraph @ 0x7fd5fc0011c0] query_formats: 3 queried, 6 merged, 0
 already done, 0 delayed
 [graph 0 input from stream 0:0 @ 0x7fd5fc003400] video frame properties
 congruent with link at pts_time: 0
 Output #0, null, to 'pipe:':
   Metadata:
     major_brand     : isomDecoding error: Invalid data found when
 processing input

     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf61.1.100
   Stream #0:0(und), 0, 1/25: Video: wrapped_avframe, 1 reference frame,
 gbrp(pc, gbr/unknown/unknown, progressive), 640x480 [SAR 1:1 DAR 4:3],
 0/1, q=2-31, 200 kb/s, 25 fps, 25 tbn (default)
       Metadata:
         handler_name    : VideoHandler
         vendor_id       : [0][0][0][0]
         encoder         : Lavc61.3.100 wrapped_avframe
 [out#0/null @ 0x77e3a40] Starting thread...
 [vist#0:0/hevc @ 0x7821e40] [dec:hevc @ 0x7810a00] Decoder returned EOF,
 finishing
 [vist#0:0/hevc @ 0x7821e40] [dec:hevc @ 0x7810a00] Terminating thread with
 return code 0 (success)
 [out_0_0 @ 0x7fd5fc004b80] EOF on sink link out_0_0:default.
 [vf#0:0 @ 0x780cc40] Filtergraph returned EOF, finishing
 [vf#0:0 @ 0x780cc40] All consumers returned EOF
 [vost#0:0/wrapped_avframe @ 0x780e7c0] Encoder thread received EOF
 [vost#0:0/wrapped_avframe @ 0x780e7c0] Terminating thread with return code
 0 (success)
 [out#0/null @ 0x77e3a40] All streams finished
 [out#0/null @ 0x77e3a40] Terminating thread with return code 0 (success)
 [vf#0:0 @ 0x780cc40] Terminating thread with return code 0 (success)
 [out#0/null @ 0x77e3a40] Output file #0 (pipe:):
 [out#0/null @ 0x77e3a40]   Output stream #0:0 (video): 2 frames encoded; 2
 packets muxed (880 bytes);
 [out#0/null @ 0x77e3a40]   Total: 2 packets (880 bytes) muxed
 [out#0/null @ 0x77e3a40] video:1KiB audio:0KiB subtitle:0KiB other
 streams:0KiB global headers:0KiB muxing overhead: unknown
 frame=    2 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.08 bitrate=N/A
 speed=24.3x
 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x77dae40] Input file #0 (12.mp4):
 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x77dae40]   Input stream #0:0 (video): 3
 packets read (12777 bytes); 2 frames decoded; 1 decode errors;
 [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x77dae40]   Total: 3 packets (12777
 bytes) demuxed
 [AVIOContext @ 0x77e3d80] Statistics: 16012 bytes read, 0 seeks
 }}}
 `-v error` only:
 {{{
 [hevc @ 0x77fab80] Invalid number of merging MVP candidates: 254.
 [vist#0:0/hevc @ 0x758afc0] [dec:hevc @ 0x757a100] Decoding error: Invalid
 data found when processing input
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11142>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list