New submission from Dave Rice <[email protected]>:
When utilizing -vcodec copy from and to Quicktime container there is a slight
duration discrepancy. Uploaded files to mplayer ftp in stts_copy directory. I
only uploaded the files referred to in the first test since they were smaller,
but can provide more if helpful.
Command used:
ffmpeg -y -i stts_copy.mov -vcodec copy -an stts_copy_out.mov
FFmpeg version SVN-r25455, Copyright (c) 2000-2010 the FFmpeg developers
built on Oct 12 2010 17:06:38 with gcc 4.2.1 (Apple Inc. build 5664)
configuration: --enable-libopenjpeg
libavutil 50.32. 3 / 50.32. 3
libavcore 0. 9. 1 / 0. 9. 1
libavcodec 52.92. 0 / 52.92. 0
libavformat 52.81. 0 / 52.81. 0
libavdevice 52. 2. 2 / 52. 2. 2
libavfilter 1.51. 1 / 1.51. 1
libswscale 0.12. 0 / 0.12. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10100b000] Could not find codec parameters (Data:
c608 / 0x38303663, 3 kb/s)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x10100b000] Could not find codec parameters (Data:
tmcd / 0x64636D74, 0 kb/s)
Seems stream 0 codec frame rate differs from container frame rate: 2997.00
(2997/1) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'stts_copy.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
Duration: 00:00:09.95, start: 0.040374, bitrate: 3070 kb/s
Stream #0.0(eng): Video: v210, yuv422p16le, 720x486, 171765 kb/s, 23.01 fps,
29.97 tbr, 2997 tbn, 2997 tbc
Stream #0.1(eng): Data: c608 / 0x38303663, 3 kb/s
Stream #0.2(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.3(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.4(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.5(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.6(eng): Data: tmcd / 0x64636D74, 0 kb/s
Output #0, mov, to 'stts_copy_out.mov':
Metadata:
encoder : Lavf52.81.0
Stream #0.0(eng): Video: v210, yuv422p16le, 720x486, q=2-31, 171765 kb/s,
2997 tbn, 2997 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 4 fps= 0 q=-1.0 Lsize= 3646kB time=0.14 bitrate=212101.6kbits/s
video:3645kB audio:0kB global headers:0kB muxing overhead 0.018915%
Both source and output files are 4 frames.
In source the duration of each frame is:
frame1 = 221/2997
frame2 = 100/2997
frame3 = 100/2997
frame4 = 100/2997
In output file:
frame1 = 221/2997
frame2 = 100/2997
frame3 = 100/2997
frame4 = 221/2997
Thus the video track of the output is 121/2997 longer than the original.
In a second test, I transcoded a v210 Quicktime file to an ffv1 Quicktime file.
In the input the frameDurations are:
frame1 = 221/2997
subsequent_frames = 100/2997
In the output the frame durations are:
frame1 = 2002/30000 (time scale change and frame duration rounding?)
subsequent_frames = 1001/30000
ffmpeg -i DHC36.v210.pcm.mov -coder 1 -vcodec ffv1 -an out.mov
FFmpeg version SVN-r25455, Copyright (c) 2000-2010 the FFmpeg developers
built on Oct 12 2010 17:06:38 with gcc 4.2.1 (Apple Inc. build 5664)
configuration: --enable-libopenjpeg
libavutil 50.32. 3 / 50.32. 3
libavcore 0. 9. 1 / 0. 9. 1
libavcodec 52.92. 0 / 52.92. 0
libavformat 52.81. 0 / 52.81. 0
libavdevice 52. 2. 2 / 52. 2. 2
libavfilter 1.51. 1 / 1.51. 1
libswscale 0.12. 0 / 0.12. 0
Seems stream 0 codec frame rate differs from container frame rate: 2997.00
(2997/1) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'DHC36.v210.pcm.mov':
Duration: 00:00:09.98, start: 0.040375, bitrate: 228970 kb/s
Stream #0.0(eng): Video: v210, yuv422p16le, 720x486, 222820 kb/s, 29.85 fps,
29.97 tbr, 2997 tbn, 2997 tbc
Stream #0.1(eng): Data: c608 / 0x38303663, 4 kb/s
Stream #0.2(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.3(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.4(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.5(eng): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.6(eng): Data: tmcd / 0x64636D74, 0 kb/s
File 'out.mov' already exists. Overwrite ? [y/N] y
[buffer @ 0x100c02960] w:720 h:486 pixfmt:yuv422p16le
[mov @ 0x10102ac00] Warning, using MS style video codec tag, the file may be
unplayable!
Output #0, mov, to 'out.mov':
Metadata:
encoder : Lavf52.81.0
Stream #0.0(eng): Video: ffv1, yuv422p16le, 720x486, q=2-31, 200 kb/s, 30k
tbn, 29.97 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 298 fps= 9 q=0.0 Lsize= 105405kB time=9.98 bitrate=86550.1kbits/s
video:105402kB audio:0kB global headers:0kB muxing overhead 0.002948%
----------
messages: 12254
priority: normal
status: new
substatus: new
title: frames duration inconsistency
type: bug
________________________________________________
FFmpeg issue tracker <[email protected]>
<https://roundup.ffmpeg.org/issue2296>
________________________________________________