[Libav-user] AVStream->time_base not functional
Sampsa Riikonen
sampsa.riikonen at iki.fi
Mon Nov 21 12:35:38 EET 2016
Hi,
At the current development branch, setting
AVStream->time_base
does not have any effect on the final stream time base anymore..!
(in earlier versions there where the codec time base and the stream time
base, and one had to do "av_packet_rescale_ts" when giving the AVPackets
to the muxer).
Whatever I put in the stream time base, the matroska muxer always writes
into the file header (you can check this with "mkvinfo -g filename.mkv")
like this:
Track => default duration => 1000 ms ("1000 frames/fields per second for
a video track")
Timestamps for individual frames are ok, but media players, live vlc,
fail miserably when seeking such a file.
.. in order for them to do decent seeking, they need the timebase to
reflect the actual frame rate of the video stream (i.e. for 20 fps
"track => default duration => 40 ms").
Unfortunately, in "avformat.h":
-------
...
* etc.) as known. The @ref AVStream.time_base "stream timebase" should
* be set to the timebase that the caller desires to use for this
stream (note
* that the timebase actually used by the muxer can be different, as
will be
* described later).
...
* information on the packets sent to the muxer must be in the corresponding
* AVStream's timebase. That timebase is set by the muxer (in the
* avformat_write_header() step) and may be different from the timebase
* requested by the caller.
-------
Why was this implemented? Is there any way to force the timebase to a
certain value?
Regards,
Sampsa
More information about the Libav-user
mailing list