[FFmpeg-trac] #2044(avformat:new): timecode copying error with variable frame rate QuickTime files
FFmpeg
trac at avcodec.org
Wed Dec 19 06:23:26 CET 2012
#2044: timecode copying error with variable frame rate QuickTime files
-------------------------------------+-------------------------------------
Reporter: dericed | Owner:
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git- | Keywords: timecode,
master | mov, vfr
Blocked By: | Blocking:
Reproduced by developer: 0 | Analyzed by developer: 0
-------------------------------------+-------------------------------------
Summary of the bug:
Video capture in Final Cut Pro often creates variable frame rate QuickTime
files (where only the first and sometimes last frame deviate have frame
durations that deviate from the rest). When I try to convert these files
in ffmpeg while preserving timecode the results are unexpected.
I'm attaching a sample produced by using FCP to capture two frames from a
tape. By reading the sample-to-time table in the video trak the first
frame has a duration of 401/2997 and the rest have frame durations of
100/2997.
When I try to copy the tracks of this input to an output quicktime file
the timecode track in the output does not match the input's timecode
track. When the input is opened in QuickTime or FCP the first frame of the
sample is 00:59:14;24 and the second is 00:59:14;25. With the output the
first frame is 00:59:14;24 but the second is 00:59:14;28.
How to reproduce:
{{{
ffmpeg started on 2012-12-19 at 00:21:21
Report written to "ffmpeg-20121219-002121.log"
Command line:
ffmpeg -report -y -i fcp_capture.mov -c:v copy -c:a copy -r ntsc
output.mov
ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers
built on Dec 18 2012 23:49:10 with Apple clang version 4.1
(tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared
--enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables
--cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac
--enable-libmp3lame --enable-libxvid --enable-ffplay
libavutil 52. 12.100 / 52. 12.100
libavcodec 54. 80.100 / 54. 80.100
libavformat 54. 49.102 / 54. 49.102
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 28.102 / 3. 28.102
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffe3900f800] Format mov,mp4,m4a,3gp,3g2,mj2
probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffe3900f800] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffe3900f800] File position before
avformat_find_stream_info() is 8447
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffe3900f800] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffe3900f800] File position after
avformat_find_stream_info() is 746703
Guessed Channel Layout for Input Stream #0.2 : stereo
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fcp_capture.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2012-11-28 08:06:53
Duration: 00:00:00.07, start: 0.100434, bitrate: 173589 kb/s
Stream #0:0(eng), 1, 1/2997: Video: rawvideo (2vuy / 0x79757632),
uyvy422, 720x486, 66983 kb/s, 11.96 fps, 7.47 tbr, 2997 tbn, 2997 tbc
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
timecode : 00:59:14;24
Stream #0:1(eng), 0, 1/2997: Subtitle: eia_608 (c608 / 0x38303663)
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
Stream #0:2(eng), 4, 1/48000: Audio: pcm_s24le (in24 / 0x34326E69),
48000 Hz, stereo, s32, 2304 kb/s
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
Stream #0:3(eng), 4, 1/48000: Audio: pcm_s24le (in24 / 0x34326E69),
48000 Hz, mono, s32, 1152 kb/s
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
Stream #0:4(eng), 4, 1/48000: Audio: pcm_s24le (in24 / 0x34326E69),
48000 Hz, mono, s32, 1152 kb/s
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
Stream #0:5(eng), 0, 1/2997: Data: none (tmcd / 0x64636D74)
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
timecode : 00:59:14;24
Output #0, mov, to 'output.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
encoder : Lavf54.49.102
Stream #0:0(eng), 0, 1/30000: Video: rawvideo (2vuy / 0x79757632),
uyvy422, 720x486, q=2-31, 66983 kb/s, 11.96 fps, 30k tbn, 29.97 tbc
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
timecode : 00:59:14;24
Stream #0:1(eng), 0, 1/48000: Audio: pcm_s24le (in24 / 0x34326E69),
48000 Hz, stereo, 2304 kb/s
Metadata:
creation_time : 2012-11-28 08:06:53
handler_name : Apple Alias Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
No more output streams to write to, finishing.
frame= 2 fps=0.0 q=-1.0 Lsize= 1388kB time=00:00:00.16
bitrate=67994.3kbits/s
video:1367kB audio:19kB subtitle:0 global headers:0kB muxing overhead
0.135388%
Statistics: 1470868 bytes read, 2 seeks
}}}
Patches should be submitted to the ffmpeg-devel mailing list and not this
bug tracker.
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2044>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list