[FFmpeg-trac] #6873(avformat:new): Crash with muxing a lot of streams in Matroska

FFmpeg trac at avcodec.org
Sun Nov 26 17:07:46 EET 2017


#6873: Crash with muxing a lot of streams in Matroska
-------------------------------------+-------------------------------------
             Reporter:  mkver        |                     Type:  defect
               Status:  new          |                 Priority:  important
            Component:  avformat     |                  Version:  git-
             Keywords:  mkv, crash,  |  master
  SIGSEGV                            |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 The Matroska muxer currently doesn't handle muxing a lot of tracks (a lot
 = 127 or more). This seems to be a design choice:
 [https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/matroskaenc.c#L115
 Line 115 of matroskeenc.c] (I'm linking to github because git.ffmpeg.org
 just gives me a "Reading blob failed.") claims that the maximum number of
 tracks allowed in a Matroska file is 126 and
 [https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/matroskaenc.c#L2172
 line 2172] says that this assumes that there aren't too many tracks. In
 fact, the Matroska file format allows an effectively unlimited number of
 tracks: The TrackID number in the Block and the SimpleBlock Header is an
 EBML-coded integer (so the first bit that is set indicates the length in
 bytes of the integer). Notice furthermore that there are no reserved
 values for the TrackID EBML integer: 11111111 (which for the length of an
 EBML element indicates an unknown size) just means that the TrackID is
 127.
 Unfortunately ffmpeg doesn't handle the case of many tracks gracefully.
 There are instances where it crashes and there are instances where the
 output files are garbage.
 a) My first sample file is "127.Tracks.126.Empty.mks". It has 127 tracks;
 the first 126 of these don't contain a packet at all. The last track has
 two subtitle packets. This source file is also the reason for the above
 remarks concerning TrackID, because I actually didn't expect the odd
 behaviour to begin with 127 tracks. Maybe a common function is used for
 TrackIDs and EBML size fields so that 127 is treated like a special case
 in both cases? Anyway, remuxing it gives me a crash (I'll attach the full
 log for this, but because trac complains that tickets can't be longer than
 262144 characters I'll trim the following a bit):
 {{{
 ffmpeg started on 2017-11-26 at 13:56:34
 Report written to "ffmpeg-20171126-135634.log"
 Command line:
 ffmpeg.exe -report -i 127.Tracks.126.Empty.mks -map 0 -c copy
 127.Tracks.126.Empty.mkv
 ffmpeg version N-89243-g8794e0c037 Copyright (c) 2000-2017 the FFmpeg
 developers
   built with gcc 7.2.0 (Rev1, Built by MSYS2 project)
   configuration:  --disable-decoders --disable-encoders --disable-filters
 --enable-debug=3 --disable-ffplay --disable-ffprobe --disable-stripping
   libavutil      56.  3.100 / 56.  3.100
   libavcodec     58.  3.105 / 58.  3.105
   libavformat    58.  2.102 / 58.  2.102
   libavdevice    58.  0.100 / 58.  0.100
   libavfilter     7.  4.100 /  7.  4.100
   libswscale      5.  0.101 /  5.  0.101
   libswresample   3.  0.101 /  3.  0.101
 Splitting the commandline.
 Reading option '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Reading option '-i' ... matched as input url with argument
 '127.Tracks.126.Empty.mks'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0'.
 Reading option '-c' ... matched as option 'c' (codec name) with argument
 'copy'.
 Reading option '127.Tracks.126.Empty.mkv' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option report (generate a report) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input url 127.Tracks.126.Empty.mks.
 Successfully parsed a group of options.
 Opening an input file: 127.Tracks.126.Empty.mks.
 [NULL @ 00000000005b6d00] Opening '127.Tracks.126.Empty.mks' for reading
 [file @ 00000000005b7640] Setting default whitelist 'file,crypto'
 [matroska,webm @ 00000000005b6d00] Format matroska,webm probed with
 size=2048 and score=100
 st:0 removing common factor 1000000 from timebase
 st:1 removing common factor 1000000 from timebase
 [...]
 st:126 removing common factor 1000000 from timebase
 [matroska,webm @ 00000000005b6d00] Before avformat_find_stream_info() pos:
 14842 bytes read:64835 seeks:1 nb_streams:127
 [matroska,webm @ 00000000005b6d00] All info found
 [matroska,webm @ 00000000005b6d00] After avformat_find_stream_info() pos:
 14842 bytes read:64835 seeks:1 frames:0
 Input #0, matroska,webm, from '127.Tracks.126.Empty.mks':
   Metadata:
     encoder         : libebml v1.3.5 + libmatroska v1.4.8
     creation_time   : 2017-11-25T14:57:03.000000Z
   Duration: 00:00:05.00, bitrate: 103 kb/s
     Stream #0:0, 0, 1/1000: Subtitle: subrip (default)
     Metadata:
       BPS             : 0
       BPS-eng         : 0
       DURATION        : 00:00:00.000000000
       DURATION-eng    : 00:00:00.000000000
       NUMBER_OF_FRAMES: 0
       NUMBER_OF_FRAMES-eng: 0
       NUMBER_OF_BYTES : 0
       NUMBER_OF_BYTES-eng: 0
       _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03
       _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03
       _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
 [...]
     Stream #0:126, 0, 1/1000: Subtitle: subrip
     Metadata:
       BPS             : 16
       BPS-eng         : 16
       DURATION        : 00:00:05.000000000
       DURATION-eng    : 00:00:05.000000000
       NUMBER_OF_FRAMES: 2
       NUMBER_OF_FRAMES-eng: 2
       NUMBER_OF_BYTES : 10
       NUMBER_OF_BYTES-eng: 10
       _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03
       _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03
       _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
 Successfully opened the file.
 Parsing a group of options: output url 127.Tracks.126.Empty.mkv.
 Applying option map (set input stream mapping) with argument 0.
 Applying option c (codec name) with argument copy.
 Successfully parsed a group of options.
 Opening an output file: 127.Tracks.126.Empty.mkv.
 [file @ 00000000022c7c40] Setting default whitelist 'file,crypto'
 Successfully opened the file.
 Output #0, matroska, to '127.Tracks.126.Empty.mkv':
   Metadata:
     encoder         : Lavf58.2.102
     Stream #0:0, 0, 1/1000: Subtitle: subrip (default)
     Metadata:
       BPS             : 0
       BPS-eng         : 0
       DURATION        : 00:00:00.000000000
       DURATION-eng    : 00:00:00.000000000
       NUMBER_OF_FRAMES: 0
       NUMBER_OF_FRAMES-eng: 0
       NUMBER_OF_BYTES : 0
       NUMBER_OF_BYTES-eng: 0
       _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03
       _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03
       _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
 [...]
     Stream #0:126, 0, 1/1000: Subtitle: subrip
     Metadata:
       BPS             : 16
       BPS-eng         : 16
       DURATION        : 00:00:05.000000000
       DURATION-eng    : 00:00:05.000000000
       NUMBER_OF_FRAMES: 2
       NUMBER_OF_FRAMES-eng: 2
       NUMBER_OF_BYTES : 10
       NUMBER_OF_BYTES-eng: 10
       _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit
       _STATISTICS_WRITING_DATE_UTC: 2017-11-25 14:57:03
       _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-25 14:57:03
       _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 [...]
   Stream #0:126 -> #0:126 (copy)
 Press [q] to stop, [?] for help
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 [...]
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 No more output streams to write to, finishing.
 [matroska @ 00000000021f19a0] get_metadata_duration returned: 5000000
 [matroska @ 00000000021f19a0] Write early duration from metadata = 5000
 [matroska @ 00000000021f19a0] Writing block at offset 12, size 5, pts
 1000, dts 1000, duration 2000, keyframe 1
 [matroska @ 00000000021f19a0] Writing block at offset 29, size 5, pts
 4000, dts 4000, duration 2000, keyframe 1
 }}}
 Here is the gdb output for this crash:
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 0x00000001400bb5a5 in mkv_write_packet_internal (s=s at entry=0x21f19a0,
     pkt=pkt at entry=0x22f470, add_cue=add_cue at entry=0)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/matroskaenc.
 c:2415
 2415                FFMAX(mkv->stream_durations[pkt->stream_index], ts +
 duratio
 n);
 (gdb) bt
 #0  0x00000001400bb5a5 in mkv_write_packet_internal (s=s at entry=0x21f19a0,
     pkt=pkt at entry=0x22f470, add_cue=add_cue at entry=0)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/matroskaenc.
 c:2415
 #1  0x00000001400bc921 in mkv_write_packet (pkt=0x22f470, s=0x21f19a0)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/matroskaenc.
 c:2491
 #2  mkv_write_flush_packet (s=0x21f19a0, pkt=0x22f470)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/matroskaenc.
 c:2513
 #3  0x0000000140100e43 in write_packet (pkt=0x22f470, s=0x21f19a0)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/mux.c:754
 #4  av_write_trailer (s=s at entry=0x21f19a0)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/mux.c:1273
 #5  0x0000000140023bdd in transcode ()
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/fftools/ffmpeg.c:4643
 #6  0x00000001407ac5f2 in main (argc=<optimized out>, argv=<optimized
 out>)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/fftools/ffmpeg.c:4812
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x1400bb585 to 0x1400bb5c5:
    0x00000001400bb585 <mkv_write_packet_internal+693>:  mov    %esi,%eax
    0x00000001400bb587 <mkv_write_packet_internal+695>:  cmovge
 0xa0(%r15),%rax
    0x00000001400bb58f <mkv_write_packet_internal+703>:  mov
 %rax,0xa0(%r15)
    0x00000001400bb596 <mkv_write_packet_internal+710>:  xor    %eax,%eax
    0x00000001400bb598 <mkv_write_packet_internal+712>:  test   %rdx,%rdx
    0x00000001400bb59b <mkv_write_packet_internal+715>:  je     0x1400bb5af
 <mkv_
 write_packet_internal+735>
    0x00000001400bb59d <mkv_write_packet_internal+717>:  movslq
 0x24(%r14),%rcx
    0x00000001400bb5a1 <mkv_write_packet_internal+721>:  lea
 (%rdx,%rcx,8),%rd
 x
 => 0x00000001400bb5a5 <mkv_write_packet_internal+725>:  cmp    %rsi,(%rdx)
    0x00000001400bb5a8 <mkv_write_packet_internal+728>:  cmovge (%rdx),%rsi
    0x00000001400bb5ac <mkv_write_packet_internal+732>:  mov    %rsi,(%rdx)
    0x00000001400bb5af <mkv_write_packet_internal+735>:  add    $0xb8,%rsp
    0x00000001400bb5b6 <mkv_write_packet_internal+742>:  pop    %rbx
    0x00000001400bb5b7 <mkv_write_packet_internal+743>:  pop    %rsi
    0x00000001400bb5b8 <mkv_write_packet_internal+744>:  pop    %rdi
    0x00000001400bb5b9 <mkv_write_packet_internal+745>:  pop    %rbp
    0x00000001400bb5ba <mkv_write_packet_internal+746>:  pop    %r12
    0x00000001400bb5bc <mkv_write_packet_internal+748>:  pop    %r13
    0x00000001400bb5be <mkv_write_packet_internal+750>:  pop    %r14
    0x00000001400bb5c0 <mkv_write_packet_internal+752>:  pop    %r15
    0x00000001400bb5c2 <mkv_write_packet_internal+754>:  retq
    0x00000001400bb5c3 <mkv_write_packet_internal+755>:  lea
 0x775d2e(%rip),%r
 8        # 0x1408312f8 <ebml_header+1176>
 End of assembler dump.
 (gdb) info all-registers
 rax            0x0      0
 rbx            0x7d0    2000
 rcx            0x7e     126
 rdx            0xfa8    4008
 rsi            0x1770   6000
 rdi            0x2338080        36929664
 rbp            0x198e1  0x198e1
 rsp            0x22f210 0x22f210
 r8             0x0      0
 r9             0x0      0
 r10            0xa      10
 r11            0x22f1e0 2290144
 r12            0x7e     126
 r13            0x1d     29
 r14            0x22f470 2290800
 r15            0x21f1fc0        35594176
 rip            0x1400bb5a5      0x1400bb5a5
 <mkv_write_packet_internal+725>
 eflags         0x10206  [ PF IF RF ]
 cs             0x33     51
 ss             0x2b     43
 ds             0x0      0
 es             0x0      0
 fs             0x0      0
 gs             0x0      0
 st0            0        (raw 0x00000000000000000000)
 st1            0        (raw 0x00000000000000000000)
 st2            0        (raw 0x00000000000000000000)
 st3            0        (raw 0x00000000000000000000)
 st4            0        (raw 0x00000000000000000000)
 st5            0        (raw 0x00000000000000000000)
 st6            0        (raw 0x00000000000000000000)
 st7            5        (raw 0x4001a000000000000000)
 fctrl          0x37f    895
 fstat          0x0      0
 ftag           0x0      0
 fiseg          0x0      0
 fioff          0x407a169b       1081743003
 foseg          0x0      0
 fooff          0x22ddb0 2284976
 fop            0x0      0
 xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 =
 {0x0,
     0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0,
 0x0,
     0x0}, v2_int64 = {0x80000000, 0x0},
   uint128 = 0x00000000000000000000000080000000}
 xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 =
 {0x0,
     0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0,
 0x0,
     0x0}, v2_int64 = {0x80000000, 0x0},
   uint128 = 0x00000000000000000000000080000000}
 xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 =
 {0x0,
     0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0,
 0x0,
     0x0}, v2_int64 = {0x80000000, 0x0},
   uint128 = 0x00000000000000000000000080000000}
 xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm14          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]
 }}}
 For some reason no crash occurs if one uses a source file like
 "127.Tracks.126.Empty.mks", but where the last track has only one packet.
 Notice also that although the above log claims to write the two blocks it
 doesn't. See the attached file "127.Tracks.126.Empty.mkv".

 b) My second sample has 128 tracks, the first 127 of them empty. The last
 track contains exactly one packet. This gives a crash upon remuxing, too:
 {{{
 ffmpeg started on 2017-11-26 at 14:32:34
 Report written to "ffmpeg-20171126-143234.log"
 Command line:
 "I:\\media-autobuild_suite-master\\local64\\bin-video\\ffmpeg.exe" -report
 -i 128.Tracks.127.Empty.mks -map 0 -c copy 128.Tracks.127.Empty.mkv
 ffmpeg version N-89243-g8794e0c037 Copyright (c) 2000-2017 the FFmpeg
 developers
   built with gcc 7.2.0 (Rev1, Built by MSYS2 project)
   configuration:  --disable-decoders --disable-encoders --disable-filters
 --enable-debug=3 --disable-ffplay --disable-ffprobe --disable-stripping
   libavutil      56.  3.100 / 56.  3.100
   libavcodec     58.  3.105 / 58.  3.105
   libavformat    58.  2.102 / 58.  2.102
   libavdevice    58.  0.100 / 58.  0.100
   libavfilter     7.  4.100 /  7.  4.100
   libswscale      5.  0.101 /  5.  0.101
   libswresample   3.  0.101 /  3.  0.101
 Splitting the commandline.
 Reading option '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Reading option '-i' ... matched as input url with argument
 '128.Tracks.127.Empty.mks'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0'.
 Reading option '-c' ... matched as option 'c' (codec name) with argument
 'copy'.
 Reading option '128.Tracks.127.Empty.mkv' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option report (generate a report) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input url 128.Tracks.127.Empty.mks.
 Successfully parsed a group of options.
 Opening an input file: 128.Tracks.127.Empty.mks.
 [NULL @ 0000000000596d00] Opening '128.Tracks.127.Empty.mks' for reading
 [file @ 0000000000597640] Setting default whitelist 'file,crypto'
 [matroska,webm @ 0000000000596d00] Format matroska,webm probed with
 size=2048 and score=100
 st:0 removing common factor 1000000 from timebase
 st:1 removing common factor 1000000 from timebase
 st:2 removing common factor 1000000 from timebase
 st:3 removing common factor 1000000 from timebase
 st:4 removing common factor 1000000 from timebase
 st:5 removing common factor 1000000 from timebase
 st:6 removing common factor 1000000 from timebase
 st:7 removing common factor 1000000 from timebase
 st:8 removing common factor 1000000 from timebase
 st:9 removing common factor 1000000 from timebase
 st:10 removing common factor 1000000 from timebase
 st:11 removing common factor 1000000 from timebase
 st:12 removing common factor 1000000 from timebase
 st:13 removing common factor 1000000 from timebase
 st:14 removing common factor 1000000 from timebase
 st:15 removing common factor 1000000 from timebase
 st:16 removing common factor 1000000 from timebase
 st:17 removing common factor 1000000 from timebase
 st:18 removing common factor 1000000 from timebase
 st:19 removing common factor 1000000 from timebase
 st:20 removing common factor 1000000 from timebase
 st:21 removing common factor 1000000 from timebase
 st:22 removing common factor 1000000 from timebase
 st:23 removing common factor 1000000 from timebase
 st:24 removing common factor 1000000 from timebase
 st:25 removing common factor 1000000 from timebase
 st:26 removing common factor 1000000 from timebase
 st:27 removing common factor 1000000 from timebase
 st:28 removing common factor 1000000 from timebase
 st:29 removing common factor 1000000 from timebase
 st:30 removing common factor 1000000 from timebase
 st:31 removing common factor 1000000 from timebase
 st:32 removing common factor 1000000 from timebase
 st:33 removing common factor 1000000 from timebase
 st:34 removing common factor 1000000 from timebase
 st:35 removing common factor 1000000 from timebase
 st:36 removing common factor 1000000 from timebase
 st:37 removing common factor 1000000 from timebase
 st:38 removing common factor 1000000 from timebase
 st:39 removing common factor 1000000 from timebase
 st:40 removing common factor 1000000 from timebase
 st:41 removing common factor 1000000 from timebase
 st:42 removing common factor 1000000 from timebase
 st:43 removing common factor 1000000 from timebase
 st:44 removing common factor 1000000 from timebase
 st:45 removing common factor 1000000 from timebase
 st:46 removing common factor 1000000 from timebase
 st:47 removing common factor 1000000 from timebase
 st:48 removing common factor 1000000 from timebase
 st:49 removing common factor 1000000 from timebase
 st:50 removing common factor 1000000 from timebase
 st:51 removing common factor 1000000 from timebase
 st:52 removing common factor 1000000 from timebase
 st:53 removing common factor 1000000 from timebase
 st:54 removing common factor 1000000 from timebase
 st:55 removing common factor 1000000 from timebase
 st:56 removing common factor 1000000 from timebase
 st:57 removing common factor 1000000 from timebase
 st:58 removing common factor 1000000 from timebase
 st:59 removing common factor 1000000 from timebase
 st:60 removing common factor 1000000 from timebase
 st:61 removing common factor 1000000 from timebase
 st:62 removing common factor 1000000 from timebase
 st:63 removing common factor 1000000 from timebase
 st:64 removing common factor 1000000 from timebase
 st:65 removing common factor 1000000 from timebase
 st:66 removing common factor 1000000 from timebase
 st:67 removing common factor 1000000 from timebase
 st:68 removing common factor 1000000 from timebase
 st:69 removing common factor 1000000 from timebase
 st:70 removing common factor 1000000 from timebase
 st:71 removing common factor 1000000 from timebase
 st:72 removing common factor 1000000 from timebase
 st:73 removing common factor 1000000 from timebase
 st:74 removing common factor 1000000 from timebase
 st:75 removing common factor 1000000 from timebase
 st:76 removing common factor 1000000 from timebase
 st:77 removing common factor 1000000 from timebase
 st:78 removing common factor 1000000 from timebase
 st:79 removing common factor 1000000 from timebase
 st:80 removing common factor 1000000 from timebase
 st:81 removing common factor 1000000 from timebase
 st:82 removing common factor 1000000 from timebase
 st:83 removing common factor 1000000 from timebase
 st:84 removing common factor 1000000 from timebase
 st:85 removing common factor 1000000 from timebase
 st:86 removing common factor 1000000 from timebase
 st:87 removing common factor 1000000 from timebase
 st:88 removing common factor 1000000 from timebase
 st:89 removing common factor 1000000 from timebase
 st:90 removing common factor 1000000 from timebase
 st:91 removing common factor 1000000 from timebase
 st:92 removing common factor 1000000 from timebase
 st:93 removing common factor 1000000 from timebase
 st:94 removing common factor 1000000 from timebase
 st:95 removing common factor 1000000 from timebase
 st:96 removing common factor 1000000 from timebase
 st:97 removing common factor 1000000 from timebase
 st:98 removing common factor 1000000 from timebase
 st:99 removing common factor 1000000 from timebase
 st:100 removing common factor 1000000 from timebase
 st:101 removing common factor 1000000 from timebase
 st:102 removing common factor 1000000 from timebase
 st:103 removing common factor 1000000 from timebase
 st:104 removing common factor 1000000 from timebase
 st:105 removing common factor 1000000 from timebase
 st:106 removing common factor 1000000 from timebase
 st:107 removing common factor 1000000 from timebase
 st:108 removing common factor 1000000 from timebase
 st:109 removing common factor 1000000 from timebase
 st:110 removing common factor 1000000 from timebase
 st:111 removing common factor 1000000 from timebase
 st:112 removing common factor 1000000 from timebase
 st:113 removing common factor 1000000 from timebase
 st:114 removing common factor 1000000 from timebase
 st:115 removing common factor 1000000 from timebase
 st:116 removing common factor 1000000 from timebase
 st:117 removing common factor 1000000 from timebase
 st:118 removing common factor 1000000 from timebase
 st:119 removing common factor 1000000 from timebase
 st:120 removing common factor 1000000 from timebase
 st:121 removing common factor 1000000 from timebase
 st:122 removing common factor 1000000 from timebase
 st:123 removing common factor 1000000 from timebase
 st:124 removing common factor 1000000 from timebase
 st:125 removing common factor 1000000 from timebase
 st:126 removing common factor 1000000 from timebase
 st:127 removing common factor 1000000 from timebase
 [matroska,webm @ 0000000000596d00] Before avformat_find_stream_info() pos:
 14917 bytes read:14960 seeks:0 nb_streams:128
 [matroska,webm @ 0000000000596d00] All info found
 [matroska,webm @ 0000000000596d00] After avformat_find_stream_info() pos:
 14917 bytes read:14960 seeks:0 frames:0
 Input #0, matroska,webm, from '128.Tracks.127.Empty.mks':
   Metadata:
     encoder         : libebml v1.3.5 + libmatroska v1.4.8
     creation_time   : 2017-11-26T13:10:44.000000Z
   Duration: 00:00:02.00, bitrate: 59 kb/s
     Stream #0:0, 0, 1/1000: Subtitle: subrip (default)
     Stream #0:1, 0, 1/1000: Subtitle: subrip
     Stream #0:2, 0, 1/1000: Subtitle: subrip
     Stream #0:3, 0, 1/1000: Subtitle: subrip
     Stream #0:4, 0, 1/1000: Subtitle: subrip
     Stream #0:5, 0, 1/1000: Subtitle: subrip
     Stream #0:6, 0, 1/1000: Subtitle: subrip
     Stream #0:7, 0, 1/1000: Subtitle: subrip
     Stream #0:8, 0, 1/1000: Subtitle: subrip
     Stream #0:9, 0, 1/1000: Subtitle: subrip
     Stream #0:10, 0, 1/1000: Subtitle: subrip
     Stream #0:11, 0, 1/1000: Subtitle: subrip
     Stream #0:12, 0, 1/1000: Subtitle: subrip
     Stream #0:13, 0, 1/1000: Subtitle: subrip
     Stream #0:14, 0, 1/1000: Subtitle: subrip
     Stream #0:15, 0, 1/1000: Subtitle: subrip
     Stream #0:16, 0, 1/1000: Subtitle: subrip
     Stream #0:17, 0, 1/1000: Subtitle: subrip
     Stream #0:18, 0, 1/1000: Subtitle: subrip
     Stream #0:19, 0, 1/1000: Subtitle: subrip
     Stream #0:20, 0, 1/1000: Subtitle: subrip
     Stream #0:21, 0, 1/1000: Subtitle: subrip
     Stream #0:22, 0, 1/1000: Subtitle: subrip
     Stream #0:23, 0, 1/1000: Subtitle: subrip
     Stream #0:24, 0, 1/1000: Subtitle: subrip
     Stream #0:25, 0, 1/1000: Subtitle: subrip
     Stream #0:26, 0, 1/1000: Subtitle: subrip
     Stream #0:27, 0, 1/1000: Subtitle: subrip
     Stream #0:28, 0, 1/1000: Subtitle: subrip
     Stream #0:29, 0, 1/1000: Subtitle: subrip
     Stream #0:30, 0, 1/1000: Subtitle: subrip
     Stream #0:31, 0, 1/1000: Subtitle: subrip
     Stream #0:32, 0, 1/1000: Subtitle: subrip
     Stream #0:33, 0, 1/1000: Subtitle: subrip
     Stream #0:34, 0, 1/1000: Subtitle: subrip
     Stream #0:35, 0, 1/1000: Subtitle: subrip
     Stream #0:36, 0, 1/1000: Subtitle: subrip
     Stream #0:37, 0, 1/1000: Subtitle: subrip
     Stream #0:38, 0, 1/1000: Subtitle: subrip
     Stream #0:39, 0, 1/1000: Subtitle: subrip
     Stream #0:40, 0, 1/1000: Subtitle: subrip
     Stream #0:41, 0, 1/1000: Subtitle: subrip
     Stream #0:42, 0, 1/1000: Subtitle: subrip
     Stream #0:43, 0, 1/1000: Subtitle: subrip
     Stream #0:44, 0, 1/1000: Subtitle: subrip
     Stream #0:45, 0, 1/1000: Subtitle: subrip
     Stream #0:46, 0, 1/1000: Subtitle: subrip
     Stream #0:47, 0, 1/1000: Subtitle: subrip
     Stream #0:48, 0, 1/1000: Subtitle: subrip
     Stream #0:49, 0, 1/1000: Subtitle: subrip
     Stream #0:50, 0, 1/1000: Subtitle: subrip
     Stream #0:51, 0, 1/1000: Subtitle: subrip
     Stream #0:52, 0, 1/1000: Subtitle: subrip
     Stream #0:53, 0, 1/1000: Subtitle: subrip
     Stream #0:54, 0, 1/1000: Subtitle: subrip
     Stream #0:55, 0, 1/1000: Subtitle: subrip
     Stream #0:56, 0, 1/1000: Subtitle: subrip
     Stream #0:57, 0, 1/1000: Subtitle: subrip
     Stream #0:58, 0, 1/1000: Subtitle: subrip
     Stream #0:59, 0, 1/1000: Subtitle: subrip
     Stream #0:60, 0, 1/1000: Subtitle: subrip
     Stream #0:61, 0, 1/1000: Subtitle: subrip
     Stream #0:62, 0, 1/1000: Subtitle: subrip
     Stream #0:63, 0, 1/1000: Subtitle: subrip
     Stream #0:64, 0, 1/1000: Subtitle: subrip
     Stream #0:65, 0, 1/1000: Subtitle: subrip
     Stream #0:66, 0, 1/1000: Subtitle: subrip
     Stream #0:67, 0, 1/1000: Subtitle: subrip
     Stream #0:68, 0, 1/1000: Subtitle: subrip
     Stream #0:69, 0, 1/1000: Subtitle: subrip
     Stream #0:70, 0, 1/1000: Subtitle: subrip
     Stream #0:71, 0, 1/1000: Subtitle: subrip
     Stream #0:72, 0, 1/1000: Subtitle: subrip
     Stream #0:73, 0, 1/1000: Subtitle: subrip
     Stream #0:74, 0, 1/1000: Subtitle: subrip
     Stream #0:75, 0, 1/1000: Subtitle: subrip
     Stream #0:76, 0, 1/1000: Subtitle: subrip
     Stream #0:77, 0, 1/1000: Subtitle: subrip
     Stream #0:78, 0, 1/1000: Subtitle: subrip
     Stream #0:79, 0, 1/1000: Subtitle: subrip
     Stream #0:80, 0, 1/1000: Subtitle: subrip
     Stream #0:81, 0, 1/1000: Subtitle: subrip
     Stream #0:82, 0, 1/1000: Subtitle: subrip
     Stream #0:83, 0, 1/1000: Subtitle: subrip
     Stream #0:84, 0, 1/1000: Subtitle: subrip
     Stream #0:85, 0, 1/1000: Subtitle: subrip
     Stream #0:86, 0, 1/1000: Subtitle: subrip
     Stream #0:87, 0, 1/1000: Subtitle: subrip
     Stream #0:88, 0, 1/1000: Subtitle: subrip
     Stream #0:89, 0, 1/1000: Subtitle: subrip
     Stream #0:90, 0, 1/1000: Subtitle: subrip
     Stream #0:91, 0, 1/1000: Subtitle: subrip
     Stream #0:92, 0, 1/1000: Subtitle: subrip
     Stream #0:93, 0, 1/1000: Subtitle: subrip
     Stream #0:94, 0, 1/1000: Subtitle: subrip
     Stream #0:95, 0, 1/1000: Subtitle: subrip
     Stream #0:96, 0, 1/1000: Subtitle: subrip
     Stream #0:97, 0, 1/1000: Subtitle: subrip
     Stream #0:98, 0, 1/1000: Subtitle: subrip
     Stream #0:99, 0, 1/1000: Subtitle: subrip
     Stream #0:100, 0, 1/1000: Subtitle: subrip
     Stream #0:101, 0, 1/1000: Subtitle: subrip
     Stream #0:102, 0, 1/1000: Subtitle: subrip
     Stream #0:103, 0, 1/1000: Subtitle: subrip
     Stream #0:104, 0, 1/1000: Subtitle: subrip
     Stream #0:105, 0, 1/1000: Subtitle: subrip
     Stream #0:106, 0, 1/1000: Subtitle: subrip
     Stream #0:107, 0, 1/1000: Subtitle: subrip
     Stream #0:108, 0, 1/1000: Subtitle: subrip
     Stream #0:109, 0, 1/1000: Subtitle: subrip
     Stream #0:110, 0, 1/1000: Subtitle: subrip
     Stream #0:111, 0, 1/1000: Subtitle: subrip
     Stream #0:112, 0, 1/1000: Subtitle: subrip
     Stream #0:113, 0, 1/1000: Subtitle: subrip
     Stream #0:114, 0, 1/1000: Subtitle: subrip
     Stream #0:115, 0, 1/1000: Subtitle: subrip
     Stream #0:116, 0, 1/1000: Subtitle: subrip
     Stream #0:117, 0, 1/1000: Subtitle: subrip
     Stream #0:118, 0, 1/1000: Subtitle: subrip
     Stream #0:119, 0, 1/1000: Subtitle: subrip
     Stream #0:120, 0, 1/1000: Subtitle: subrip
     Stream #0:121, 0, 1/1000: Subtitle: subrip
     Stream #0:122, 0, 1/1000: Subtitle: subrip
     Stream #0:123, 0, 1/1000: Subtitle: subrip
     Stream #0:124, 0, 1/1000: Subtitle: subrip
     Stream #0:125, 0, 1/1000: Subtitle: subrip
     Stream #0:126, 0, 1/1000: Subtitle: subrip
     Stream #0:127, 0, 1/1000: Subtitle: subrip
 Successfully opened the file.
 Parsing a group of options: output url 128.Tracks.127.Empty.mkv.
 Applying option map (set input stream mapping) with argument 0.
 Applying option c (codec name) with argument copy.
 Successfully parsed a group of options.
 Opening an output file: 128.Tracks.127.Empty.mkv.
 [file @ 000000000225bba0] Setting default whitelist 'file,crypto'
 Successfully opened the file.
 Output #0, matroska, to '128.Tracks.127.Empty.mkv':
   Metadata:
     encoder         : Lavf58.2.102
     Stream #0:0, 0, 1/1000: Subtitle: subrip (default)
     Stream #0:1, 0, 1/1000: Subtitle: subrip
     Stream #0:2, 0, 1/1000: Subtitle: subrip
     Stream #0:3, 0, 1/1000: Subtitle: subrip
     Stream #0:4, 0, 1/1000: Subtitle: subrip
     Stream #0:5, 0, 1/1000: Subtitle: subrip
     Stream #0:6, 0, 1/1000: Subtitle: subrip
     Stream #0:7, 0, 1/1000: Subtitle: subrip
     Stream #0:8, 0, 1/1000: Subtitle: subrip
     Stream #0:9, 0, 1/1000: Subtitle: subrip
     Stream #0:10, 0, 1/1000: Subtitle: subrip
     Stream #0:11, 0, 1/1000: Subtitle: subrip
     Stream #0:12, 0, 1/1000: Subtitle: subrip
     Stream #0:13, 0, 1/1000: Subtitle: subrip
     Stream #0:14, 0, 1/1000: Subtitle: subrip
     Stream #0:15, 0, 1/1000: Subtitle: subrip
     Stream #0:16, 0, 1/1000: Subtitle: subrip
     Stream #0:17, 0, 1/1000: Subtitle: subrip
     Stream #0:18, 0, 1/1000: Subtitle: subrip
     Stream #0:19, 0, 1/1000: Subtitle: subrip
     Stream #0:20, 0, 1/1000: Subtitle: subrip
     Stream #0:21, 0, 1/1000: Subtitle: subrip
     Stream #0:22, 0, 1/1000: Subtitle: subrip
     Stream #0:23, 0, 1/1000: Subtitle: subrip
     Stream #0:24, 0, 1/1000: Subtitle: subrip
     Stream #0:25, 0, 1/1000: Subtitle: subrip
     Stream #0:26, 0, 1/1000: Subtitle: subrip
     Stream #0:27, 0, 1/1000: Subtitle: subrip
     Stream #0:28, 0, 1/1000: Subtitle: subrip
     Stream #0:29, 0, 1/1000: Subtitle: subrip
     Stream #0:30, 0, 1/1000: Subtitle: subrip
     Stream #0:31, 0, 1/1000: Subtitle: subrip
     Stream #0:32, 0, 1/1000: Subtitle: subrip
     Stream #0:33, 0, 1/1000: Subtitle: subrip
     Stream #0:34, 0, 1/1000: Subtitle: subrip
     Stream #0:35, 0, 1/1000: Subtitle: subrip
     Stream #0:36, 0, 1/1000: Subtitle: subrip
     Stream #0:37, 0, 1/1000: Subtitle: subrip
     Stream #0:38, 0, 1/1000: Subtitle: subrip
     Stream #0:39, 0, 1/1000: Subtitle: subrip
     Stream #0:40, 0, 1/1000: Subtitle: subrip
     Stream #0:41, 0, 1/1000: Subtitle: subrip
     Stream #0:42, 0, 1/1000: Subtitle: subrip
     Stream #0:43, 0, 1/1000: Subtitle: subrip
     Stream #0:44, 0, 1/1000: Subtitle: subrip
     Stream #0:45, 0, 1/1000: Subtitle: subrip
     Stream #0:46, 0, 1/1000: Subtitle: subrip
     Stream #0:47, 0, 1/1000: Subtitle: subrip
     Stream #0:48, 0, 1/1000: Subtitle: subrip
     Stream #0:49, 0, 1/1000: Subtitle: subrip
     Stream #0:50, 0, 1/1000: Subtitle: subrip
     Stream #0:51, 0, 1/1000: Subtitle: subrip
     Stream #0:52, 0, 1/1000: Subtitle: subrip
     Stream #0:53, 0, 1/1000: Subtitle: subrip
     Stream #0:54, 0, 1/1000: Subtitle: subrip
     Stream #0:55, 0, 1/1000: Subtitle: subrip
     Stream #0:56, 0, 1/1000: Subtitle: subrip
     Stream #0:57, 0, 1/1000: Subtitle: subrip
     Stream #0:58, 0, 1/1000: Subtitle: subrip
     Stream #0:59, 0, 1/1000: Subtitle: subrip
     Stream #0:60, 0, 1/1000: Subtitle: subrip
     Stream #0:61, 0, 1/1000: Subtitle: subrip
     Stream #0:62, 0, 1/1000: Subtitle: subrip
     Stream #0:63, 0, 1/1000: Subtitle: subrip
     Stream #0:64, 0, 1/1000: Subtitle: subrip
     Stream #0:65, 0, 1/1000: Subtitle: subrip
     Stream #0:66, 0, 1/1000: Subtitle: subrip
     Stream #0:67, 0, 1/1000: Subtitle: subrip
     Stream #0:68, 0, 1/1000: Subtitle: subrip
     Stream #0:69, 0, 1/1000: Subtitle: subrip
     Stream #0:70, 0, 1/1000: Subtitle: subrip
     Stream #0:71, 0, 1/1000: Subtitle: subrip
     Stream #0:72, 0, 1/1000: Subtitle: subrip
     Stream #0:73, 0, 1/1000: Subtitle: subrip
     Stream #0:74, 0, 1/1000: Subtitle: subrip
     Stream #0:75, 0, 1/1000: Subtitle: subrip
     Stream #0:76, 0, 1/1000: Subtitle: subrip
     Stream #0:77, 0, 1/1000: Subtitle: subrip
     Stream #0:78, 0, 1/1000: Subtitle: subrip
     Stream #0:79, 0, 1/1000: Subtitle: subrip
     Stream #0:80, 0, 1/1000: Subtitle: subrip
     Stream #0:81, 0, 1/1000: Subtitle: subrip
     Stream #0:82, 0, 1/1000: Subtitle: subrip
     Stream #0:83, 0, 1/1000: Subtitle: subrip
     Stream #0:84, 0, 1/1000: Subtitle: subrip
     Stream #0:85, 0, 1/1000: Subtitle: subrip
     Stream #0:86, 0, 1/1000: Subtitle: subrip
     Stream #0:87, 0, 1/1000: Subtitle: subrip
     Stream #0:88, 0, 1/1000: Subtitle: subrip
     Stream #0:89, 0, 1/1000: Subtitle: subrip
     Stream #0:90, 0, 1/1000: Subtitle: subrip
     Stream #0:91, 0, 1/1000: Subtitle: subrip
     Stream #0:92, 0, 1/1000: Subtitle: subrip
     Stream #0:93, 0, 1/1000: Subtitle: subrip
     Stream #0:94, 0, 1/1000: Subtitle: subrip
     Stream #0:95, 0, 1/1000: Subtitle: subrip
     Stream #0:96, 0, 1/1000: Subtitle: subrip
     Stream #0:97, 0, 1/1000: Subtitle: subrip
     Stream #0:98, 0, 1/1000: Subtitle: subrip
     Stream #0:99, 0, 1/1000: Subtitle: subrip
     Stream #0:100, 0, 1/1000: Subtitle: subrip
     Stream #0:101, 0, 1/1000: Subtitle: subrip
     Stream #0:102, 0, 1/1000: Subtitle: subrip
     Stream #0:103, 0, 1/1000: Subtitle: subrip
     Stream #0:104, 0, 1/1000: Subtitle: subrip
     Stream #0:105, 0, 1/1000: Subtitle: subrip
     Stream #0:106, 0, 1/1000: Subtitle: subrip
     Stream #0:107, 0, 1/1000: Subtitle: subrip
     Stream #0:108, 0, 1/1000: Subtitle: subrip
     Stream #0:109, 0, 1/1000: Subtitle: subrip
     Stream #0:110, 0, 1/1000: Subtitle: subrip
     Stream #0:111, 0, 1/1000: Subtitle: subrip
     Stream #0:112, 0, 1/1000: Subtitle: subrip
     Stream #0:113, 0, 1/1000: Subtitle: subrip
     Stream #0:114, 0, 1/1000: Subtitle: subrip
     Stream #0:115, 0, 1/1000: Subtitle: subrip
     Stream #0:116, 0, 1/1000: Subtitle: subrip
     Stream #0:117, 0, 1/1000: Subtitle: subrip
     Stream #0:118, 0, 1/1000: Subtitle: subrip
     Stream #0:119, 0, 1/1000: Subtitle: subrip
     Stream #0:120, 0, 1/1000: Subtitle: subrip
     Stream #0:121, 0, 1/1000: Subtitle: subrip
     Stream #0:122, 0, 1/1000: Subtitle: subrip
     Stream #0:123, 0, 1/1000: Subtitle: subrip
     Stream #0:124, 0, 1/1000: Subtitle: subrip
     Stream #0:125, 0, 1/1000: Subtitle: subrip
     Stream #0:126, 0, 1/1000: Subtitle: subrip
     Stream #0:127, 0, 1/1000: Subtitle: subrip
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:2 -> #0:2 (copy)
   Stream #0:3 -> #0:3 (copy)
   Stream #0:4 -> #0:4 (copy)
   Stream #0:5 -> #0:5 (copy)
   Stream #0:6 -> #0:6 (copy)
   Stream #0:7 -> #0:7 (copy)
   Stream #0:8 -> #0:8 (copy)
   Stream #0:9 -> #0:9 (copy)
   Stream #0:10 -> #0:10 (copy)
   Stream #0:11 -> #0:11 (copy)
   Stream #0:12 -> #0:12 (copy)
   Stream #0:13 -> #0:13 (copy)
   Stream #0:14 -> #0:14 (copy)
   Stream #0:15 -> #0:15 (copy)
   Stream #0:16 -> #0:16 (copy)
   Stream #0:17 -> #0:17 (copy)
   Stream #0:18 -> #0:18 (copy)
   Stream #0:19 -> #0:19 (copy)
   Stream #0:20 -> #0:20 (copy)
   Stream #0:21 -> #0:21 (copy)
   Stream #0:22 -> #0:22 (copy)
   Stream #0:23 -> #0:23 (copy)
   Stream #0:24 -> #0:24 (copy)
   Stream #0:25 -> #0:25 (copy)
   Stream #0:26 -> #0:26 (copy)
   Stream #0:27 -> #0:27 (copy)
   Stream #0:28 -> #0:28 (copy)
   Stream #0:29 -> #0:29 (copy)
   Stream #0:30 -> #0:30 (copy)
   Stream #0:31 -> #0:31 (copy)
   Stream #0:32 -> #0:32 (copy)
   Stream #0:33 -> #0:33 (copy)
   Stream #0:34 -> #0:34 (copy)
   Stream #0:35 -> #0:35 (copy)
   Stream #0:36 -> #0:36 (copy)
   Stream #0:37 -> #0:37 (copy)
   Stream #0:38 -> #0:38 (copy)
   Stream #0:39 -> #0:39 (copy)
   Stream #0:40 -> #0:40 (copy)
   Stream #0:41 -> #0:41 (copy)
   Stream #0:42 -> #0:42 (copy)
   Stream #0:43 -> #0:43 (copy)
   Stream #0:44 -> #0:44 (copy)
   Stream #0:45 -> #0:45 (copy)
   Stream #0:46 -> #0:46 (copy)
   Stream #0:47 -> #0:47 (copy)
   Stream #0:48 -> #0:48 (copy)
   Stream #0:49 -> #0:49 (copy)
   Stream #0:50 -> #0:50 (copy)
   Stream #0:51 -> #0:51 (copy)
   Stream #0:52 -> #0:52 (copy)
   Stream #0:53 -> #0:53 (copy)
   Stream #0:54 -> #0:54 (copy)
   Stream #0:55 -> #0:55 (copy)
   Stream #0:56 -> #0:56 (copy)
   Stream #0:57 -> #0:57 (copy)
   Stream #0:58 -> #0:58 (copy)
   Stream #0:59 -> #0:59 (copy)
   Stream #0:60 -> #0:60 (copy)
   Stream #0:61 -> #0:61 (copy)
   Stream #0:62 -> #0:62 (copy)
   Stream #0:63 -> #0:63 (copy)
   Stream #0:64 -> #0:64 (copy)
   Stream #0:65 -> #0:65 (copy)
   Stream #0:66 -> #0:66 (copy)
   Stream #0:67 -> #0:67 (copy)
   Stream #0:68 -> #0:68 (copy)
   Stream #0:69 -> #0:69 (copy)
   Stream #0:70 -> #0:70 (copy)
   Stream #0:71 -> #0:71 (copy)
   Stream #0:72 -> #0:72 (copy)
   Stream #0:73 -> #0:73 (copy)
   Stream #0:74 -> #0:74 (copy)
   Stream #0:75 -> #0:75 (copy)
   Stream #0:76 -> #0:76 (copy)
   Stream #0:77 -> #0:77 (copy)
   Stream #0:78 -> #0:78 (copy)
   Stream #0:79 -> #0:79 (copy)
   Stream #0:80 -> #0:80 (copy)
   Stream #0:81 -> #0:81 (copy)
   Stream #0:82 -> #0:82 (copy)
   Stream #0:83 -> #0:83 (copy)
   Stream #0:84 -> #0:84 (copy)
   Stream #0:85 -> #0:85 (copy)
   Stream #0:86 -> #0:86 (copy)
   Stream #0:87 -> #0:87 (copy)
   Stream #0:88 -> #0:88 (copy)
   Stream #0:89 -> #0:89 (copy)
   Stream #0:90 -> #0:90 (copy)
   Stream #0:91 -> #0:91 (copy)
   Stream #0:92 -> #0:92 (copy)
   Stream #0:93 -> #0:93 (copy)
   Stream #0:94 -> #0:94 (copy)
   Stream #0:95 -> #0:95 (copy)
   Stream #0:96 -> #0:96 (copy)
   Stream #0:97 -> #0:97 (copy)
   Stream #0:98 -> #0:98 (copy)
   Stream #0:99 -> #0:99 (copy)
   Stream #0:100 -> #0:100 (copy)
   Stream #0:101 -> #0:101 (copy)
   Stream #0:102 -> #0:102 (copy)
   Stream #0:103 -> #0:103 (copy)
   Stream #0:104 -> #0:104 (copy)
   Stream #0:105 -> #0:105 (copy)
   Stream #0:106 -> #0:106 (copy)
   Stream #0:107 -> #0:107 (copy)
   Stream #0:108 -> #0:108 (copy)
   Stream #0:109 -> #0:109 (copy)
   Stream #0:110 -> #0:110 (copy)
   Stream #0:111 -> #0:111 (copy)
   Stream #0:112 -> #0:112 (copy)
   Stream #0:113 -> #0:113 (copy)
   Stream #0:114 -> #0:114 (copy)
   Stream #0:115 -> #0:115 (copy)
   Stream #0:116 -> #0:116 (copy)
   Stream #0:117 -> #0:117 (copy)
   Stream #0:118 -> #0:118 (copy)
   Stream #0:119 -> #0:119 (copy)
   Stream #0:120 -> #0:120 (copy)
   Stream #0:121 -> #0:121 (copy)
   Stream #0:122 -> #0:122 (copy)
   Stream #0:123 -> #0:123 (copy)
   Stream #0:124 -> #0:124 (copy)
   Stream #0:125 -> #0:125 (copy)
   Stream #0:126 -> #0:126 (copy)
   Stream #0:127 -> #0:127 (copy)
 Press [q] to stop, [?] for help
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 No more output streams to write to, finishing.
 [matroska @ 0000000001d72920] get_metadata_duration returned: 0
 [matroska @ 0000000001d72920] Writing block at offset 12, size 5, pts
 1000, dts 1000, duration 2000, keyframe 1
 [matroska @ 0000000001d72920] end duration = 3000
 }}}
 Here is the gdb output:
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 mkv_write_trailer (s=0x1d72920)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/matroskaenc.
 c:2597
 2597                    if (mkv->stream_duration_offsets[i] > 0) {
 (gdb) bt
 #0  mkv_write_trailer (s=0x1d72920)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/matroskaenc.
 c:2597
 #1  0x0000000140100fa0 in av_write_trailer (s=s at entry=0x1d72920)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/libavformat/mux.c:1296
 #2  0x0000000140023bdd in transcode ()
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/fftools/ffmpeg.c:4643
 #3  0x00000001407ac5f2 in main (argc=<optimized out>, argv=<optimized
 out>)
     at I:/media-autobuild_suite-master/build/ffmpeg-
 git/fftools/ffmpeg.c:4812
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x1400bc080 to 0x1400bc0c0:
    0x00000001400bc080 <mkv_write_trailer+752>:  mov    %eax,0x38(%rsp)
    0x00000001400bc084 <mkv_write_trailer+756>:  test   %edx,%edx
    0x00000001400bc086 <mkv_write_trailer+758>:  je     0x1400bc0bf
 <mkv_write_tr
 ailer+815>
    0x00000001400bc088 <mkv_write_trailer+760>:  mov    0x550(%rbx),%rcx
    0x00000001400bc08f <mkv_write_trailer+767>:  lea    0x40(%rsp),%r14
    0x00000001400bc094 <mkv_write_trailer+772>:  xor    %r15d,%r15d
    0x00000001400bc097 <mkv_write_trailer+775>:  nopw   0x0(%rax,%rax,1)
 => 0x00000001400bc0a0 <mkv_write_trailer+784>:  cmpq   $0x0,(%rcx,%r15,8)
    0x00000001400bc0a5 <mkv_write_trailer+789>:  lea    0x0(,%r15,8),%rax
    0x00000001400bc0ad <mkv_write_trailer+797>:  jg     0x1400bc1e3
 <mkv_write_tr
 ailer+1107>
    0x00000001400bc0b3 <mkv_write_trailer+803>:  lea    0x1(%r15),%eax
    0x00000001400bc0b7 <mkv_write_trailer+807>:  add    $0x1,%r15
    0x00000001400bc0bb <mkv_write_trailer+811>:  cmp    %eax,%edx
    0x00000001400bc0bd <mkv_write_trailer+813>:  ja     0x1400bc0a0
 <mkv_write_tr
 ailer+784>
    0x00000001400bc0bf <mkv_write_trailer+815>:  mov    0x38(%rsp),%rdx
 End of assembler dump.
 (gdb) info all-registers
 rax            0x223d   8765
 rbx            0x1d72f40        30879552
 rcx            0x0      0
 rdx            0x80     128
 rsi            0x1d72920        30877984
 rdi            0x2652080        40181888
 rbp            0x1d72f48        0x1d72f48
 rsp            0x22f320 0x22f320
 r8             0x1      1
 r9             0x1      1
 r10            0x590158 5833048
 r11            0x22ee18 2289176
 r12            0x1d7308c        30879884
 r13            0x3a9c   15004
 r14            0x22f360 2290528
 r15            0x0      0
 rip            0x1400bc0a0      0x1400bc0a0 <mkv_write_trailer+784>
 eflags         0x10246  [ PF ZF IF RF ]
 cs             0x33     51
 ss             0x2b     43
 ds             0x0      0
 es             0x0      0
 fs             0x0      0
 gs             0x0      0
 st0            0        (raw 0x00000000000000000000)
 st1            0        (raw 0x00000000000000000000)
 st2            0        (raw 0x00000000000000000000)
 st3            0        (raw 0x00000000000000000000)
 st4            0        (raw 0x00000000000000000000)
 st5            0        (raw 0x00000000000000000000)
 st6            0        (raw 0x00000000000000000000)
 st7            2        (raw 0x40008000000000000000)
 fctrl          0x37f    895
 fstat          0x0      0
 ftag           0x0      0
 fiseg          0x0      0
 fioff          0x407a169b       1081743003
 foseg          0x0      0
 fooff          0x22ddb0 2284976
 fop            0x0      0
 xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 =
 {0x0,
     0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0,
 0x0,
     0x0}, v2_int64 = {0x80000000, 0x0},
   uint128 = 0x00000000000000000000000080000000}
 xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 =
 {0x0,
     0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0,
 0x0,
     0x0}, v2_int64 = {0x80000000, 0x0},
   uint128 = 0x00000000000000000000000080000000}
 xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0, 0x0, 0x0, 0x80, 0x0 <repeats 12 times>}, v8_int16 =
 {0x0,
     0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x80000000, 0x0,
 0x0,
     0x0}, v2_int64 = {0x80000000, 0x0},
   uint128 = 0x00000000000000000000000080000000}
 xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm14          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]
 }}}
 This time the block has been written; even the cues have been written. But
 the TrackID is written as 0x80 in the block, indicating an invalid TrackID
 0.

 c) I didn't get crashes when the tracks with TrackID 127 and 128 are empty
 (contain no packets). But the actually written TrackIDs for such tracks
 are wrong: 129 becomes 1, 130 2... This can be reproduced with
 "129.Tracks.128.Empty.mks".

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


More information about the FFmpeg-trac mailing list