[FFmpeg-devel] [PATCH v2 3/3] avformat/dashenc: configuring container format options
Jeyapal, Karthick
kjeyapal at akamai.com
Tue May 15 09:21:52 EEST 2018
Pushed.
On 5/7/18 3:28 PM, vdixit at akamai.com wrote:
> From: Vishwanath Dixit <vdixit at akamai.com>
>
> ---
> doc/muxers.texi | 4 ++++
> libavformat/dashenc.c | 7 +++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/doc/muxers.texi b/doc/muxers.texi
> index db81901..e9082a4 100644
> --- a/doc/muxers.texi
> +++ b/doc/muxers.texi
> @@ -282,6 +282,10 @@ corrects that index value.
> Typically this logic is needed in live streaming use cases. The network bandwidth
> fluctuations are common during long run streaming. Each fluctuation can cause
> the segment indexes fall behind the expected real time position.
> + at item -format_options @var{options_list}
> +Set container format (mp4/webm) options using a @code{:} separated list of
> +key=value parameters. Values containing @code{:} special characters must be
> +escaped.
> @end table
>
> @anchor{framecrc}
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index 1dd6333..e27b61c 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -125,6 +125,7 @@ typedef struct DASHContext {
> int streaming;
> int64_t timeout;
> int index_correction;
> + char *format_options_str;
> } DASHContext;
>
> static struct codec_string {
> @@ -1017,6 +1018,11 @@ static int dash_init(AVFormatContext *s)
> av_dict_free(&opts);
> os->init_start_pos = 0;
>
> + if (c->format_options_str) {
> + ret = av_dict_parse_string(&opts, c->format_options_str, "=", ":", 0);
> + if (ret < 0)
> + return ret;
> + }
> if (!strcmp(os->format_name, "mp4")) {
> if (c->streaming)
> av_dict_set(&opts, "movflags", "frag_every_frame+dash+delay_moov", 0);
> @@ -1538,6 +1544,7 @@ static const AVOption options[] = {
> { "streaming", "Enable/Disable streaming mode of output. Each frame will be moof fragment", OFFSET(streaming), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
> { "timeout", "set timeout for socket I/O operations", OFFSET(timeout), AV_OPT_TYPE_DURATION, { .i64 = -1 }, -1, INT_MAX, .flags = E },
> { "index_correction", "Enable/Disable segment index correction logic", OFFSET(index_correction), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
> + { "format_options","set list of options for the container format (mp4/webm) used for dash", OFFSET(format_options_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E},
> { NULL },
> };
>
More information about the ffmpeg-devel
mailing list