From 8d091975a420e054c5113edef147d5409bca2676 Mon Sep 17 00:00:00 2001 From: lucemia Date: Tue, 14 May 2024 03:27:58 +0000 Subject: [PATCH 1/3] add option cache --- src/ffmpeg/common/schema.py | 4 + src/ffmpeg/parser.py | 9 + src/scripts/cache/FFMpegOptionList/list.json | 1697 ++++++++++++++++++ src/scripts/parse_c/cli.py | 10 +- 4 files changed, 1717 insertions(+), 3 deletions(-) create mode 100644 src/ffmpeg/parser.py create mode 100644 src/scripts/cache/FFMpegOptionList/list.json diff --git a/src/ffmpeg/common/schema.py b/src/ffmpeg/common/schema.py index 5659625d..521902f7 100644 --- a/src/ffmpeg/common/schema.py +++ b/src/ffmpeg/common/schema.py @@ -306,3 +306,7 @@ def is_global_option(self) -> bool: @property def is_support_stream_specifier(self) -> bool: return bool(self.flags & FFMpegOptionFlag.OPT_SPEC) + +@dataclass(frozen=True, kw_only=True) +class FFMpegOptionList: + options: tuple[FFMpegOption, ...] \ No newline at end of file diff --git a/src/ffmpeg/parser.py b/src/ffmpeg/parser.py new file mode 100644 index 00000000..3f0ad000 --- /dev/null +++ b/src/ffmpeg/parser.py @@ -0,0 +1,9 @@ +import shlex + + +def parse(cmd: str): + arguments = shlex.split(cmd) + + assert arguments[0] == "ffmpeg" + + \ No newline at end of file diff --git a/src/scripts/cache/FFMpegOptionList/list.json b/src/scripts/cache/FFMpegOptionList/list.json new file mode 100644 index 00000000..da28bef2 --- /dev/null +++ b/src/scripts/cache/FFMpegOptionList/list.json @@ -0,0 +1,1697 @@ +{ + "__class__": "ffmpeg.common.schema.FFMpegOptionList", + "options": [ + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "L", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show license", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "h", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show help", + "argname": "topic", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "?", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show help", + "argname": "topic", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "help", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show help", + "argname": "topic", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "-help", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show help", + "argname": "topic", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "version", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show version", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "buildconf", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show build configuration", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "formats", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available formats", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "muxers", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available muxers", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "demuxers", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available demuxers", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "devices", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available devices", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "codecs", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available codecs", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "decoders", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available decoders", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "encoders", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available encoders", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "bsfs", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available bit stream filters", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "protocols", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available protocols", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filters", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available filters", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "pix_fmts", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available pixel formats", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "layouts", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show standard channel layouts", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sample_fmts", + "type": "OPT_TYPE_FUNC", + "flags": 2, + "help": "show available audio sample formats", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dispositions", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available stream dispositions", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "colors", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available color names", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "loglevel", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "set logging level", + "argname": "loglevel", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "v", + "type": "OPT_TYPE_FUNC", + "flags": 1, + "help": "set logging level", + "argname": "loglevel", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "report", + "type": "OPT_TYPE_FUNC", + "flags": 4, + "help": "generate a report", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "max_alloc", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "set maximum size of a single allocated block", + "argname": "bytes", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "cpuflags", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "force specific cpu flags", + "argname": "flags", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "cpucount", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "force specific cpu count", + "argname": "count", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "hide_banner", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "do not show program banner", + "argname": "hide_banner", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sources", + "type": "OPT_TYPE_FUNC", + "flags": 7, + "help": "list sources of the input device", + "argname": "device", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sinks", + "type": "OPT_TYPE_FUNC", + "flags": 7, + "help": "list sinks of the output device", + "argname": "device", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "f", + "type": "OPT_TYPE_STRING", + "flags": 6528, + "help": "force container format (auto-detected otherwise)", + "argname": "fmt", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "y", + "type": "OPT_TYPE_BOOL", + "flags": 0, + "help": "overwrite output files", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "n", + "type": "OPT_TYPE_BOOL", + "flags": 0, + "help": "never overwrite output files", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "ignore_unknown", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "Ignore unknown stream types", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "copy_unknown", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "Copy unknown stream types", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "recast_media", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "allow recasting stream type in order to force a decoder of different media type", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "c", + "type": "OPT_TYPE_STRING", + "flags": 24448, + "help": "select encoder/decoder ('copy' to copy stream without reencoding)", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "codec", + "type": "OPT_TYPE_STRING", + "flags": 16260, + "help": "alias for -c (select encoder/decoder)", + "argname": "codec", + "canon": ".u1.names_alt = alt_codec" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "pre", + "type": "OPT_TYPE_STRING", + "flags": 14212, + "help": "preset name", + "argname": "preset", + "canon": ".u1.names_alt = alt_pre" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "map", + "type": "OPT_TYPE_FUNC", + "flags": 4229, + "help": "set input stream mapping", + "argname": "[-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]]", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "map_metadata", + "type": "OPT_TYPE_STRING", + "flags": 4996, + "help": "set metadata information of outfile from infile", + "argname": "outfile[,metadata]:infile[,metadata]", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "map_chapters", + "type": "OPT_TYPE_INT", + "flags": 4484, + "help": "set chapters mapping", + "argname": "input_file_index", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "t", + "type": "OPT_TYPE_TIME", + "flags": 6528, + "help": "stop transcoding after specified duration", + "argname": "duration", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "to", + "type": "OPT_TYPE_TIME", + "flags": 6528, + "help": "stop transcoding after specified time is reached", + "argname": "time_stop", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "fs", + "type": "OPT_TYPE_INT64", + "flags": 4484, + "help": "set the limit file size in bytes", + "argname": "limit_size", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "ss", + "type": "OPT_TYPE_TIME", + "flags": 6528, + "help": "start transcoding at specified time", + "argname": "time_off", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sseof", + "type": "OPT_TYPE_TIME", + "flags": 2436, + "help": "set the start time offset relative to EOF", + "argname": "time_off", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "seek_timestamp", + "type": "OPT_TYPE_INT", + "flags": 2436, + "help": "enable/disable seeking by timestamp with -ss", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "accurate_seek", + "type": "OPT_TYPE_BOOL", + "flags": 2436, + "help": "enable/disable accurate seeking with -ss", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "isync", + "type": "OPT_TYPE_INT", + "flags": 2436, + "help": "Indicate the input index for sync reference", + "argname": "sync ref", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "itsoffset", + "type": "OPT_TYPE_TIME", + "flags": 2436, + "help": "set the input ts offset", + "argname": "time_off", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "itsscale", + "type": "OPT_TYPE_DOUBLE", + "flags": 3972, + "help": "set the input ts scale", + "argname": "scale", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "timestamp", + "type": "OPT_TYPE_FUNC", + "flags": 4229, + "help": "set the recording timestamp ('now' to set the current time)", + "argname": "time", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "metadata", + "type": "OPT_TYPE_STRING", + "flags": 4992, + "help": "add metadata", + "argname": "key=value", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "program", + "type": "OPT_TYPE_STRING", + "flags": 4996, + "help": "add program with specified streams", + "argname": "title=string:st=number...", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stream_group", + "type": "OPT_TYPE_STRING", + "flags": 4996, + "help": "add stream group with specified streams and group type-specific arguments", + "argname": "id=number:st=number...", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dframes", + "type": "OPT_TYPE_INT64", + "flags": 20613, + "help": "set the number of data frames to output", + "argname": "number", + "canon": ".u1.name_canon = \"frames\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "benchmark", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "add timings for benchmarking", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "benchmark_all", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "add timings for each task", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "progress", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "write program-readable progress information", + "argname": "url", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stdin", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "enable or disable interaction on standard input", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "timelimit", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "set max runtime in seconds in CPU user time", + "argname": "limit", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dump", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "dump each input packet", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "hex", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "when dumping packets, also dump the payload", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "re", + "type": "OPT_TYPE_BOOL", + "flags": 2436, + "help": "read input at native frame rate; equivalent to -readrate 1", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "readrate", + "type": "OPT_TYPE_FLOAT", + "flags": 2436, + "help": "read input at specified rate", + "argname": "speed", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "readrate_initial_burst", + "type": "OPT_TYPE_DOUBLE", + "flags": 2436, + "help": "The initial amount of input to burst read before imposing any readrate", + "argname": "seconds", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "target", + "type": "OPT_TYPE_FUNC", + "flags": 4229, + "help": "specify target file type (\\\"vcd\\\", \\\"svcd\\\", \\\"dvd\\\", \\\"dv\\\" or \\\"dv50\\\n \"with optional prefixes \\\"pal-\\\", \\\"ntsc-\\\" or \\\"film-\\\")", + "argname": "type", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "frame_drop_threshold", + "type": "OPT_TYPE_FLOAT", + "flags": 4, + "help": "frame drop threshold", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "copyts", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "copy timestamps", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "start_at_zero", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "shift input timestamps to start at 0 when using copyts", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "copytb", + "type": "OPT_TYPE_INT", + "flags": 4, + "help": "copy input stream time base when stream copying", + "argname": "mode", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "shortest", + "type": "OPT_TYPE_BOOL", + "flags": 4484, + "help": "finish encoding within shortest input", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "shortest_buf_duration", + "type": "OPT_TYPE_FLOAT", + "flags": 4484, + "help": "maximum buffering duration (in seconds) for the -shortest option", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "bitexact", + "type": "OPT_TYPE_BOOL", + "flags": 6532, + "help": "bitexact mode", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "apad", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "audio pad", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dts_delta_threshold", + "type": "OPT_TYPE_FLOAT", + "flags": 4, + "help": "timestamp discontinuity delta threshold", + "argname": "threshold", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dts_error_threshold", + "type": "OPT_TYPE_FLOAT", + "flags": 4, + "help": "timestamp error delta threshold", + "argname": "threshold", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "xerror", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "exit on error", + "argname": "error", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "abort_on", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "abort on the specified condition flags", + "argname": "flags", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "copyinkf", + "type": "OPT_TYPE_BOOL", + "flags": 6020, + "help": "copy initial non-keyframes", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "copypriorss", + "type": "OPT_TYPE_INT", + "flags": 6020, + "help": "copy or discard frames before start time", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "frames", + "type": "OPT_TYPE_INT64", + "flags": 14212, + "help": "set the number of frames to output", + "argname": "number", + "canon": ".u1.names_alt = alt_frames" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "tag", + "type": "OPT_TYPE_STRING", + "flags": 16260, + "help": "force codec tag/fourcc", + "argname": "fourcc/tag", + "canon": ".u1.names_alt = alt_tag" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "q", + "type": "OPT_TYPE_FUNC", + "flags": 22404, + "help": "use fixed quality scale (VBR)", + "argname": "q", + "canon": ".u1.name_canon = \"qscale\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "qscale", + "type": "OPT_TYPE_FUNC", + "flags": 12421, + "help": "use fixed quality scale (VBR)", + "argname": "q", + "canon": ".u1.names_alt = alt_qscale" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "profile", + "type": "OPT_TYPE_FUNC", + "flags": 4229, + "help": "set profile", + "argname": "profile", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter", + "type": "OPT_TYPE_STRING", + "flags": 14208, + "help": "apply specified filters to audio/video", + "argname": "filter_graph", + "canon": ".u1.names_alt = alt_filter" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter_threads", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "number of non-complex filter threads", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter_script", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "deprecated, use -/filter", + "argname": "filename", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "reinit_filter", + "type": "OPT_TYPE_INT", + "flags": 3972, + "help": "reinit filtergraph on input parameter changes", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter_complex", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "create a complex filtergraph", + "argname": "graph_description", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter_complex_threads", + "type": "OPT_TYPE_INT", + "flags": 4, + "help": "number of threads for -filter_complex", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "lavfi", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "create a complex filtergraph", + "argname": "graph_description", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter_complex_script", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "deprecated, use -/filter_complex instead", + "argname": "filename", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "auto_conversion_filters", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "enable automatic conversion filters globally", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats", + "type": "OPT_TYPE_BOOL", + "flags": 0, + "help": "print progress report during encoding", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_period", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "set the period at which ffmpeg updates stats and -progress output", + "argname": "time", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "attach", + "type": "OPT_TYPE_FUNC", + "flags": 4229, + "help": "add an attachment to the output file", + "argname": "filename", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dump_attachment", + "type": "OPT_TYPE_STRING", + "flags": 2948, + "help": "extract an attachment into a file", + "argname": "filename", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stream_loop", + "type": "OPT_TYPE_INT", + "flags": 2436, + "help": "set number of times input stream shall be looped", + "argname": "loop count", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "debug_ts", + "type": "OPT_TYPE_BOOL", + "flags": 4, + "help": "print timestamp debugging info", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "max_error_rate", + "type": "OPT_TYPE_FLOAT", + "flags": 4, + "help": "ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.", + "argname": "maximum error rate", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "discard", + "type": "OPT_TYPE_STRING", + "flags": 3972, + "help": "discard", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "disposition", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "disposition", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "thread_queue_size", + "type": "OPT_TYPE_INT", + "flags": 6532, + "help": "set the maximum number of queued packets from the demuxer", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "find_stream_info", + "type": "OPT_TYPE_BOOL", + "flags": 2436, + "help": "read and decode the streams to fill missing information with heuristics", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "bits_per_raw_sample", + "type": "OPT_TYPE_INT", + "flags": 6020, + "help": "set the number of bits per raw sample", + "argname": "number", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_enc_pre", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "write encoding stats before encoding", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_enc_post", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "write encoding stats after encoding", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_mux_pre", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "write packets stats before muxing", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_enc_pre_fmt", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "format of the stats written with -stats_enc_pre", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_enc_post_fmt", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "format of the stats written with -stats_enc_post", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stats_mux_pre_fmt", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "format of the stats written with -stats_mux_pre", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vframes", + "type": "OPT_TYPE_INT64", + "flags": 20621, + "help": "set the number of video frames to output", + "argname": "number", + "canon": ".u1.name_canon = \"frames\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "r", + "type": "OPT_TYPE_STRING", + "flags": 8072, + "help": "override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)", + "argname": "rate", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "fpsmax", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "set max frame rate (Hz value, fraction or abbreviation)", + "argname": "rate", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "s", + "type": "OPT_TYPE_STRING", + "flags": 8104, + "help": "set frame size (WxH or abbreviation)", + "argname": "size", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "aspect", + "type": "OPT_TYPE_STRING", + "flags": 6024, + "help": "set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)", + "argname": "aspect", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "pix_fmt", + "type": "OPT_TYPE_STRING", + "flags": 8076, + "help": "set pixel format", + "argname": "format", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "display_rotation", + "type": "OPT_TYPE_DOUBLE", + "flags": 3980, + "help": "set pure counter-clockwise rotation in degrees for stream(s)", + "argname": "angle", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "display_hflip", + "type": "OPT_TYPE_BOOL", + "flags": 3980, + "help": "set display horizontal flip for stream(s) (overrides any display rotation if it is not set)", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "display_vflip", + "type": "OPT_TYPE_BOOL", + "flags": 3980, + "help": "set display vertical flip for stream(s) (overrides any display rotation if it is not set)", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vn", + "type": "OPT_TYPE_BOOL", + "flags": 6536, + "help": "disable video", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "rc_override", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "rate control override for specific intervals", + "argname": "override", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vcodec", + "type": "OPT_TYPE_STRING", + "flags": 22665, + "help": "alias for -c:v (select encoder/decoder for video streams)", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "timecode", + "type": "OPT_TYPE_FUNC", + "flags": 4237, + "help": "set initial TimeCode value.", + "argname": "hh:mm:ss[:;.]ff", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "pass", + "type": "OPT_TYPE_INT", + "flags": 6028, + "help": "select the pass number (1 to 3)", + "argname": "n", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "passlogfile", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "select two pass log file name prefix", + "argname": "prefix", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vstats", + "type": "OPT_TYPE_FUNC", + "flags": 12, + "help": "dump video coding statistics to file", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vstats_file", + "type": "OPT_TYPE_FUNC", + "flags": 13, + "help": "dump video coding statistics to file", + "argname": "file", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vstats_version", + "type": "OPT_TYPE_INT", + "flags": 12, + "help": "Version of the vstats format to use.", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vf", + "type": "OPT_TYPE_STRING", + "flags": 20617, + "help": "alias for -filter:v (apply filters to video streams)", + "argname": "filter_graph", + "canon": ".u1.name_canon = \"filter\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "intra_matrix", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "specify intra matrix coeffs", + "argname": "matrix", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "inter_matrix", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "specify inter matrix coeffs", + "argname": "matrix", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "chroma_intra_matrix", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "specify intra matrix coeffs", + "argname": "matrix", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vtag", + "type": "OPT_TYPE_STRING", + "flags": 22669, + "help": "force video tag/fourcc", + "argname": "fourcc/tag", + "canon": ".u1.name_canon = \"tag\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "fps_mode", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "set framerate mode for matching video streams; overrides vsync", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "force_fps", + "type": "OPT_TYPE_BOOL", + "flags": 6028, + "help": "force the selected framerate, disable the best supported framerate selection", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "streamid", + "type": "OPT_TYPE_FUNC", + "flags": 4237, + "help": "set the value of an outfile streamid", + "argname": "streamIndex:value", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "force_key_frames", + "type": "OPT_TYPE_STRING", + "flags": 6028, + "help": "force key frames at specified timestamps", + "argname": "timestamps", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "b", + "type": "OPT_TYPE_FUNC", + "flags": 4233, + "help": "video bitrate (please use -b:v)", + "argname": "bitrate", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "hwaccel", + "type": "OPT_TYPE_STRING", + "flags": 3980, + "help": "use HW accelerated decoding", + "argname": "hwaccel name", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "hwaccel_device", + "type": "OPT_TYPE_STRING", + "flags": 3980, + "help": "select a device for HW acceleration", + "argname": "devicename", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "hwaccel_output_format", + "type": "OPT_TYPE_STRING", + "flags": 3980, + "help": "select output format used with HW accelerated decoding", + "argname": "format", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "hwaccels", + "type": "OPT_TYPE_FUNC", + "flags": 6, + "help": "show available HW acceleration methods", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "autorotate", + "type": "OPT_TYPE_BOOL", + "flags": 3972, + "help": "automatically insert correct rotate filters", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "autoscale", + "type": "OPT_TYPE_BOOL", + "flags": 6020, + "help": "automatically insert a scale filter at the end of the filter graph", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "fix_sub_duration_heartbeat", + "type": "OPT_TYPE_BOOL", + "flags": 6028, + "help": "set this video output stream to be a heartbeat stream for fix_sub_duration, according to which subtitles should be split at random access points", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "aframes", + "type": "OPT_TYPE_INT64", + "flags": 20629, + "help": "set the number of audio frames to output", + "argname": "number", + "canon": ".u1.name_canon = \"frames\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "aq", + "type": "OPT_TYPE_FUNC", + "flags": 4241, + "help": "set audio quality (codec-specific)", + "argname": "quality", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "ar", + "type": "OPT_TYPE_INT", + "flags": 8080, + "help": "set audio sampling rate (in Hz)", + "argname": "rate", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "ac", + "type": "OPT_TYPE_INT", + "flags": 8080, + "help": "set number of audio channels", + "argname": "channels", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "an", + "type": "OPT_TYPE_BOOL", + "flags": 6544, + "help": "disable audio", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "acodec", + "type": "OPT_TYPE_STRING", + "flags": 22673, + "help": "alias for -c:a (select encoder/decoder for audio streams)", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "ab", + "type": "OPT_TYPE_FUNC", + "flags": 4241, + "help": "alias for -b:a (select bitrate for audio streams)", + "argname": "bitrate", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "atag", + "type": "OPT_TYPE_STRING", + "flags": 20629, + "help": "force audio tag/fourcc", + "argname": "fourcc/tag", + "canon": ".u1.name_canon = \"tag\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sample_fmt", + "type": "OPT_TYPE_STRING", + "flags": 8084, + "help": "set sample format", + "argname": "format", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "channel_layout", + "type": "OPT_TYPE_STRING", + "flags": 16276, + "help": "set channel layout", + "argname": "layout", + "canon": ".u1.names_alt = alt_channel_layout" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "ch_layout", + "type": "OPT_TYPE_STRING", + "flags": 24468, + "help": "set channel layout", + "argname": "layout", + "canon": ".u1.name_canon = \"channel_layout\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "af", + "type": "OPT_TYPE_STRING", + "flags": 20625, + "help": "alias for -filter:a (apply filters to audio streams)", + "argname": "filter_graph", + "canon": ".u1.name_canon = \"filter\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "guess_layout_max", + "type": "OPT_TYPE_INT", + "flags": 3988, + "help": "set the maximum number of channels to try to guess the channel layout", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sn", + "type": "OPT_TYPE_BOOL", + "flags": 6560, + "help": "disable subtitle", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "scodec", + "type": "OPT_TYPE_STRING", + "flags": 22689, + "help": "alias for -c:s (select encoder/decoder for subtitle streams)", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "stag", + "type": "OPT_TYPE_STRING", + "flags": 20645, + "help": "force subtitle tag/fourcc", + "argname": "fourcc/tag", + "canon": ".u1.name_canon = \"tag\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "fix_sub_duration", + "type": "OPT_TYPE_BOOL", + "flags": 4004, + "help": "fix subtitles duration", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "canvas_size", + "type": "OPT_TYPE_STRING", + "flags": 4004, + "help": "set canvas size (WxH or abbreviation)", + "argname": "size", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "muxdelay", + "type": "OPT_TYPE_FLOAT", + "flags": 4484, + "help": "set the maximum demux-decode delay", + "argname": "seconds", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "muxpreload", + "type": "OPT_TYPE_FLOAT", + "flags": 4484, + "help": "set the initial demux-decode delay", + "argname": "seconds", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "sdp_file", + "type": "OPT_TYPE_FUNC", + "flags": 4101, + "help": "specify a file in which to print sdp information", + "argname": "file", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "time_base", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "set the desired time base hint for output stream (1:24, 1:48000 or 0.04166, 2.0833e-5)", + "argname": "ratio", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "enc_time_base", + "type": "OPT_TYPE_STRING", + "flags": 6020, + "help": "set the desired time base for the encoder (1:24, 1:48000 or 0.04166, 2.0833e-5). two special values are defined - 0 = use frame rate (video) or sample rate (audio),-1 = match source time base", + "argname": "ratio", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "bsf", + "type": "OPT_TYPE_STRING", + "flags": 8068, + "help": "A comma-separated list of bitstream filters", + "argname": "bitstream_filters", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "apre", + "type": "OPT_TYPE_STRING", + "flags": 20629, + "help": "set the audio options to the indicated preset", + "argname": "preset", + "canon": ".u1.name_canon = \"pre\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vpre", + "type": "OPT_TYPE_STRING", + "flags": 20621, + "help": "set the video options to the indicated preset", + "argname": "preset", + "canon": ".u1.name_canon = \"pre\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "spre", + "type": "OPT_TYPE_STRING", + "flags": 20645, + "help": "set the subtitle options to the indicated preset", + "argname": "preset", + "canon": ".u1.name_canon = \"pre\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "fpre", + "type": "OPT_TYPE_STRING", + "flags": 20613, + "help": "set options from indicated preset file", + "argname": "filename", + "canon": ".u1.name_canon = \"pre\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "max_muxing_queue_size", + "type": "OPT_TYPE_INT", + "flags": 6020, + "help": "maximum number of packets that can be buffered while waiting for all streams to initialize", + "argname": "packets", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "muxing_queue_data_threshold", + "type": "OPT_TYPE_INT", + "flags": 6020, + "help": "set the threshold after which max_muxing_queue_size is taken into account", + "argname": "bytes", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dcodec", + "type": "OPT_TYPE_STRING", + "flags": 22725, + "help": "alias for -c:d (select encoder/decoder for data streams)", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"" + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "dn", + "type": "OPT_TYPE_BOOL", + "flags": 6592, + "help": "disable data", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "init_hw_device", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "initialise hardware device", + "argname": "args", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "filter_hw_device", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "set hardware device used when filtering", + "argname": "device", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "adrift_threshold", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "deprecated, does nothing", + "argname": "threshold", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "top", + "type": "OPT_TYPE_INT", + "flags": 8076, + "help": "deprecated, use the setfield video filter", + "argname": "", + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "qphist", + "type": "OPT_TYPE_FUNC", + "flags": 12, + "help": "deprecated, does nothing", + "argname": null, + "canon": null + }, + { + "__class__": "ffmpeg.common.schema.FFMpegOption", + "name": "vsync", + "type": "OPT_TYPE_FUNC", + "flags": 5, + "help": "set video sync method globally; deprecated, use -fps_mode", + "argname": "", + "canon": null + } + ] +} \ No newline at end of file diff --git a/src/scripts/parse_c/cli.py b/src/scripts/parse_c/cli.py index 847fc056..146b686c 100644 --- a/src/scripts/parse_c/cli.py +++ b/src/scripts/parse_c/cli.py @@ -1,6 +1,6 @@ import typer - -from ffmpeg.common.schema import FFMpegOption +from ..cache import save +from ffmpeg.common.schema import FFMpegOption, FFMpegOptionList from .parse_ffmpeg_opt_c import parse_ffmpeg_opt_c from .pre_compile import precompile, target_folder @@ -18,7 +18,11 @@ def parse_ffmpeg_options() -> list[FFMpegOption]: precompile() ffmpeg_opt_c = target_folder / "fftools/ffmpeg_opt.c" - return parse_ffmpeg_opt_c(ffmpeg_opt_c.read_text()) + r = parse_ffmpeg_opt_c(ffmpeg_opt_c.read_text()) + option_list = FFMpegOptionList(options=r) + + save(option_list, "list") + return r if __name__ == "__main__": From 240bc7dc6d0df31852f3c457c59e204e1bd8c242 Mon Sep 17 00:00:00 2001 From: lucemia Date: Tue, 21 May 2024 04:35:30 +0000 Subject: [PATCH 2/3] init parser --- src/app/__init__.py | 0 src/app/parser.py | 67 ++++++++++++++++++++++++++++++++++++++++++++ src/ffmpeg/parser.py | 9 ------ 3 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 src/app/__init__.py create mode 100644 src/app/parser.py delete mode 100644 src/ffmpeg/parser.py diff --git a/src/app/__init__.py b/src/app/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/app/parser.py b/src/app/parser.py new file mode 100644 index 00000000..8b54fa5f --- /dev/null +++ b/src/app/parser.py @@ -0,0 +1,67 @@ +import shlex +from scripts.cache import load +from ffmpeg.common.schema import FFMpegOptionList, FFMpegOptionType, FFMpegOption +from ffmpeg.base import input, output +from typing import Any + +option_list = load(FFMpegOptionList, "list") + + + +def parse(cmd: str) -> Any: + """ + Parse the command line arguments and return the options. + Options has Input Option, Output Option, Global Option, and Filter Option. + """ + + option_dict = { + k.name: k for k in option_list.options + } + + arguments = shlex.split(cmd) + + assert arguments.pop(0) == "ffmpeg" + + parsed_options: dict[str, tuple[FFMpegOption, str | bool]] = {} + + nodes = [] + while arguments: + arg = arguments.pop(0) + if arg == "-i": + filename = arguments.pop(0) + + nodes.append(input(filename=filename, **{k: parsed_options[k] for k in parsed_options if parsed_options[k][0].is_input_option})) + parsed_options = {k: parsed_options[k] for k in parsed_options if not parsed_options[k][0].is_input_option} + + assert not {k: parsed_options[k] for k in parsed_options if parsed_options[k][0].is_output_option}, f"Output options must not be specified before input files, {parsed_options}" + + elif arg.startswith("-"): + arg = arg.lstrip("-") + arg_name = arg.split(":")[0] + assert arg_name in option_dict, f"Unknown option {arg_name}" + + option = option_dict[arg_name] + + arg_value: str | bool + if option.type == FFMpegOptionType.OPT_TYPE_BOOL: + arg_value = True + else: + arg_value = arguments.pop(0) + + # option is not exclusive, for example -c are both input and output options + parsed_options[arg] = (option, arg_value) + else: + # should be output file + nodes.append(output(filename=arg, **{k: parsed_options[k][1] for k in parsed_options if parsed_options[k][0].is_output_option})) + parsed_options = {k: parsed_options[k] for k in parsed_options if not parsed_options[k][0].is_output_option} + + assert not {k: parsed_options[k] for k in parsed_options if parsed_options[k][0].is_input_option}, f"Input options must not be specified after output files, {parsed_options}" + + if parsed_options: + # handle globla nodes + ... + + print(nodes) + +parse("ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4") +parse("ffmpeg -i input.mp4 -c:a aac output.mp4 -c:v libx264 -c:a aac output.mp4") \ No newline at end of file diff --git a/src/ffmpeg/parser.py b/src/ffmpeg/parser.py deleted file mode 100644 index 3f0ad000..00000000 --- a/src/ffmpeg/parser.py +++ /dev/null @@ -1,9 +0,0 @@ -import shlex - - -def parse(cmd: str): - arguments = shlex.split(cmd) - - assert arguments[0] == "ffmpeg" - - \ No newline at end of file From d8a306db3dd0df0bb371a409ad3ee0c6fbd94b24 Mon Sep 17 00:00:00 2001 From: lucemia Date: Tue, 21 May 2024 04:49:37 +0000 Subject: [PATCH 3/3] fix --- .devcontainer/devcontainer.json | 11 +- src/ffmpeg/common/schema.py | 3 +- src/ffmpeg/parser.py | 9 - src/scripts/cache/FFMpegOptionList/list.json | 1506 +++++++++--------- src/scripts/parse_c/cli.py | 5 +- 5 files changed, 768 insertions(+), 766 deletions(-) delete mode 100644 src/ffmpeg/parser.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 15ac685b..b0502b49 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -24,5 +24,14 @@ "name": "Python Development", "postCreateCommand": "bash .devcontainer/setup.sh", "waitFor": "postCreateCommand", - "workspaceFolder": "/workspaces/typed-ffmpeg" + "workspaceFolder": "/workspaces/typed-ffmpeg",// Build the volume mount for gcloud config. + "mounts": [ + // 把本機的 gcloud config 綁到 container 內使用 + "source=${localEnv:HOME}/.config/gcloud,target=/root/.config/gcloud,type=bind,consistency=cached", + // for ssh login to github + "source=${localEnv:HOME}/.ssh,target=/root/.ssh,type=bind,consistency=cached", + // 為了在不同 devcontainer 切換時,保留相同的 bash history + "source=gstudio-zshhistory,target=/root/commandhistory,type=volume", + "source=poetry-virtualenvs,target=/root/.cache/pypoetry/virtualenvs,type=volume" + ], } diff --git a/src/ffmpeg/common/schema.py b/src/ffmpeg/common/schema.py index 521902f7..c95c67c0 100644 --- a/src/ffmpeg/common/schema.py +++ b/src/ffmpeg/common/schema.py @@ -307,6 +307,7 @@ def is_global_option(self) -> bool: def is_support_stream_specifier(self) -> bool: return bool(self.flags & FFMpegOptionFlag.OPT_SPEC) + @dataclass(frozen=True, kw_only=True) class FFMpegOptionList: - options: tuple[FFMpegOption, ...] \ No newline at end of file + options: tuple[FFMpegOption, ...] diff --git a/src/ffmpeg/parser.py b/src/ffmpeg/parser.py deleted file mode 100644 index 3f0ad000..00000000 --- a/src/ffmpeg/parser.py +++ /dev/null @@ -1,9 +0,0 @@ -import shlex - - -def parse(cmd: str): - arguments = shlex.split(cmd) - - assert arguments[0] == "ffmpeg" - - \ No newline at end of file diff --git a/src/scripts/cache/FFMpegOptionList/list.json b/src/scripts/cache/FFMpegOptionList/list.json index da28bef2..299218f9 100644 --- a/src/scripts/cache/FFMpegOptionList/list.json +++ b/src/scripts/cache/FFMpegOptionList/list.json @@ -3,1695 +3,1695 @@ "options": [ { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "L", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show license", - "argname": null, - "canon": null + "name": "L", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "h", - "type": "OPT_TYPE_FUNC", + "argname": "topic", + "canon": null, "flags": 2, "help": "show help", - "argname": "topic", - "canon": null + "name": "h", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "?", - "type": "OPT_TYPE_FUNC", + "argname": "topic", + "canon": null, "flags": 6, "help": "show help", - "argname": "topic", - "canon": null + "name": "?", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "help", - "type": "OPT_TYPE_FUNC", + "argname": "topic", + "canon": null, "flags": 6, "help": "show help", - "argname": "topic", - "canon": null + "name": "help", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "-help", - "type": "OPT_TYPE_FUNC", + "argname": "topic", + "canon": null, "flags": 6, "help": "show help", - "argname": "topic", - "canon": null + "name": "-help", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "version", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show version", - "argname": null, - "canon": null + "name": "version", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "buildconf", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show build configuration", - "argname": null, - "canon": null + "name": "buildconf", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "formats", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available formats", - "argname": null, - "canon": null + "name": "formats", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "muxers", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available muxers", - "argname": null, - "canon": null + "name": "muxers", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "demuxers", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available demuxers", - "argname": null, - "canon": null + "name": "demuxers", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "devices", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available devices", - "argname": null, - "canon": null + "name": "devices", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "codecs", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available codecs", - "argname": null, - "canon": null + "name": "codecs", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "decoders", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available decoders", - "argname": null, - "canon": null + "name": "decoders", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "encoders", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available encoders", - "argname": null, - "canon": null + "name": "encoders", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "bsfs", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available bit stream filters", - "argname": null, - "canon": null + "name": "bsfs", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "protocols", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available protocols", - "argname": null, - "canon": null + "name": "protocols", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filters", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available filters", - "argname": null, - "canon": null + "name": "filters", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "pix_fmts", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available pixel formats", - "argname": null, - "canon": null + "name": "pix_fmts", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "layouts", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show standard channel layouts", - "argname": null, - "canon": null + "name": "layouts", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sample_fmts", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 2, "help": "show available audio sample formats", - "argname": null, - "canon": null + "name": "sample_fmts", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dispositions", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available stream dispositions", - "argname": null, - "canon": null + "name": "dispositions", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "colors", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available color names", - "argname": null, - "canon": null + "name": "colors", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "loglevel", - "type": "OPT_TYPE_FUNC", + "argname": "loglevel", + "canon": null, "flags": 5, "help": "set logging level", - "argname": "loglevel", - "canon": null + "name": "loglevel", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "v", - "type": "OPT_TYPE_FUNC", + "argname": "loglevel", + "canon": null, "flags": 1, "help": "set logging level", - "argname": "loglevel", - "canon": null + "name": "v", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "report", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 4, "help": "generate a report", - "argname": null, - "canon": null + "name": "report", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "max_alloc", - "type": "OPT_TYPE_FUNC", + "argname": "bytes", + "canon": null, "flags": 5, "help": "set maximum size of a single allocated block", - "argname": "bytes", - "canon": null + "name": "max_alloc", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "cpuflags", - "type": "OPT_TYPE_FUNC", + "argname": "flags", + "canon": null, "flags": 5, "help": "force specific cpu flags", - "argname": "flags", - "canon": null + "name": "cpuflags", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "cpucount", - "type": "OPT_TYPE_FUNC", + "argname": "count", + "canon": null, "flags": 5, "help": "force specific cpu count", - "argname": "count", - "canon": null + "name": "cpucount", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "hide_banner", - "type": "OPT_TYPE_BOOL", + "argname": "hide_banner", + "canon": null, "flags": 4, "help": "do not show program banner", - "argname": "hide_banner", - "canon": null + "name": "hide_banner", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sources", - "type": "OPT_TYPE_FUNC", + "argname": "device", + "canon": null, "flags": 7, "help": "list sources of the input device", - "argname": "device", - "canon": null + "name": "sources", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sinks", - "type": "OPT_TYPE_FUNC", + "argname": "device", + "canon": null, "flags": 7, "help": "list sinks of the output device", - "argname": "device", - "canon": null + "name": "sinks", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "f", - "type": "OPT_TYPE_STRING", + "argname": "fmt", + "canon": null, "flags": 6528, "help": "force container format (auto-detected otherwise)", - "argname": "fmt", - "canon": null + "name": "f", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "y", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 0, "help": "overwrite output files", - "argname": null, - "canon": null + "name": "y", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "n", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 0, "help": "never overwrite output files", - "argname": null, - "canon": null + "name": "n", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "ignore_unknown", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "Ignore unknown stream types", - "argname": null, - "canon": null + "name": "ignore_unknown", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "copy_unknown", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "Copy unknown stream types", - "argname": null, - "canon": null + "name": "copy_unknown", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "recast_media", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "allow recasting stream type in order to force a decoder of different media type", - "argname": null, - "canon": null + "name": "recast_media", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "c", - "type": "OPT_TYPE_STRING", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"", "flags": 24448, "help": "select encoder/decoder ('copy' to copy stream without reencoding)", - "argname": "codec", - "canon": ".u1.name_canon = \"codec\"" + "name": "c", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "codec", - "type": "OPT_TYPE_STRING", + "argname": "codec", + "canon": ".u1.names_alt = alt_codec", "flags": 16260, "help": "alias for -c (select encoder/decoder)", - "argname": "codec", - "canon": ".u1.names_alt = alt_codec" + "name": "codec", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "pre", - "type": "OPT_TYPE_STRING", + "argname": "preset", + "canon": ".u1.names_alt = alt_pre", "flags": 14212, "help": "preset name", - "argname": "preset", - "canon": ".u1.names_alt = alt_pre" + "name": "pre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "map", - "type": "OPT_TYPE_FUNC", + "argname": "[-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]]", + "canon": null, "flags": 4229, "help": "set input stream mapping", - "argname": "[-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]]", - "canon": null + "name": "map", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "map_metadata", - "type": "OPT_TYPE_STRING", + "argname": "outfile[,metadata]:infile[,metadata]", + "canon": null, "flags": 4996, "help": "set metadata information of outfile from infile", - "argname": "outfile[,metadata]:infile[,metadata]", - "canon": null + "name": "map_metadata", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "map_chapters", - "type": "OPT_TYPE_INT", + "argname": "input_file_index", + "canon": null, "flags": 4484, "help": "set chapters mapping", - "argname": "input_file_index", - "canon": null + "name": "map_chapters", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "t", - "type": "OPT_TYPE_TIME", + "argname": "duration", + "canon": null, "flags": 6528, "help": "stop transcoding after specified duration", - "argname": "duration", - "canon": null + "name": "t", + "type": "OPT_TYPE_TIME" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "to", - "type": "OPT_TYPE_TIME", + "argname": "time_stop", + "canon": null, "flags": 6528, "help": "stop transcoding after specified time is reached", - "argname": "time_stop", - "canon": null + "name": "to", + "type": "OPT_TYPE_TIME" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "fs", - "type": "OPT_TYPE_INT64", + "argname": "limit_size", + "canon": null, "flags": 4484, "help": "set the limit file size in bytes", - "argname": "limit_size", - "canon": null + "name": "fs", + "type": "OPT_TYPE_INT64" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "ss", - "type": "OPT_TYPE_TIME", + "argname": "time_off", + "canon": null, "flags": 6528, "help": "start transcoding at specified time", - "argname": "time_off", - "canon": null + "name": "ss", + "type": "OPT_TYPE_TIME" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sseof", - "type": "OPT_TYPE_TIME", + "argname": "time_off", + "canon": null, "flags": 2436, "help": "set the start time offset relative to EOF", - "argname": "time_off", - "canon": null + "name": "sseof", + "type": "OPT_TYPE_TIME" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "seek_timestamp", - "type": "OPT_TYPE_INT", + "argname": null, + "canon": null, "flags": 2436, "help": "enable/disable seeking by timestamp with -ss", - "argname": null, - "canon": null + "name": "seek_timestamp", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "accurate_seek", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 2436, "help": "enable/disable accurate seeking with -ss", - "argname": null, - "canon": null + "name": "accurate_seek", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "isync", - "type": "OPT_TYPE_INT", + "argname": "sync ref", + "canon": null, "flags": 2436, "help": "Indicate the input index for sync reference", - "argname": "sync ref", - "canon": null + "name": "isync", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "itsoffset", - "type": "OPT_TYPE_TIME", + "argname": "time_off", + "canon": null, "flags": 2436, "help": "set the input ts offset", - "argname": "time_off", - "canon": null + "name": "itsoffset", + "type": "OPT_TYPE_TIME" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "itsscale", - "type": "OPT_TYPE_DOUBLE", + "argname": "scale", + "canon": null, "flags": 3972, "help": "set the input ts scale", - "argname": "scale", - "canon": null + "name": "itsscale", + "type": "OPT_TYPE_DOUBLE" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "timestamp", - "type": "OPT_TYPE_FUNC", + "argname": "time", + "canon": null, "flags": 4229, "help": "set the recording timestamp ('now' to set the current time)", - "argname": "time", - "canon": null + "name": "timestamp", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "metadata", - "type": "OPT_TYPE_STRING", + "argname": "key=value", + "canon": null, "flags": 4992, "help": "add metadata", - "argname": "key=value", - "canon": null + "name": "metadata", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "program", - "type": "OPT_TYPE_STRING", + "argname": "title=string:st=number...", + "canon": null, "flags": 4996, "help": "add program with specified streams", - "argname": "title=string:st=number...", - "canon": null + "name": "program", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stream_group", - "type": "OPT_TYPE_STRING", + "argname": "id=number:st=number...", + "canon": null, "flags": 4996, "help": "add stream group with specified streams and group type-specific arguments", - "argname": "id=number:st=number...", - "canon": null + "name": "stream_group", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dframes", - "type": "OPT_TYPE_INT64", + "argname": "number", + "canon": ".u1.name_canon = \"frames\"", "flags": 20613, "help": "set the number of data frames to output", - "argname": "number", - "canon": ".u1.name_canon = \"frames\"" + "name": "dframes", + "type": "OPT_TYPE_INT64" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "benchmark", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "add timings for benchmarking", - "argname": null, - "canon": null + "name": "benchmark", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "benchmark_all", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "add timings for each task", - "argname": null, - "canon": null + "name": "benchmark_all", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "progress", - "type": "OPT_TYPE_FUNC", + "argname": "url", + "canon": null, "flags": 5, "help": "write program-readable progress information", - "argname": "url", - "canon": null + "name": "progress", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stdin", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "enable or disable interaction on standard input", - "argname": null, - "canon": null + "name": "stdin", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "timelimit", - "type": "OPT_TYPE_FUNC", + "argname": "limit", + "canon": null, "flags": 5, "help": "set max runtime in seconds in CPU user time", - "argname": "limit", - "canon": null + "name": "timelimit", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dump", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "dump each input packet", - "argname": null, - "canon": null + "name": "dump", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "hex", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "when dumping packets, also dump the payload", - "argname": null, - "canon": null + "name": "hex", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "re", - "type": "OPT_TYPE_BOOL", + "argname": "", + "canon": null, "flags": 2436, "help": "read input at native frame rate; equivalent to -readrate 1", - "argname": "", - "canon": null + "name": "re", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "readrate", - "type": "OPT_TYPE_FLOAT", + "argname": "speed", + "canon": null, "flags": 2436, "help": "read input at specified rate", - "argname": "speed", - "canon": null + "name": "readrate", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "readrate_initial_burst", - "type": "OPT_TYPE_DOUBLE", + "argname": "seconds", + "canon": null, "flags": 2436, "help": "The initial amount of input to burst read before imposing any readrate", - "argname": "seconds", - "canon": null + "name": "readrate_initial_burst", + "type": "OPT_TYPE_DOUBLE" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "target", - "type": "OPT_TYPE_FUNC", + "argname": "type", + "canon": null, "flags": 4229, "help": "specify target file type (\\\"vcd\\\", \\\"svcd\\\", \\\"dvd\\\", \\\"dv\\\" or \\\"dv50\\\n \"with optional prefixes \\\"pal-\\\", \\\"ntsc-\\\" or \\\"film-\\\")", - "argname": "type", - "canon": null + "name": "target", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "frame_drop_threshold", - "type": "OPT_TYPE_FLOAT", + "argname": "", + "canon": null, "flags": 4, "help": "frame drop threshold", - "argname": "", - "canon": null + "name": "frame_drop_threshold", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "copyts", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "copy timestamps", - "argname": null, - "canon": null + "name": "copyts", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "start_at_zero", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "shift input timestamps to start at 0 when using copyts", - "argname": null, - "canon": null + "name": "start_at_zero", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "copytb", - "type": "OPT_TYPE_INT", + "argname": "mode", + "canon": null, "flags": 4, "help": "copy input stream time base when stream copying", - "argname": "mode", - "canon": null + "name": "copytb", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "shortest", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4484, "help": "finish encoding within shortest input", - "argname": null, - "canon": null + "name": "shortest", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "shortest_buf_duration", - "type": "OPT_TYPE_FLOAT", + "argname": null, + "canon": null, "flags": 4484, "help": "maximum buffering duration (in seconds) for the -shortest option", - "argname": null, - "canon": null + "name": "shortest_buf_duration", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "bitexact", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6532, "help": "bitexact mode", - "argname": null, - "canon": null + "name": "bitexact", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "apad", - "type": "OPT_TYPE_STRING", + "argname": "", + "canon": null, "flags": 6020, "help": "audio pad", - "argname": "", - "canon": null + "name": "apad", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dts_delta_threshold", - "type": "OPT_TYPE_FLOAT", + "argname": "threshold", + "canon": null, "flags": 4, "help": "timestamp discontinuity delta threshold", - "argname": "threshold", - "canon": null + "name": "dts_delta_threshold", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dts_error_threshold", - "type": "OPT_TYPE_FLOAT", + "argname": "threshold", + "canon": null, "flags": 4, "help": "timestamp error delta threshold", - "argname": "threshold", - "canon": null + "name": "dts_error_threshold", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "xerror", - "type": "OPT_TYPE_BOOL", + "argname": "error", + "canon": null, "flags": 4, "help": "exit on error", - "argname": "error", - "canon": null + "name": "xerror", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "abort_on", - "type": "OPT_TYPE_FUNC", + "argname": "flags", + "canon": null, "flags": 5, "help": "abort on the specified condition flags", - "argname": "flags", - "canon": null + "name": "abort_on", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "copyinkf", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6020, "help": "copy initial non-keyframes", - "argname": null, - "canon": null + "name": "copyinkf", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "copypriorss", - "type": "OPT_TYPE_INT", + "argname": null, + "canon": null, "flags": 6020, "help": "copy or discard frames before start time", - "argname": null, - "canon": null + "name": "copypriorss", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "frames", - "type": "OPT_TYPE_INT64", + "argname": "number", + "canon": ".u1.names_alt = alt_frames", "flags": 14212, "help": "set the number of frames to output", - "argname": "number", - "canon": ".u1.names_alt = alt_frames" + "name": "frames", + "type": "OPT_TYPE_INT64" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "tag", - "type": "OPT_TYPE_STRING", + "argname": "fourcc/tag", + "canon": ".u1.names_alt = alt_tag", "flags": 16260, "help": "force codec tag/fourcc", - "argname": "fourcc/tag", - "canon": ".u1.names_alt = alt_tag" + "name": "tag", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "q", - "type": "OPT_TYPE_FUNC", + "argname": "q", + "canon": ".u1.name_canon = \"qscale\"", "flags": 22404, "help": "use fixed quality scale (VBR)", - "argname": "q", - "canon": ".u1.name_canon = \"qscale\"" + "name": "q", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "qscale", - "type": "OPT_TYPE_FUNC", + "argname": "q", + "canon": ".u1.names_alt = alt_qscale", "flags": 12421, "help": "use fixed quality scale (VBR)", - "argname": "q", - "canon": ".u1.names_alt = alt_qscale" + "name": "qscale", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "profile", - "type": "OPT_TYPE_FUNC", + "argname": "profile", + "canon": null, "flags": 4229, "help": "set profile", - "argname": "profile", - "canon": null + "name": "profile", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter", - "type": "OPT_TYPE_STRING", + "argname": "filter_graph", + "canon": ".u1.names_alt = alt_filter", "flags": 14208, "help": "apply specified filters to audio/video", - "argname": "filter_graph", - "canon": ".u1.names_alt = alt_filter" + "name": "filter", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter_threads", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 5, "help": "number of non-complex filter threads", - "argname": null, - "canon": null + "name": "filter_threads", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter_script", - "type": "OPT_TYPE_STRING", + "argname": "filename", + "canon": null, "flags": 6020, "help": "deprecated, use -/filter", - "argname": "filename", - "canon": null + "name": "filter_script", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "reinit_filter", - "type": "OPT_TYPE_INT", + "argname": "", + "canon": null, "flags": 3972, "help": "reinit filtergraph on input parameter changes", - "argname": "", - "canon": null + "name": "reinit_filter", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter_complex", - "type": "OPT_TYPE_FUNC", + "argname": "graph_description", + "canon": null, "flags": 5, "help": "create a complex filtergraph", - "argname": "graph_description", - "canon": null + "name": "filter_complex", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter_complex_threads", - "type": "OPT_TYPE_INT", + "argname": null, + "canon": null, "flags": 4, "help": "number of threads for -filter_complex", - "argname": null, - "canon": null + "name": "filter_complex_threads", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "lavfi", - "type": "OPT_TYPE_FUNC", + "argname": "graph_description", + "canon": null, "flags": 5, "help": "create a complex filtergraph", - "argname": "graph_description", - "canon": null + "name": "lavfi", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter_complex_script", - "type": "OPT_TYPE_FUNC", + "argname": "filename", + "canon": null, "flags": 5, "help": "deprecated, use -/filter_complex instead", - "argname": "filename", - "canon": null + "name": "filter_complex_script", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "auto_conversion_filters", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "enable automatic conversion filters globally", - "argname": null, - "canon": null + "name": "auto_conversion_filters", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 0, "help": "print progress report during encoding", - "argname": null, - "canon": null + "name": "stats", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_period", - "type": "OPT_TYPE_FUNC", + "argname": "time", + "canon": null, "flags": 5, "help": "set the period at which ffmpeg updates stats and -progress output", - "argname": "time", - "canon": null + "name": "stats_period", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "attach", - "type": "OPT_TYPE_FUNC", + "argname": "filename", + "canon": null, "flags": 4229, "help": "add an attachment to the output file", - "argname": "filename", - "canon": null + "name": "attach", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dump_attachment", - "type": "OPT_TYPE_STRING", + "argname": "filename", + "canon": null, "flags": 2948, "help": "extract an attachment into a file", - "argname": "filename", - "canon": null + "name": "dump_attachment", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stream_loop", - "type": "OPT_TYPE_INT", + "argname": "loop count", + "canon": null, "flags": 2436, "help": "set number of times input stream shall be looped", - "argname": "loop count", - "canon": null + "name": "stream_loop", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "debug_ts", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4, "help": "print timestamp debugging info", - "argname": null, - "canon": null + "name": "debug_ts", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "max_error_rate", - "type": "OPT_TYPE_FLOAT", + "argname": "maximum error rate", + "canon": null, "flags": 4, "help": "ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.", - "argname": "maximum error rate", - "canon": null + "name": "max_error_rate", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "discard", - "type": "OPT_TYPE_STRING", + "argname": "", + "canon": null, "flags": 3972, "help": "discard", - "argname": "", - "canon": null + "name": "discard", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "disposition", - "type": "OPT_TYPE_STRING", + "argname": "", + "canon": null, "flags": 6020, "help": "disposition", - "argname": "", - "canon": null + "name": "disposition", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "thread_queue_size", - "type": "OPT_TYPE_INT", + "argname": null, + "canon": null, "flags": 6532, "help": "set the maximum number of queued packets from the demuxer", - "argname": null, - "canon": null + "name": "thread_queue_size", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "find_stream_info", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 2436, "help": "read and decode the streams to fill missing information with heuristics", - "argname": null, - "canon": null + "name": "find_stream_info", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "bits_per_raw_sample", - "type": "OPT_TYPE_INT", + "argname": "number", + "canon": null, "flags": 6020, "help": "set the number of bits per raw sample", - "argname": "number", - "canon": null + "name": "bits_per_raw_sample", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_enc_pre", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6020, "help": "write encoding stats before encoding", - "argname": null, - "canon": null + "name": "stats_enc_pre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_enc_post", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6020, "help": "write encoding stats after encoding", - "argname": null, - "canon": null + "name": "stats_enc_post", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_mux_pre", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6020, "help": "write packets stats before muxing", - "argname": null, - "canon": null + "name": "stats_mux_pre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_enc_pre_fmt", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6020, "help": "format of the stats written with -stats_enc_pre", - "argname": null, - "canon": null + "name": "stats_enc_pre_fmt", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_enc_post_fmt", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6020, "help": "format of the stats written with -stats_enc_post", - "argname": null, - "canon": null + "name": "stats_enc_post_fmt", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stats_mux_pre_fmt", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6020, "help": "format of the stats written with -stats_mux_pre", - "argname": null, - "canon": null + "name": "stats_mux_pre_fmt", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vframes", - "type": "OPT_TYPE_INT64", + "argname": "number", + "canon": ".u1.name_canon = \"frames\"", "flags": 20621, "help": "set the number of video frames to output", - "argname": "number", - "canon": ".u1.name_canon = \"frames\"" + "name": "vframes", + "type": "OPT_TYPE_INT64" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "r", - "type": "OPT_TYPE_STRING", + "argname": "rate", + "canon": null, "flags": 8072, "help": "override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)", - "argname": "rate", - "canon": null + "name": "r", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "fpsmax", - "type": "OPT_TYPE_STRING", + "argname": "rate", + "canon": null, "flags": 6028, "help": "set max frame rate (Hz value, fraction or abbreviation)", - "argname": "rate", - "canon": null + "name": "fpsmax", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "s", - "type": "OPT_TYPE_STRING", + "argname": "size", + "canon": null, "flags": 8104, "help": "set frame size (WxH or abbreviation)", - "argname": "size", - "canon": null + "name": "s", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "aspect", - "type": "OPT_TYPE_STRING", + "argname": "aspect", + "canon": null, "flags": 6024, "help": "set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)", - "argname": "aspect", - "canon": null + "name": "aspect", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "pix_fmt", - "type": "OPT_TYPE_STRING", + "argname": "format", + "canon": null, "flags": 8076, "help": "set pixel format", - "argname": "format", - "canon": null + "name": "pix_fmt", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "display_rotation", - "type": "OPT_TYPE_DOUBLE", + "argname": "angle", + "canon": null, "flags": 3980, "help": "set pure counter-clockwise rotation in degrees for stream(s)", - "argname": "angle", - "canon": null + "name": "display_rotation", + "type": "OPT_TYPE_DOUBLE" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "display_hflip", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 3980, "help": "set display horizontal flip for stream(s) (overrides any display rotation if it is not set)", - "argname": null, - "canon": null + "name": "display_hflip", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "display_vflip", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 3980, "help": "set display vertical flip for stream(s) (overrides any display rotation if it is not set)", - "argname": null, - "canon": null + "name": "display_vflip", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vn", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6536, "help": "disable video", - "argname": null, - "canon": null + "name": "vn", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "rc_override", - "type": "OPT_TYPE_STRING", + "argname": "override", + "canon": null, "flags": 6028, "help": "rate control override for specific intervals", - "argname": "override", - "canon": null + "name": "rc_override", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vcodec", - "type": "OPT_TYPE_STRING", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"", "flags": 22665, "help": "alias for -c:v (select encoder/decoder for video streams)", - "argname": "codec", - "canon": ".u1.name_canon = \"codec\"" + "name": "vcodec", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "timecode", - "type": "OPT_TYPE_FUNC", + "argname": "hh:mm:ss[:;.]ff", + "canon": null, "flags": 4237, "help": "set initial TimeCode value.", - "argname": "hh:mm:ss[:;.]ff", - "canon": null + "name": "timecode", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "pass", - "type": "OPT_TYPE_INT", + "argname": "n", + "canon": null, "flags": 6028, "help": "select the pass number (1 to 3)", - "argname": "n", - "canon": null + "name": "pass", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "passlogfile", - "type": "OPT_TYPE_STRING", + "argname": "prefix", + "canon": null, "flags": 6028, "help": "select two pass log file name prefix", - "argname": "prefix", - "canon": null + "name": "passlogfile", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vstats", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 12, "help": "dump video coding statistics to file", - "argname": null, - "canon": null + "name": "vstats", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vstats_file", - "type": "OPT_TYPE_FUNC", + "argname": "file", + "canon": null, "flags": 13, "help": "dump video coding statistics to file", - "argname": "file", - "canon": null + "name": "vstats_file", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vstats_version", - "type": "OPT_TYPE_INT", + "argname": null, + "canon": null, "flags": 12, "help": "Version of the vstats format to use.", - "argname": null, - "canon": null + "name": "vstats_version", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vf", - "type": "OPT_TYPE_STRING", + "argname": "filter_graph", + "canon": ".u1.name_canon = \"filter\"", "flags": 20617, "help": "alias for -filter:v (apply filters to video streams)", - "argname": "filter_graph", - "canon": ".u1.name_canon = \"filter\"" + "name": "vf", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "intra_matrix", - "type": "OPT_TYPE_STRING", + "argname": "matrix", + "canon": null, "flags": 6028, "help": "specify intra matrix coeffs", - "argname": "matrix", - "canon": null + "name": "intra_matrix", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "inter_matrix", - "type": "OPT_TYPE_STRING", + "argname": "matrix", + "canon": null, "flags": 6028, "help": "specify inter matrix coeffs", - "argname": "matrix", - "canon": null + "name": "inter_matrix", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "chroma_intra_matrix", - "type": "OPT_TYPE_STRING", + "argname": "matrix", + "canon": null, "flags": 6028, "help": "specify intra matrix coeffs", - "argname": "matrix", - "canon": null + "name": "chroma_intra_matrix", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vtag", - "type": "OPT_TYPE_STRING", + "argname": "fourcc/tag", + "canon": ".u1.name_canon = \"tag\"", "flags": 22669, "help": "force video tag/fourcc", - "argname": "fourcc/tag", - "canon": ".u1.name_canon = \"tag\"" + "name": "vtag", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "fps_mode", - "type": "OPT_TYPE_STRING", + "argname": null, + "canon": null, "flags": 6028, "help": "set framerate mode for matching video streams; overrides vsync", - "argname": null, - "canon": null + "name": "fps_mode", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "force_fps", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6028, "help": "force the selected framerate, disable the best supported framerate selection", - "argname": null, - "canon": null + "name": "force_fps", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "streamid", - "type": "OPT_TYPE_FUNC", + "argname": "streamIndex:value", + "canon": null, "flags": 4237, "help": "set the value of an outfile streamid", - "argname": "streamIndex:value", - "canon": null + "name": "streamid", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "force_key_frames", - "type": "OPT_TYPE_STRING", + "argname": "timestamps", + "canon": null, "flags": 6028, "help": "force key frames at specified timestamps", - "argname": "timestamps", - "canon": null + "name": "force_key_frames", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "b", - "type": "OPT_TYPE_FUNC", + "argname": "bitrate", + "canon": null, "flags": 4233, "help": "video bitrate (please use -b:v)", - "argname": "bitrate", - "canon": null + "name": "b", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "hwaccel", - "type": "OPT_TYPE_STRING", + "argname": "hwaccel name", + "canon": null, "flags": 3980, "help": "use HW accelerated decoding", - "argname": "hwaccel name", - "canon": null + "name": "hwaccel", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "hwaccel_device", - "type": "OPT_TYPE_STRING", + "argname": "devicename", + "canon": null, "flags": 3980, "help": "select a device for HW acceleration", - "argname": "devicename", - "canon": null + "name": "hwaccel_device", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "hwaccel_output_format", - "type": "OPT_TYPE_STRING", + "argname": "format", + "canon": null, "flags": 3980, "help": "select output format used with HW accelerated decoding", - "argname": "format", - "canon": null + "name": "hwaccel_output_format", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "hwaccels", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 6, "help": "show available HW acceleration methods", - "argname": null, - "canon": null + "name": "hwaccels", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "autorotate", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 3972, "help": "automatically insert correct rotate filters", - "argname": null, - "canon": null + "name": "autorotate", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "autoscale", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6020, "help": "automatically insert a scale filter at the end of the filter graph", - "argname": null, - "canon": null + "name": "autoscale", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "fix_sub_duration_heartbeat", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6028, "help": "set this video output stream to be a heartbeat stream for fix_sub_duration, according to which subtitles should be split at random access points", - "argname": null, - "canon": null + "name": "fix_sub_duration_heartbeat", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "aframes", - "type": "OPT_TYPE_INT64", + "argname": "number", + "canon": ".u1.name_canon = \"frames\"", "flags": 20629, "help": "set the number of audio frames to output", - "argname": "number", - "canon": ".u1.name_canon = \"frames\"" + "name": "aframes", + "type": "OPT_TYPE_INT64" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "aq", - "type": "OPT_TYPE_FUNC", + "argname": "quality", + "canon": null, "flags": 4241, "help": "set audio quality (codec-specific)", - "argname": "quality", - "canon": null + "name": "aq", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "ar", - "type": "OPT_TYPE_INT", + "argname": "rate", + "canon": null, "flags": 8080, "help": "set audio sampling rate (in Hz)", - "argname": "rate", - "canon": null + "name": "ar", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "ac", - "type": "OPT_TYPE_INT", + "argname": "channels", + "canon": null, "flags": 8080, "help": "set number of audio channels", - "argname": "channels", - "canon": null + "name": "ac", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "an", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6544, "help": "disable audio", - "argname": null, - "canon": null + "name": "an", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "acodec", - "type": "OPT_TYPE_STRING", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"", "flags": 22673, "help": "alias for -c:a (select encoder/decoder for audio streams)", - "argname": "codec", - "canon": ".u1.name_canon = \"codec\"" + "name": "acodec", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "ab", - "type": "OPT_TYPE_FUNC", + "argname": "bitrate", + "canon": null, "flags": 4241, "help": "alias for -b:a (select bitrate for audio streams)", - "argname": "bitrate", - "canon": null + "name": "ab", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "atag", - "type": "OPT_TYPE_STRING", + "argname": "fourcc/tag", + "canon": ".u1.name_canon = \"tag\"", "flags": 20629, "help": "force audio tag/fourcc", - "argname": "fourcc/tag", - "canon": ".u1.name_canon = \"tag\"" + "name": "atag", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sample_fmt", - "type": "OPT_TYPE_STRING", + "argname": "format", + "canon": null, "flags": 8084, "help": "set sample format", - "argname": "format", - "canon": null + "name": "sample_fmt", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "channel_layout", - "type": "OPT_TYPE_STRING", + "argname": "layout", + "canon": ".u1.names_alt = alt_channel_layout", "flags": 16276, "help": "set channel layout", - "argname": "layout", - "canon": ".u1.names_alt = alt_channel_layout" + "name": "channel_layout", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "ch_layout", - "type": "OPT_TYPE_STRING", + "argname": "layout", + "canon": ".u1.name_canon = \"channel_layout\"", "flags": 24468, "help": "set channel layout", - "argname": "layout", - "canon": ".u1.name_canon = \"channel_layout\"" + "name": "ch_layout", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "af", - "type": "OPT_TYPE_STRING", + "argname": "filter_graph", + "canon": ".u1.name_canon = \"filter\"", "flags": 20625, "help": "alias for -filter:a (apply filters to audio streams)", - "argname": "filter_graph", - "canon": ".u1.name_canon = \"filter\"" + "name": "af", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "guess_layout_max", - "type": "OPT_TYPE_INT", + "argname": null, + "canon": null, "flags": 3988, "help": "set the maximum number of channels to try to guess the channel layout", - "argname": null, - "canon": null + "name": "guess_layout_max", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sn", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6560, "help": "disable subtitle", - "argname": null, - "canon": null + "name": "sn", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "scodec", - "type": "OPT_TYPE_STRING", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"", "flags": 22689, "help": "alias for -c:s (select encoder/decoder for subtitle streams)", - "argname": "codec", - "canon": ".u1.name_canon = \"codec\"" + "name": "scodec", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "stag", - "type": "OPT_TYPE_STRING", + "argname": "fourcc/tag", + "canon": ".u1.name_canon = \"tag\"", "flags": 20645, "help": "force subtitle tag/fourcc", - "argname": "fourcc/tag", - "canon": ".u1.name_canon = \"tag\"" + "name": "stag", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "fix_sub_duration", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 4004, "help": "fix subtitles duration", - "argname": null, - "canon": null + "name": "fix_sub_duration", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "canvas_size", - "type": "OPT_TYPE_STRING", + "argname": "size", + "canon": null, "flags": 4004, "help": "set canvas size (WxH or abbreviation)", - "argname": "size", - "canon": null + "name": "canvas_size", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "muxdelay", - "type": "OPT_TYPE_FLOAT", + "argname": "seconds", + "canon": null, "flags": 4484, "help": "set the maximum demux-decode delay", - "argname": "seconds", - "canon": null + "name": "muxdelay", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "muxpreload", - "type": "OPT_TYPE_FLOAT", + "argname": "seconds", + "canon": null, "flags": 4484, "help": "set the initial demux-decode delay", - "argname": "seconds", - "canon": null + "name": "muxpreload", + "type": "OPT_TYPE_FLOAT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "sdp_file", - "type": "OPT_TYPE_FUNC", + "argname": "file", + "canon": null, "flags": 4101, "help": "specify a file in which to print sdp information", - "argname": "file", - "canon": null + "name": "sdp_file", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "time_base", - "type": "OPT_TYPE_STRING", + "argname": "ratio", + "canon": null, "flags": 6020, "help": "set the desired time base hint for output stream (1:24, 1:48000 or 0.04166, 2.0833e-5)", - "argname": "ratio", - "canon": null + "name": "time_base", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "enc_time_base", - "type": "OPT_TYPE_STRING", + "argname": "ratio", + "canon": null, "flags": 6020, "help": "set the desired time base for the encoder (1:24, 1:48000 or 0.04166, 2.0833e-5). two special values are defined - 0 = use frame rate (video) or sample rate (audio),-1 = match source time base", - "argname": "ratio", - "canon": null + "name": "enc_time_base", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "bsf", - "type": "OPT_TYPE_STRING", + "argname": "bitstream_filters", + "canon": null, "flags": 8068, "help": "A comma-separated list of bitstream filters", - "argname": "bitstream_filters", - "canon": null + "name": "bsf", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "apre", - "type": "OPT_TYPE_STRING", + "argname": "preset", + "canon": ".u1.name_canon = \"pre\"", "flags": 20629, "help": "set the audio options to the indicated preset", - "argname": "preset", - "canon": ".u1.name_canon = \"pre\"" + "name": "apre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vpre", - "type": "OPT_TYPE_STRING", + "argname": "preset", + "canon": ".u1.name_canon = \"pre\"", "flags": 20621, "help": "set the video options to the indicated preset", - "argname": "preset", - "canon": ".u1.name_canon = \"pre\"" + "name": "vpre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "spre", - "type": "OPT_TYPE_STRING", + "argname": "preset", + "canon": ".u1.name_canon = \"pre\"", "flags": 20645, "help": "set the subtitle options to the indicated preset", - "argname": "preset", - "canon": ".u1.name_canon = \"pre\"" + "name": "spre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "fpre", - "type": "OPT_TYPE_STRING", + "argname": "filename", + "canon": ".u1.name_canon = \"pre\"", "flags": 20613, "help": "set options from indicated preset file", - "argname": "filename", - "canon": ".u1.name_canon = \"pre\"" + "name": "fpre", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "max_muxing_queue_size", - "type": "OPT_TYPE_INT", + "argname": "packets", + "canon": null, "flags": 6020, "help": "maximum number of packets that can be buffered while waiting for all streams to initialize", - "argname": "packets", - "canon": null + "name": "max_muxing_queue_size", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "muxing_queue_data_threshold", - "type": "OPT_TYPE_INT", + "argname": "bytes", + "canon": null, "flags": 6020, "help": "set the threshold after which max_muxing_queue_size is taken into account", - "argname": "bytes", - "canon": null + "name": "muxing_queue_data_threshold", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dcodec", - "type": "OPT_TYPE_STRING", + "argname": "codec", + "canon": ".u1.name_canon = \"codec\"", "flags": 22725, "help": "alias for -c:d (select encoder/decoder for data streams)", - "argname": "codec", - "canon": ".u1.name_canon = \"codec\"" + "name": "dcodec", + "type": "OPT_TYPE_STRING" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "dn", - "type": "OPT_TYPE_BOOL", + "argname": null, + "canon": null, "flags": 6592, "help": "disable data", - "argname": null, - "canon": null + "name": "dn", + "type": "OPT_TYPE_BOOL" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "init_hw_device", - "type": "OPT_TYPE_FUNC", + "argname": "args", + "canon": null, "flags": 5, "help": "initialise hardware device", - "argname": "args", - "canon": null + "name": "init_hw_device", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "filter_hw_device", - "type": "OPT_TYPE_FUNC", + "argname": "device", + "canon": null, "flags": 5, "help": "set hardware device used when filtering", - "argname": "device", - "canon": null + "name": "filter_hw_device", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "adrift_threshold", - "type": "OPT_TYPE_FUNC", + "argname": "threshold", + "canon": null, "flags": 5, "help": "deprecated, does nothing", - "argname": "threshold", - "canon": null + "name": "adrift_threshold", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "top", - "type": "OPT_TYPE_INT", + "argname": "", + "canon": null, "flags": 8076, "help": "deprecated, use the setfield video filter", - "argname": "", - "canon": null + "name": "top", + "type": "OPT_TYPE_INT" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "qphist", - "type": "OPT_TYPE_FUNC", + "argname": null, + "canon": null, "flags": 12, "help": "deprecated, does nothing", - "argname": null, - "canon": null + "name": "qphist", + "type": "OPT_TYPE_FUNC" }, { "__class__": "ffmpeg.common.schema.FFMpegOption", - "name": "vsync", - "type": "OPT_TYPE_FUNC", + "argname": "", + "canon": null, "flags": 5, "help": "set video sync method globally; deprecated, use -fps_mode", - "argname": "", - "canon": null + "name": "vsync", + "type": "OPT_TYPE_FUNC" } ] -} \ No newline at end of file +} diff --git a/src/scripts/parse_c/cli.py b/src/scripts/parse_c/cli.py index 146b686c..515457f1 100644 --- a/src/scripts/parse_c/cli.py +++ b/src/scripts/parse_c/cli.py @@ -1,7 +1,8 @@ import typer -from ..cache import save + from ffmpeg.common.schema import FFMpegOption, FFMpegOptionList +from ..cache import save from .parse_ffmpeg_opt_c import parse_ffmpeg_opt_c from .pre_compile import precompile, target_folder @@ -18,7 +19,7 @@ def parse_ffmpeg_options() -> list[FFMpegOption]: precompile() ffmpeg_opt_c = target_folder / "fftools/ffmpeg_opt.c" - r = parse_ffmpeg_opt_c(ffmpeg_opt_c.read_text()) + r = parse_ffmpeg_opt_c(ffmpeg_opt_c.read_text()) option_list = FFMpegOptionList(options=r) save(option_list, "list")