[FFmpeg-trac] #5872(undetermined:new): ffmpeg creates bad .mov when encoding hap video

FFmpeg trac at avcodec.org
Thu Sep 29 16:41:03 EEST 2016


#5872: ffmpeg creates bad .mov when encoding hap video
-------------------------------------+-------------------------------------
             Reporter:  rich99       |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  git-master   |  undetermined
             Keywords:  mov corrupt  |               Resolution:
  hap                                |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by rich99):

 Remuxing .mov to mkv also produces unplayable mkv.

 {{{
 ffmpeg -v 9 -loglevel 99 -i out_hap.mov -vcodec copy out_hap_2.mkv

 ffmpeg version N-81784-g92de2c2 Copyright (c) 2000-2016 the FFmpeg
 developers
   built with gcc 5.4.0 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-
 bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-
 gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b
 --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm
 --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
 libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex
 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-
 amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-
 libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-
 libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
   libavutil      55. 30.100 / 55. 30.100
   libavcodec     57. 58.100 / 57. 58.100
   libavformat    57. 51.100 / 57. 51.100
   libavdevice    57.  0.102 / 57.  0.102
   libavfilter     6. 63.100 /  6. 63.100
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  2.100 /  2.  2.100
   libpostproc    54.  0.100 / 54.  0.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 '-i' ... matched as input file with argument 'out_hap.mov'.
 Reading option '-vcodec' ... matched as option 'vcodec' (force video codec
 ('copy' to copy stream)) with argument 'copy'.
 Reading option 'out_hap_2.mkv' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input file out_hap.mov.
 Successfully parsed a group of options.
 Opening an input file: out_hap.mov.
 [file @ 0000000002613260] Setting default whitelist 'file,crypto'
 Probing mov,mp4,m4a,3gp,3g2,mj2 score:100 size:2048
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] Format
 mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 70797466 'ftyp'
 parent:'root' sz: 20 8 274094
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] ISO: File Type Major Brand:
 qt
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 65646977 'wide'
 parent:'root' sz: 8 28 274094
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 7461646d 'mdat'
 parent:'root' sz: 273060 36 274094
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 766f6f6d 'moov'
 parent:'root' sz: 1006 273096 274094
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6468766d 'mvhd'
 parent:'moov' sz: 108 8 998
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] time scale = 1000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6b617274 'trak'
 parent:'moov' sz: 857 116 998
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 64686b74 'tkhd'
 parent:'trak' sz: 92 8 849
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 73746465 'edts'
 parent:'trak' sz: 36 100 849
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 74736c65 'elst'
 parent:'edts' sz: 28 8 28
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] track[0].edit_count = 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] duration=3000 time=0
 rate=1.000000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6169646d 'mdia'
 parent:'trak' sz: 721 136 849
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6468646d 'mdhd'
 parent:'mdia' sz: 32 8 713
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 726c6468 'hdlr'
 parent:'mdia' sz: 45 40 713
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] ctype= mhlr (0x726c686d)
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stype= vide
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 666e696d 'minf'
 parent:'mdia' sz: 636 85 713
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 64686d76 'vmhd'
 parent:'minf' sz: 20 8 628
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 726c6468 'hdlr'
 parent:'minf' sz: 44 28 628
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] ctype= dhlr (0x726c6864)
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stype= url
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 666e6964 'dinf'
 parent:'minf' sz: 36 72 628
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 66657264 'dref'
 parent:'dinf' sz: 28 8 28
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type url  size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] Unknown dref type
 0x08206c7275 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6c627473 'stbl'
 parent:'minf' sz: 528 108 628
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 64737473 'stsd'
 parent:'stbl' sz: 128 8 520
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] size=112 4CC= Hap1/0x31706148
 codec_type=0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6c656966 'fiel'
 parent:'stsd' sz: 10 8 26
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 70736170 'pasp'
 parent:'stsd' sz: 16 18 26
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 73747473 'stts'
 parent:'stbl' sz: 24 136 520
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] track[0].stts.entries = 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] sample_count=75,
 sample_duration=512
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 63737473 'stsc'
 parent:'stbl' sz: 28 160 520
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] track[0].stsc.entries = 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 7a737473 'stsz'
 parent:'stbl' sz: 320 188 520
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] sample_size = 0 sample_count
 = 75
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 6f637473 'stco'
 parent:'stbl' sz: 20 508 520
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 0,
 offset 24, dts 0, size 3650, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 1,
 offset e66, dts 512, size 3641, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 2,
 offset 1c9f, dts 1024, size 3641, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 3,
 offset 2ad8, dts 1536, size 3650, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 4,
 offset 391a, dts 2048, size 3655, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 5,
 offset 4761, dts 2560, size 3660, distance 0, keyframe 1
 [...]
 [...]
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 71,
 offset 3f173, dts 36352, size 3662, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 72,
 offset 3ffc1, dts 36864, size 3668, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 73,
 offset 40e15, dts 37376, size 3666, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] AVIndex stream 0, sample 74,
 offset 41c67, dts 37888, size 3673, distance 0, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] Processing st: 0, edit list 0
 - media time: 0, duration: 38400
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 61746475 'udta'
 parent:'moov' sz: 33 973 998
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] type: 727773a9 '®swr'
 parent:'udta' sz: 25 8 25
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] lang "und" tag "encoder"
 value "Lavf57.51.100" atom "®swr" 27 13
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] on_parse_exit_offset=274094
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] Before
 avformat_find_stream_info() pos: 274094 bytes read:33774 seeks:1
 nb_streams:1
 [hap @ 00000000026242e0] DXT1 texture
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 0, dts 0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0: start_time: 0.000
 duration: 3.000
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] format: start_time: 0.000
 duration: 3.000 bitrate=730 kb/s
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] After
 avformat_find_stream_info() pos: 3686 bytes read:66542 seeks:2 frames:1
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out_hap.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf57.51.100
   Duration: 00:00:03.00, start: 0.000000, bitrate: 730 kb/s
     Stream #0:0(eng), 1, 1/12800: Video: hap, 1 reference frame (Hap1 /
 0x31706148), rgb0, 320x240, 0/1, 728 kb/s, SAR 1:1 DAR 4:3, 25 fps, 25
 tbr, 12800 tbn, 12800 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc57.58.100 hap
 Successfully opened the file.
 Parsing a group of options: output file out_hap_2.mkv.
 Applying option vcodec (force video codec ('copy' to copy stream)) with
 argument copy.
 Successfully parsed a group of options.
 Opening an output file: out_hap_2.mkv.
 [file @ 00000000026164e0] Setting default whitelist 'file,crypto'
 Successfully opened the file.
 Output #0, matroska, to 'out_hap_2.mkv':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf57.51.100
     Stream #0:0(eng), 0, 1/1000: Video: hap, 1 reference frame (Hap1 /
 0x31706148), rgb0, 320x240 (0x0) [SAR 1:1 DAR 4:3], 0/1, q=2-31, 728 kb/s,
 25 fps, 25 tbr, 1k tbn, 12800 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc57.58.100 hap
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Press [q] to stop, [?] for help
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 [matroska @ 0000000002614d00] get_metadata_duration returned: 0
 [matroska @ 0000000002614d00] Writing block at offset 807, size 3650, pts
 0, dts 0, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 1, dts 40000
 [matroska @ 0000000002614d00] Writing block at offset 4464, size 3641, pts
 40, dts 40, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 2, dts 80000
 [matroska @ 0000000002614d00] Starting new cluster at offset 8112 bytes,
 pts 80dts 80
 [matroska @ 0000000002614d00] Writing block at offset 8127, size 3641, pts
 80, dts 80, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 3, dts
 120000
 [matroska @ 0000000002614d00] Writing block at offset 11775, size 3650,
 pts 120, dts 120, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 4, dts
 160000
 [matroska @ 0000000002614d00] Starting new cluster at offset 15432 bytes,
 pts 160dts 160
 [matroska @ 0000000002614d00] Writing block at offset 15447, size 3655,
 pts 160, dts 160, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 5, dts
 200000
 [matroska @ 0000000002614d00] Writing block at offset 19109, size 3660,
 pts 200, dts 200, duration 40, keyframe 1
 [...]
 [...]
 [matroska @ 0000000002614d00] Writing block at offset 260244, size 3662,
 pts 2840, dts 2840, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 72, dts
 2880000
 [matroska @ 0000000002614d00] Starting new cluster at offset 263913 bytes,
 pts 2880dts 2880
 [matroska @ 0000000002614d00] Writing block at offset 263929, size 3668,
 pts 2880, dts 2880, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 73, dts
 2920000
 [matroska @ 0000000002614d00] Writing block at offset 267604, size 3666,
 pts 2920, dts 2920, duration 40, keyframe 1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000692600] stream 0, sample 74, dts
 2960000
 [matroska @ 0000000002614d00] Starting new cluster at offset 271277 bytes,
 pts 2960dts 2960
 [matroska @ 0000000002614d00] Writing block at offset 271293, size 3673,
 pts 2960, dts 2960, duration 40, keyframe 1
 No more output streams to write to, finishing.
 [matroska @ 0000000002614d00] end duration = 3000
 [matroska @ 0000000002614d00] stream 0 end duration = 3000
 frame=   75 fps=0.0 q=-1.0 Lsize=     270kB time=00:00:02.96 bitrate=
 746.8kbits/s speed=15.2x
 video:267kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 1.234197%
 Input file #0 (out_hap.mov):
   Input stream #0:0 (video): 75 packets read (273052 bytes);
   Total: 75 packets (273052 bytes) demuxed
 Output file #0 (out_hap_2.mkv):
   Output stream #0:0 (video): 75 packets muxed (273052 bytes);
   Total: 75 packets (273052 bytes) muxed
 0 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 000000000262e020] Statistics: 395 seeks, 353 writeouts
 [AVIOContext @ 000000000261b4a0] Statistics: 307832 bytes read, 2 seeks

 }}}

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


More information about the FFmpeg-trac mailing list