<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 08/19/2013 03:18 PM, Andrey Mochenov
      wrote:<br>
    </div>
    <blockquote
cite="mid:CACg7hcuigi-qQS9p+H+zeAa17VO7vkpQpBc30MTi+wm0AtAJOQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Hi,</div>
        <div> </div>
        <div>Thank you for your answer.</div>
        <div>I suppose, IDR stands for <span lang="HE">Instantaneous
            Decoding Refresh.</span></div>
        <div><span lang="HE">
            <div>Please, explain: what do you mean under "set encoder
              with all idr"? </div>
          </span><br>
          What settings I need to use?</div>
        <div> </div>
        <div>Andrey.</div>
        <div> </div>
      </div>
      <div class="gmail_quote">On Mon, Aug 19, 2013 at 10:48 AM, Anshul
        maheshwari <span dir="ltr"><<a moz-do-not-send="true"
            href="mailto:er.anshul.maheshwari@gmail.com" target="_blank">er.anshul.maheshwari@gmail.com</a>></span>
        wrote:<br>
        <blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px
          0.8ex;PADDING-LEFT:1ex" class="gmail_quote">
          <p>
          </p>
          <div>
            <div class="h5">
              <p>Please dont top post over here </p>
              <p>Try to set encoder with all idr,  that may give you
                const duration</p>
            </div>
          </div>
        </blockquote>
        <blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px
          0.8ex;PADDING-LEFT:1ex" class="gmail_quote">
          <div>
            <div class="h5">
              <p>On Aug 15, 2013 4:59 PM, "Andrey Mochenov" <<a
                  moz-do-not-send="true"
                  href="mailto:andrey2067@gmail.com" target="_blank">andrey2067@gmail.com</a>>
                wrote:<br>
                ><br>
                > Hi,<br>
                ><br>
                > We are using FFmpeg libraries git-ee94362
                libavformat v55.2.100.<br>
                > Our purpose is to mux two streams (video and audio)
                into M3U8 playlist using HLS.<br>
                > In addition, we want the duration of every TS
                segment file be exactly 3.0 sec (frame rate is 25 fps).<br>
                > To reach it, we are trying to set several options
                and properties, namely: <br>
                > - segment_time  <br>
                > - keyint_min<br>
                > - scenechange_threshold<br>
                > - gop_size<br>
                > - force_key_frames.<br>
                ><br>
                > And our code looks as below:<br>
                ><br>
                > AVCodecContext *codec_ctx = NULL;<br>
                > AVFormatContext *ofmt_ctx = NULL;<br>
                > int ret = 0, gopSize = (int)(3.0 * 25);   // 3 sec
                * 25 fps<br>
                ><br>
                > // ofmt_ctx and codec_ctx initialization and
                filling are OK, but:<br>
                ><br>
                > codec_ctx->time_base.num = 1;<br>
                > codec_ctx->time_base.den = 25 // fps<br>
                ><br>
                > // It seems, that the following three lines have no
                effect without explisit setting of the "hls_time"
                property<br>
                > codec_ctx->keyint_min = gopSize;       // in
                FFMpeg application, the corresponding option is
                "-keyint_min 3"<br>
                > codec_ctx->scenechange_threshold = 0;  // in
                FFMpeg application, the corresponding option is
                "-sc_threshold 0"<br>
                > codec_ctx->gop_size = gopSize;         // in
                FFMpeg application, the corresponding option is "-g 3"<br>
                ><br>
                > ret = av_opt_set_double(ofmt_ctx, "hls_time", 3.0,
                AV_OPT_SEARCH_CHILDREN);<br>
                ><br>
                > // Any of the following lines causes "Option not
                found" error.<br>
                > ret = av_opt_set(codec_ctx->priv_data,
                "profile", "main", AV_OPT_SEARCH_CHILDREN);<br>
                > ret = av_opt_set(codec_ctx->priv_data, "preset",
                "ultrafast", AV_OPT_SEARCH_CHILDREN);<br>
                > ret = av_opt_get(ofmt_ctx, "segment_time", 
                AV_OPT_SEARCH_CHILDREN, &str);<br>
                > ret = av_opt_set((ofmt_ctx, "segment_time", "3.0",
                AV_OPT_SEARCH_CHILDREN);<br>
                ><br>
                > Anyway, the TS files durations are different, (~2-3
                sec), and not EXACTLY 3.0 sec. <br>
                > Our question: What is the best way to solve the
                problem?<br>
                ><br>
                > Andrey Mochenov.<br>
                ><br>
                ><br>
              </p>
            </div>
          </div>
          > _______________________________________________<br>
          > Libav-user mailing list<br>
          > <a moz-do-not-send="true"
            href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
          > <a moz-do-not-send="true"
            href="http://ffmpeg.org/mailman/listinfo/libav-user"
            target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
          >
          <p>Please dont top post over here </p>
          <p>Try to set encoder with all idr,  that may give you const
            duration</p>
          <br>
          _______________________________________________<br>
          Libav-user mailing list<br>
          <a moz-do-not-send="true" href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a><br>
          <a moz-do-not-send="true"
            href="http://ffmpeg.org/mailman/listinfo/libav-user"
            target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <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>
    <br>
    <b>I am reminding you again, please don't top post on this mailing
      list.<br>
      <br>
    </b>While cutting the video , segmenter over ride the segement-time
    if at that time  IDR is not the frame.<br>
    so if you have less interval between idr, than there are probability
    that segmenter does not over-ride the segment-time. just to verify
    that you are facing the same problem set your encoder IDR interval
    as 0 or 1,<br>
    <br>
    -Anshul<br>
    <br>
    <br>
    <br>
  </body>
</html>