<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>