#2958 closed defect (fixed)
Transcoding some iPhone camera roll videos outputs excessive frame-rate
Reported by: | Neal McConnell | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | mov fps |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
OS: CentOS 6.3 64-bit
Build: N-55797-g535d9a9
Obtained from: http://ffmpeg.gusari.org/static/64bit/
Summary of the bug:
I am attempting to transcode several MOVs that are directly from an iPhone4's camera roll folder. I do not specify frame-rate, since the videos are variable frame-rate (24,30 fps). For a few of the MOVs, the transcoded h264 output has a declared fps of 600, causing the h264 level to be very high, which means that some players reject playback. I noticed for these MOV files that FFmpeg, in the input stats, reports "tbr 600".
I checked the video timestamps of the particular files using FFprobe. All PTS differences don't amount to anything more than 31 fps.
How to reproduce:
Use the following source
https://www.dropbox.com/s/xji1akd6tuuravd/from_iphone4.MOV
with the following command:
% ffmpeg -report -i from_iphone4.MOV -c:v libx264 -crf 23 -an shouldbe30fps.mp4
I will attached the report, as the console output is annoyingly long.
Please note that this entry is very similar to issue #2451.
Attachments (1)
Change History (6)
by , 11 years ago
Attachment: | 2958_report.log added |
---|
comment:1 by , 11 years ago
Keywords: | mov added |
---|---|
Version: | unspecified → git-master |
For future tickets: If a problem is reproducible without external libraries, please don't use them.
If you are correct and the input video is vfr, I don't think anything can be done (except fixing vfr in mov).
$ ffmpeg -i from_iphone4.MOV -q:v 2 -vcodec mpeg4 -strict -2 -acodec aac out.mov ffmpeg version N-56261-gfc47726 Copyright (c) 2000-2013 the FFmpeg developers built on Sep 13 2013 17:39:25 with gcc 4.7 (SUSE Linux) configuration: --enable-gpl libavutil 52. 43.100 / 52. 43.100 libavcodec 55. 31.101 / 55. 31.101 libavformat 55. 16.102 / 55. 16.102 libavdevice 55. 3.100 / 55. 3.100 libavfilter 3. 84.100 / 3. 84.100 libswscale 2. 5.100 / 2. 5.100 libswresample 0. 17.103 / 0. 17.103 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'from_iphone4.MOV': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2013-01-13 22:11:45 model : iPhone 4 model-eng : iPhone 4 encoder : 6.0.1 encoder-eng : 6.0.1 date : 2013-01-13T17:11:45-0500 date-eng : 2013-01-13T17:11:45-0500 make : Apple make-eng : Apple Duration: 00:00:16.87, start: 0.000000, bitrate: 10805 kb/s Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 10718 kb/s, 24.33 fps, 600 tbr, 600 tbn, 1200 tbc (default) Metadata: creation_time : 2013-01-13 22:11:45 handler_name : Core Media Data Handler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default) Metadata: creation_time : 2013-01-13 22:11:46 handler_name : Core Media Data Handler Output #0, mov, to 'out.mov': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt make-eng : Apple model : iPhone 4 model-eng : iPhone 4 make : Apple encoder-eng : 6.0.1 date : 2013-01-13T17:11:45-0500 date-eng : 2013-01-13T17:11:45-0500 encoder : Lavf55.16.102 Stream #0:0(und): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1280x720, q=2-31, 200 kb/s, 19200 tbn, 600 tbc (default) Metadata: creation_time : 2013-01-13 22:11:45 handler_name : Core Media Data Handler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 128 kb/s (default) Metadata: creation_time : 2013-01-13 22:11:46 handler_name : Core Media Data Handler Stream mapping: Stream #0:0 -> #0:0 (h264 -> mpeg4) Stream #0:1 -> #0:1 (aac -> aac) Press [q] to stop, [?] for help frame=10110 fps=697 q=2.0 Lsize= 208383kB time=00:00:16.90 bitrate=100985.7kbits/s dup=9699 drop=0 video:208062kB audio:268kB subtitle:0 global headers:0kB muxing overhead 0.025869%
Workaround is to specify an output frame rate:
$ ffmpeg -i from_iphone4.MOV -q:v 2 -vcodec mpeg4 -strict -2 -acodec aac -r 24 out24.mov ffmpeg version N-56261-gfc47726 Copyright (c) 2000-2013 the FFmpeg developers built on Sep 13 2013 17:39:25 with gcc 4.7 (SUSE Linux) configuration: --enable-gpl libavutil 52. 43.100 / 52. 43.100 libavcodec 55. 31.101 / 55. 31.101 libavformat 55. 16.102 / 55. 16.102 libavdevice 55. 3.100 / 55. 3.100 libavfilter 3. 84.100 / 3. 84.100 libswscale 2. 5.100 / 2. 5.100 libswresample 0. 17.103 / 0. 17.103 libpostproc 52. 3.100 / 52. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'from_iphone4.MOV': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2013-01-13 22:11:45 model : iPhone 4 model-eng : iPhone 4 encoder : 6.0.1 encoder-eng : 6.0.1 date : 2013-01-13T17:11:45-0500 date-eng : 2013-01-13T17:11:45-0500 make : Apple make-eng : Apple Duration: 00:00:16.87, start: 0.000000, bitrate: 10805 kb/s Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 10718 kb/s, 24.33 fps, 600 tbr, 600 tbn, 1200 tbc (default) Metadata: creation_time : 2013-01-13 22:11:45 handler_name : Core Media Data Handler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default) Metadata: creation_time : 2013-01-13 22:11:46 handler_name : Core Media Data Handler Output #0, mov, to 'out24.mov': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt make-eng : Apple model : iPhone 4 model-eng : iPhone 4 make : Apple encoder-eng : 6.0.1 date : 2013-01-13T17:11:45-0500 date-eng : 2013-01-13T17:11:45-0500 encoder : Lavf55.16.102 Stream #0:0(und): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1280x720, q=2-31, 200 kb/s, 12288 tbn, 24 tbc (default) Metadata: creation_time : 2013-01-13 22:11:45 handler_name : Core Media Data Handler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 128 kb/s (default) Metadata: creation_time : 2013-01-13 22:11:46 handler_name : Core Media Data Handler Stream mapping: Stream #0:0 -> #0:0 (h264 -> mpeg4) Stream #0:1 -> #0:1 (aac -> aac) Press [q] to stop, [?] for help frame= 407 fps=248 q=2.0 Lsize= 48379kB time=00:00:16.95 bitrate=23370.3kbits/s dup=0 drop=4 video:48100kB audio:268kB subtitle:0 global headers:0kB muxing overhead 0.022950%
comment:2 by , 11 years ago
The video is indeed VFR. Looking at the sample to time table, one can see sample durations that vary between 23,x and 30 FPS.
Seems to be a known issue: https://discussions.apple.com/thread/2480522?start=0&tstart=0
comment:3 by , 11 years ago
Keywords: | fps added |
---|---|
Reproduced by developer: | set |
Status: | new → open |
Different sample from ticket #3399 is in http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket3399/
comment:4 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
comment:5 by , 11 years ago
Component: | undetermined → avformat |
---|
Report output from trancode