[Libav-user] pkt duration in MKV

YIRAN LI mrfun.china at gmail.com
Mon Jan 30 08:02:43 EET 2017


Hi guys,

I'm using ffmpeg to mux variable framerate source to MKV format, each frame
I send to av_write_frame has correct timestamp and duration set.

Because it's variable frame rate source, I set codecctx->time_base = 1/1000
(because timestamp is in miliseconds)

The generated MKV file however, if dumped by ffprobe -show_frames
-select_streams v, pkt_duration = 1. (thats 1/1000 second, not the duration
I set to avframe).

After some investigation, *I found that video packet is written
by mkv_write_block, which always write simple block instead of block group,
so that blockduration (which is not a child of simple block) is never
written.*

*But the mkv spec says: Block duration is mandatory when DefaultDuration is
set for the track.
https://www.matroska.org/technical/specs/index.html#Cluster
<https://www.matroska.org/technical/specs/index.html#Cluster>*
*Ffmpeg does write the default track duration in mkv_write_track,but
doesn't write block duration, is that a possible bug?*

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20170130/926776ac/attachment.html>


More information about the Libav-user mailing list