[FFmpeg-trac] #110(avformat:new): MP4 Muxer gives incorrect frame duration with AAC

FFmpeg trac at avcodec.org
Mon Apr 25 03:52:00 CEST 2011


#110: MP4 Muxer gives incorrect frame duration with AAC
------------------------+------------------------
 Reporter:  thebombzen  |        Type:  defect
   Status:  new         |    Priority:  important
Component:  avformat    |     Version:  git
 Keywords:              |  Blocked By:
 Blocking:              |  Reproduced:  0
 Analyzed:  0           |
------------------------+------------------------
 The frame durations of an MP4/AAC file are inaccurate according to FAAD. I
 encoded an M4A file with

 ffmpeg -v 9 -loglevel 99 -i IJustHadSex.m4v -vn -acodec copy -map_metadata
 0:0 "I Just Had Sex.m4a"

 The full uncut output is this:

 FFmpeg version git-N-29123-g256c5b0, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Apr 14 2011 21:24:32 with gcc 4.7.0 20110402 (experimental)
   configuration: --enable-cross-compile --arch=x86_64 --target-os=mingw32
 --cross-prefix=/usr/x86_64-w64-mingw32/bin/
 --prefix=/usr/local/x86_64-w64-mingw32 --pkg-config=pkg-config --cpu=i7
   libavutil    50. 40. 1 / 50. 40. 1
   libavcodec   52.119. 0 / 52.119. 0
   libavformat  52.107. 0 / 52.107. 0
   libavdevice  52.  4. 0 / 52.  4. 0
   libavfilter   1. 78. 0 /  1. 78. 0
   libswscale    0. 13. 0 /  0. 13. 0
 [NULL @ 000000000033A770] Probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000033A770] ISO: File Type Major Brand:
 M4V
 [h264 @ 000000000033B7B0] Unsupported bit depth: 0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000033A770] All info found

 Seems stream 0 codec frame rate differs from container frame rate: 47.96
 (1199/25) -> 23.98 (1199/50)
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'IJustHadSex.m4v':
   Metadata:
     major_brand     : M4V
     minor_version   : 512
     compatible_brands: isomiso2avc1
     creation_time   : 1970-01-01 00:00:00
     encoder         : Lavf52.104.0
     title           : I Just Had Sex (feat. Akon)
     artist          : The Lonely Island
     album           : Incredibad
   Duration: 00:02:55.31, start: 0.000000, bitrate: 1306 kb/s
     Stream #0.0(und), 2, 1/1199: Video: h264 (Constrained Baseline),
 yuv420p, 640x360 [PAR 1:1 DAR 16:9], 25/1199, 1171 kb/s, 23.98 fps, 23.98
 tbr, 1199 tbn, 47.96 tbc
     Metadata:
       creation_time   : 1970-01-01 00:00:00
     Stream #0.1(und), 1, 1/44100: Audio: aac, 44100 Hz, stereo, s16, 128
 kb/s
     Metadata:
       creation_time   : 1970-01-01 00:00:00
 Output #0, ipod, to 'I Just Had Sex.m4a':
   Metadata:
     major_brand     : M4V
     minor_version   : 512
     compatible_brands: isomiso2avc1
     creation_time   : 1970-01-01 00:00:00
     album           : Incredibad
     title           : I Just Had Sex (feat. Akon)
     artist          : The Lonely Island
     encoder         : Lavf52.107.0
     Stream #0.0(und), 0, 1/44100: Audio: aac, 44100 Hz, stereo, 128 kb/s
     Metadata:
       creation_time   : 1970-01-01 00:00:00
 Stream mapping:
   Stream #0.1 -> #0.0
 Press [q] to stop encoding
 size=    2845kB time=175.31 bitrate= 132.9kbits/s

 video:0kB audio:2739kB global headers:0kB muxing overhead 3.847214%

 The full ffmpeg -v 9 -loglevel 99 -i for the new input file is this:

 FFmpeg version git-N-29123-g256c5b0, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Apr 14 2011 21:24:32 with gcc 4.7.0 20110402 (experimental)
   configuration: --enable-cross-compile --arch=x86_64 --target-os=mingw32
 --cross-prefix=/usr/x86_64-w64-mingw32/bin/
 --prefix=/usr/local/x86_64-w64-mingw32 --pkg-config=pkg-config --cpu=i7
   libavutil    50. 40. 1 / 50. 40. 1
   libavcodec   52.119. 0 / 52.119. 0
   libavformat  52.107. 0 / 52.107. 0
   libavdevice  52.  4. 0 / 52.  4. 0
   libavfilter   1. 78. 0 /  1. 78. 0
   libswscale    0. 13. 0 /  0. 13. 0
 [NULL @ 00000000014BA410] Probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 00000000014BA410] ISO: File Type Major Brand:
 M4A
 [mov,mp4,m4a,3gp,3g2,mj2 @ 00000000014BA410] All info found
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'I Just Had Sex.m4a':
   Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: isomiso2
     creation_time   : 1970-01-01 00:00:00
     title           : I Just Had Sex (feat. Akon)
     artist          : The Lonely Island
     album           : Incredibad
     encoder         : Lavf52.107.0
   Duration: 00:02:55.31, start: 0.000000, bitrate: 132 kb/s
     Stream #0.0(und), 1, 1/44100: Audio: aac, 44100 Hz, stereo, s16, 128
 kb/s
     Metadata:
       creation_time   : 1970-01-01 00:00:00
 At least one output file must be specified

 However, FAAD claims that the frame duration is inaccurate for the MP4,
 and that it has to use the duration listed in the AAC bitstream instead.
 Furthermore, iTunes says the file has a duration of 789:57:13, which is
 iTunes's way of saying Error!

 The FAAD output is this:

  *********** Ahead Software MPEG-4 AAC Decoder V2.7 ******************

  Build: Jun 14 2010
  Copyright 2002-2004: Ahead Software AG
  http://www.audiocoding.com
  Floating point version

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License.

 **************************************************************************

 I Just Had Sex.m4a file info:

 LC AAC  175.139 secs, 2 ch, 44100 Hz

 title: I Just Had Sex (feat. Akon)
 artist: The Lonely Island
 album: Incredibad
 tool: Lavf52.107.0

   ---------------------
  | Config:  2 Ch       |
   ---------------------
  | Ch |    Position    |
   ---------------------
  | 00 | Left front     |
  | 01 | Right front    |
   ---------------------

 MP4 seems to have incorrect frame duration, using values from AAC data.
 Decoding I Just Had Sex.m4a took:  0.84 sec. 208.00% real-time.

 Notice the MP4 error.

 This is important because iTunes won't play the resulting file.

-- 
Ticket URL: <http://ffmpeg.org/trac/ffmpeg/ticket/110>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list