[FFmpeg-trac] #5978(ffprobe:new): FFprobe calculates timecode wrong with mp4 ntsc framerates

FFmpeg trac at avcodec.org
Thu Nov 24 18:30:22 EET 2016


#5978: FFprobe calculates timecode wrong with mp4 ntsc framerates
-------------------------------------+-------------------------------------
             Reporter:  haze.ortner  |                     Type:  defect
               Status:  new          |                 Priority:  important
            Component:  ffprobe      |                  Version:  git-
             Keywords:  timecode,    |  master
  mp4, ffprobe                       |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 Trying to extract timecode from a .mp4 file with a timecode track produced
 by the standard apple describes
 [https://developer.apple.com/library/content/technotes/tn2174/_index.html
 here.]
 FFprobe calculates the timecode wrong, and the drift get greater in later
 hours.

 This problem appears on NTSC framerates only.
 '''Correct timecode at first frame should be 00:02:58:19'''
 How to reproduce:
 {{{
 ffprobe started on 2016-11-24 at 17:22:41
 Report written to "ffprobe-20161124-172241.log"
 Command line:
 "Q:\\Tools\\Reaper\\ffmpeg\\bin\\ffprobe.exe" -show_streams -of json
 -report "E:\\SyncTest\\Haze_synctest_60fps_2997TC_v3.MP4"
 ffprobe version N-82324-g872b358 Copyright (c) 2007-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. 36.100 / 55. 36.100
   libavcodec     57. 66.101 / 57. 66.101
   libavformat    57. 57.100 / 57. 57.100
   libavdevice    57.  2.100 / 57.  2.100
   libavfilter     6. 66.100 /  6. 66.100
   libswscale      4.  3.100 /  4.  3.100
   libswresample   2.  4.100 /  2.  4.100
   libpostproc    54.  2.100 / 54.  2.100
 [file @ 0000000002633d40] Setting default whitelist 'file,crypto'
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Format
 mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] ISO: File Type Major Brand:
 mp41
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Unknown dref type
 0x0873696c61 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Processing st: 0, edit list 0
 - media time: 0, duration: 972972
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Unknown dref type
 0x0873696c61 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Unknown dref type
 0x0873696c61 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Unknown dref type
 0x0873696c61 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Using non-standard frame rate
 59/1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Before
 avformat_find_stream_info() pos: 61187446 bytes read:96304 seeks:3
 nb_streams:4
 [h264 @ 0000000002644d60] nal_unit_type: 7, nal_ref_idc: 1
 [h264 @ 0000000002644d60] nal_unit_type: 8, nal_ref_idc: 1
 [h264 @ 0000000002644d60] nal_unit_type: 9, nal_ref_idc: 0
 [h264 @ 0000000002644d60] nal_unit_type: 6, nal_ref_idc: 0
 [h264 @ 0000000002644d60] nal_unit_type: 5, nal_ref_idc: 1
 [h264 @ 0000000002644d60] ct_type:1 pic_struct:0
 [h264 @ 0000000002644d60] Reinit context to 1920x1088, pix_fmt: yuvj420p
 [h264 @ 0000000002644d60] no picture
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] Non-increasing DTS in stream
 3: packet 2 with DTS 0, packet 3 with DTS 0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000002633640] After
 avformat_find_stream_info() pos: 340240 bytes read:468907 seeks:4 frames:7
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
 'E:\SyncTest\Haze_synctest_60fps_2997TC_v3.MP4':
   Metadata:
     major_brand     : mp41
     minor_version   : 538120216
     compatible_brands: mp41
     creation_time   : 2015-01-03T00:02:58.000000Z
     firmware        : HD4.01.05.00.00
   Duration: 00:00:16.23, start: 0.000000, bitrate: 30151 kb/s
     Stream #0:0(eng), 1, 1/60000: Video: h264 (High) (avc1 / 0x31637661),
 yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 30028 kb/s, 59.94 fps,
 59.94 tbr, 60k tbn, 119.88 tbc (default)
     Metadata:
       creation_time   : 2015-01-03T00:02:58.000000Z
       handler_name    :         GoPro AVC
       encoder         : GoPro AVC encoder
       timecode        : 00:03:01:42
     Stream #0:1(eng), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D),
 48000 Hz, stereo, fltp, 128 kb/s (default)
     Metadata:
       creation_time   : 2015-01-03T00:02:58.000000Z
       handler_name    :         GoPro AAC
       timecode        : 00:03:01:42
     Stream #0:2(eng), 1, 1/60000: Data: none (tmcd / 0x64636D74), 0 kb/s
 (default)
     Metadata:
       creation_time   : 2015-01-03T00:02:58.000000Z
       handler_name    :         GoPro TCD
       timecode        : 00:03:01:42
     Stream #0:3(eng), 4, 1/60000: Data: none (fdsc / 0x63736466), 13 kb/s
 (default)
     Metadata:
       creation_time   : 2015-01-03T00:02:58.000000Z
       handler_name    :         GoPro SOS
 [h264 @ 000000000071e360] nal_unit_type: 7, nal_ref_idc: 1
 [h264 @ 000000000071e360] nal_unit_type: 8, nal_ref_idc: 1
 Unsupported codec with id 0 for input stream 2
 Unsupported codec with id 0 for input stream 3
 [AVIOContext @ 000000000263bf20] Statistics: 468907 bytes read, 4 seeks

 }}}
 Patches should be submitted to the ffmpeg-devel mailing list and not this
 bug tracker.

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


More information about the FFmpeg-trac mailing list