[FFmpeg-trac] #2658(avformat:new): Written mp4 with h264/AAC doesnt use fps as video timebase (discrepancy with libav) (was: Written mp4 with h264/AAC unplayable (discrepancy with libav))

FFmpeg trac at avcodec.org
Fri Jan 31 16:11:15 CET 2014


#2658: Written mp4 with h264/AAC doesnt use fps as video timebase (discrepancy
with libav)
------------------------------------+------------------------------------
             Reporter:  Lastique    |                    Owner:
                 Type:  defect      |                   Status:  new
             Priority:  normal      |                Component:  avformat
              Version:  1.2.1       |               Resolution:
             Keywords:  mov, libav  |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+------------------------------------
Changes (by michael):

 * keywords:  mov => mov, libav


Comment:

 Replying to [comment:3 Lastique]:
 > Replying to [comment:1 cehoyos]:
 > > Please also test current git head.
 >
 > The latest snapshot behavior is the same.
 >
 > > Is the problem also reproducible with ffmpeg (the application) or only
 if you use library calls from your application?
 >
 > We only use the library API in our application, and I'm not sure how I
 can reproduce the same library setup from ffmpeg command line.
 >
 >
 > Replying to [comment:2 heleppkes]:
 > > Note that it is possible for avformat to change the stream timebase
 from the one you specified when it thinks that another one is more
 appropriate for the format, so you should always rescale your timestamps
 to the stream timebase, or your assumption may go wrong.
 >
 > Yes, this seems to be the problem. libav does not modify time_base we
 set in the context initialization, and ffmpeg sets video time_base to be
 equal to the audio time_base. If we use the time_base set by ffmpeg for
 rescaling then the written file is playable. Thanks for the suggestion.
 >
 > Frankly, this is an odd feature. Why would the library change settings
 requested by the caller?

 To ensure the timebase is precisse enough to allow precissely specifying
 timestamps of frames. Also some containers like mpeg-ps/ts use a fixed
 90khz timebase that cannot be changed.
 Also note, the mov/mp4 muxers have an option to force a specific video
 timebase (video_track_timescale) if you want a specific course grained
 one.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/2658#comment:4>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list