= {
    { 
"adaptation_sets", 
"Adaptation sets. Syntax: id=0,streams=0,1,2 id=1,streams=3,4 and so on", 
OFFSET(adaptation_sets), 
AV_OPT_TYPE_STRING, { 0 }, 0, 0, 
AV_OPT_FLAG_ENCODING_PARAM },
    { 
"window_size", 
"number of segments kept in the manifest", 
OFFSET(window_size), 
AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, 
E },
    { 
"extra_window_size", 
"number of segments kept outside of the manifest before removing from disk", 
OFFSET(extra_window_size), 
AV_OPT_TYPE_INT, { .i64 = 5 }, 0, INT_MAX, E },
    { 
"min_seg_duration", 
"minimum segment duration (in microseconds)", 
OFFSET(min_seg_duration), 
AV_OPT_TYPE_INT, { .i64 = 5000000 }, 0, INT_MAX, E },
    { 
"remove_at_exit", 
"remove all segments when finished", 
OFFSET(remove_at_exit), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
    { 
"use_template", 
"Use SegmentTemplate instead of SegmentList", 
OFFSET(use_template), 
AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, E },
    { 
"use_timeline", 
"Use SegmentTimeline in SegmentTemplate", 
OFFSET(use_timeline), 
AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, E },
    { 
"single_file", 
"Store all segments in one file, accessed using byte ranges", 
OFFSET(single_file), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
    { 
"single_file_name", 
"DASH-templated name to be used for baseURL. Implies storing all segments in one file, accessed using byte ranges", 
OFFSET(single_file_name), 
AV_OPT_TYPE_STRING, { .str = 
NULL }, 0, 0, E },
    { 
"init_seg_name", 
"DASH-templated name to used for the initialization segment", 
OFFSET(init_seg_name), 
AV_OPT_TYPE_STRING, {.str = 
"init-stream$RepresentationID$.m4s"}, 0, 0, E },
    { 
"media_seg_name", 
"DASH-templated name to used for the media segments", 
OFFSET(media_seg_name), 
AV_OPT_TYPE_STRING, {.str = 
"chunk-stream$RepresentationID$-$Number%05d$.m4s"}, 0, 0, E },
    { 
"utc_timing_url", 
"URL of the page that will return the UTC timestamp in ISO format", 
OFFSET(utc_timing_url), 
AV_OPT_TYPE_STRING, { 0 }, 0, 0, E },
    { 
"http_persistent", 
"Use persistent HTTP connections", 
OFFSET(http_persistent), 
AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, E },
    { 
"hls_playlist", 
"Generate HLS playlist files(master.m3u8, media_%d.m3u8)", 
OFFSET(hls_playlist), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
    { 
"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 },
}
#define AV_OPT_FLAG_ENCODING_PARAM
a generic parameter which can be set by the user for muxing or encoding