On 8/19/2013 3:03 AM, Anshul wrote:
On 08/19/2013 03:18 PM, Andrey Mochenov wrote:
Hi,
Thank you for your answer.
I suppose, IDR stands for Instantaneous Decoding Refresh.
Please, explain: what do you mean under "set encoder with all idr"?

What settings I need to use?
Andrey.
On Mon, Aug 19, 2013 at 10:48 AM, Anshul maheshwari <[email protected] <mailto:[email protected]>> wrote:

    Please dont top post over here

    Try to set encoder with all idr,  that may give you const duration

    On Aug 15, 2013 4:59 PM, "Andrey Mochenov" <[email protected]
    <mailto:[email protected]>> wrote:
    >
    > Hi,
    >
    > We are using FFmpeg libraries git-ee94362 libavformat v55.2.100.
    > Our purpose is to mux two streams (video and audio) into M3U8
    playlist using HLS.
    > In addition, we want the duration of every TS segment file be
    exactly 3.0 sec (frame rate is 25 fps).
    > To reach it, we are trying to set several options and
    properties, namely:
    > - segment_time
    > - keyint_min
    > - scenechange_threshold
    > - gop_size
    > - force_key_frames.
    >
    > And our code looks as below:
    >
    > AVCodecContext *codec_ctx = NULL;
    > AVFormatContext *ofmt_ctx = NULL;
    > int ret = 0, gopSize = (int)(3.0 * 25);   // 3 sec * 25 fps
    >
    > // ofmt_ctx and codec_ctx initialization and filling are OK, but:
    >
    > codec_ctx->time_base.num = 1;
    > codec_ctx->time_base.den = 25 // fps
    >
    > // It seems, that the following three lines have no effect
    without explisit setting of the "hls_time" property
    > codec_ctx->keyint_min = gopSize;       // in FFMpeg
    application, the corresponding option is "-keyint_min 3"
    > codec_ctx->scenechange_threshold = 0;  // in FFMpeg
    application, the corresponding option is "-sc_threshold 0"
    > codec_ctx->gop_size = gopSize;         // in FFMpeg
    application, the corresponding option is "-g 3"
    >
    > ret = av_opt_set_double(ofmt_ctx, "hls_time", 3.0,
    AV_OPT_SEARCH_CHILDREN);
    >
    > // Any of the following lines causes "Option not found" error.
    > ret = av_opt_set(codec_ctx->priv_data, "profile", "main",
    AV_OPT_SEARCH_CHILDREN);
    > ret = av_opt_set(codec_ctx->priv_data, "preset", "ultrafast",
    AV_OPT_SEARCH_CHILDREN);
    > ret = av_opt_get(ofmt_ctx, "segment_time",
    AV_OPT_SEARCH_CHILDREN, &str);
    > ret = av_opt_set((ofmt_ctx, "segment_time", "3.0",
    AV_OPT_SEARCH_CHILDREN);
    >
    > Anyway, the TS files durations are different, (~2-3 sec), and
    not EXACTLY 3.0 sec.
    > Our question: What is the best way to solve the problem?
    >
    > Andrey Mochenov.
    >
    >

    > _______________________________________________
    > Libav-user mailing list
    > [email protected] <mailto:[email protected]>
    > http://ffmpeg.org/mailman/listinfo/libav-user
    >

    Please dont top post over here

    Try to set encoder with all idr,  that may give you const duration


    _______________________________________________
    Libav-user mailing list
    [email protected] <mailto:[email protected]>
    http://ffmpeg.org/mailman/listinfo/libav-user




_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user


*I am reminding you again, please don't top post on this mailing list.

*While cutting the video , segmenter over ride the segement-time if at that time IDR is not the frame. 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,

-Anshul





_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

It also can help to use a higher version in the m3u8 file list so that you can specify decimals for duration.If your segment is 200 mills short or longer, the client is able to anticipate gaps, and initiate the next stream-pull earlier or later. Seemed to me while segmenting live streams, that as long as I did the chop at interval of 4 or 8 seconds, that my segments could be shorter or longer and play-out is smooth as long as I was honest in the playlist about the actual duration of each entry.


Andy


_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to