<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><font size="-1"><tt>What I know about muxers is:<br>
</tt></font></p>
<p><font size="-1"><tt>MP4,MOV - yes<br>
MPGÂ Â Â Â - yes<br>
AVIÂ Â Â Â - No, but there are hacks to use a very short "frame
duration" (very high framerate) plus repeat frames to simulate
VFR in the wild<br>
FLVÂ Â Â Â - ?<br>
DVÂ Â Â Â Â - No<br>
MKVÂ Â Â Â - Yes<br>
OGGÂ Â Â Â - Codec specific. In the ogg spec "granule positions"
(timestamps) are defined by the corresponding codec spec. But
in general, No.<br>
RMÂ Â Â Â Â - ?<br>
SWFÂ Â Â Â - ?<br>
WEBMÂ Â Â - Yes</tt></font></p>
<p><font size="-1"><tt>Encoders care about the framerate for the
purposes of rate control. I.e. to reach a specified bitrate
or quality metric, they need to factor in the framerate. Some
encoders do not have a rate control model that can accommodate
variable framerate (e.g. theora). So if you try to feed such
an encoder variable framerate video, you will not get the
expected bitrate or quality output. h.264 does support
variable frame rate and the encoder needs to be told what the
minimum allowed frame duration will be. This information is
recorded in the h.264 elementary stream along with a flag
indicating that the stream is variable framerate.<br>
</tt></font></p>
<p><font size="-1"><tt>The 1/fps trick you mention is essentially
the AVI hack I pointed out above although something larger
than 1/fps (with frame dropping where necessary) is probably a
better choice. Note that the OGG format also has a very
efficient (1 byte) repeat frame that can be used in such
cases. Not all formats have an efficient way to represent
repeat frames, and this trick will work poorly on such
formats.<br>
</tt></font></p>
<br>
<div class="moz-cite-prefix">On 01/22/2017 10:00 PM, YIRAN LI wrote:<br>
</div>
<blockquote
cite="mid:CAN16yyPhFOh-qziG66sJweJcJuMWpg19-u+yZ4_n1cyDs3LmNA@mail.gmail.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">
<div class="gmail_default" style="font-family:georgia,serif">Hi
guys,</div>
<div class="gmail_default" style="font-family:georgia,serif"><br>
</div>
<div class="gmail_default" style="font-family:georgia,serif">Could
anyone help to sort out among following formats, which ones
support variable frame rate so that video frames in the file
can have variable duration? </div>
<div class="gmail_default">
<ul style="">
<li style=""><font face="georgia, serif">MP4, MOV</font></li>
<li style=""><font face="georgia, serif">MPG</font></li>
<li style=""><font face="georgia, serif">AVI</font></li>
<li style=""><font face="georgia, serif">FLV</font></li>
<li style=""><font face="georgia, serif">DV</font></li>
<li style=""><font face="georgia, serif">MKV</font></li>
<li style=""><font face="georgia, serif">OGG</font></li>
<li style=""><font face="georgia, serif">RM</font></li>
<li style=""><font face="georgia, serif">SWF</font></li>
<li style=""><font face="georgia, serif">WEBM</font></li>
</ul>
</div>
<div class="gmail_default" style="font-family:georgia,serif"><br>
</div>
<div class="gmail_default" style="font-family:georgia,serif">Is
variable frame rate only a muxer thing so that I don't need to
worry about encoder can't encode incoming frames at different
intervals? If a muxer can't handle frames with variable
duration then I must set a fps, and frame duration must be
1/fps?</div>
<div class="gmail_default" style="font-family:georgia,serif"><br>
</div>
<div class="gmail_default" style="font-family:georgia,serif">Thanks
for help</div>
<div class="gmail_default" style="font-family:georgia,serif"><br>
</div>
<div class="gmail_default" style="font-family:georgia,serif"><br>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Libav-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a>
<a class="moz-txt-link-freetext" href="http://ffmpeg.org/mailman/listinfo/libav-user">http://ffmpeg.org/mailman/listinfo/libav-user</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="120">--
John GnuPG fingerprint: D0EC B3DB C372 D1F1 0B01 83F0 49F1 D7B2 60D4 D0F7
</pre>
</body>
</html>