{
    "content": [
        {
            "type": "text",
            "text": "# ffmpeg-codecs (man)\n\n## NAME\n\nffmpeg-codecs - FFmpeg codecs\n\n## DESCRIPTION\n\nThis document describes the codecs (decoders and encoders) provided by the libavcodec\nlibrary.\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION**\n- **CODEC OPTIONS**\n- **DECODERS**\n- **VIDEO DECODERS** (16 subsections)\n- **AUDIO DECODERS** (12 subsections)\n- **SUBTITLES DECODERS** (35 subsections)\n- **ENCODERS**\n- **AUDIO ENCODERS** (72 subsections)\n- **VIDEO ENCODERS** (156 subsections)\n- **SUBTITLES ENCODERS** (3 subsections)\n- **SEE ALSO**\n- **AUTHORS**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "ffmpeg-codecs",
        "section": "",
        "mode": "man",
        "summary": "ffmpeg-codecs - FFmpeg codecs",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "ffmpeg",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/ffmpeg/1/json"
            },
            {
                "name": "ffplay",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/ffplay/1/json"
            },
            {
                "name": "ffprobe",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/ffprobe/1/json"
            },
            {
                "name": "libavcodec",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/libavcodec/3/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "CODEC OPTIONS",
                "lines": 1025,
                "subsections": []
            },
            {
                "name": "DECODERS",
                "lines": 13,
                "subsections": []
            },
            {
                "name": "VIDEO DECODERS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "av1",
                        "lines": 4
                    },
                    {
                        "name": "operating_point",
                        "lines": 2
                    },
                    {
                        "name": "rawvideo",
                        "lines": 15
                    },
                    {
                        "name": "libdav1d",
                        "lines": 10
                    },
                    {
                        "name": "framethreads",
                        "lines": 4
                    },
                    {
                        "name": "tilethreads",
                        "lines": 4
                    },
                    {
                        "name": "max_frame_delay",
                        "lines": 3
                    },
                    {
                        "name": "filmgrain",
                        "lines": 5
                    },
                    {
                        "name": "oppoint",
                        "lines": 3
                    },
                    {
                        "name": "alllayers",
                        "lines": 2
                    },
                    {
                        "name": "libdavs2",
                        "lines": 4
                    },
                    {
                        "name": "libuavs3d",
                        "lines": 10
                    },
                    {
                        "name": "frame_threads",
                        "lines": 2
                    },
                    {
                        "name": "QSV Decoders",
                        "lines": 30
                    },
                    {
                        "name": "v210",
                        "lines": 4
                    },
                    {
                        "name": "custom_stride",
                        "lines": 3
                    }
                ]
            },
            {
                "name": "AUDIO DECODERS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "ac3",
                        "lines": 7
                    },
                    {
                        "name": "-drc_scale _",
                        "lines": 15
                    },
                    {
                        "name": "flac",
                        "lines": 6
                    },
                    {
                        "name": "-use_buggy_lpc",
                        "lines": 4
                    },
                    {
                        "name": "ffwavesynth",
                        "lines": 5
                    },
                    {
                        "name": "libcelt",
                        "lines": 6
                    },
                    {
                        "name": "libgsm",
                        "lines": 8
                    },
                    {
                        "name": "libilbc",
                        "lines": 10
                    },
                    {
                        "name": "enhance",
                        "lines": 3
                    },
                    {
                        "name": "libopencore-amrnb",
                        "lines": 8
                    },
                    {
                        "name": "libopencore-amrwb",
                        "lines": 8
                    },
                    {
                        "name": "libopus",
                        "lines": 8
                    }
                ]
            },
            {
                "name": "SUBTITLES DECODERS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "libaribb24",
                        "lines": 6
                    },
                    {
                        "name": "-aribb24-base-path _",
                        "lines": 6
                    },
                    {
                        "name": "-aribb24-skip-ruby-text _",
                        "lines": 4
                    },
                    {
                        "name": "libaribcaption",
                        "lines": 12
                    },
                    {
                        "name": "-sub_type _",
                        "lines": 13
                    },
                    {
                        "name": "-caption_encoding _",
                        "lines": 16
                    },
                    {
                        "name": "-font _",
                        "lines": 5
                    },
                    {
                        "name": "-ass_single_rect _",
                        "lines": 11
                    },
                    {
                        "name": "-force_outline_text _",
                        "lines": 5
                    },
                    {
                        "name": "-outline_width _",
                        "lines": 4
                    },
                    {
                        "name": "-ignore_background _",
                        "lines": 4
                    },
                    {
                        "name": "-ignore_ruby _",
                        "lines": 4
                    },
                    {
                        "name": "-replace_drcs _",
                        "lines": 4
                    },
                    {
                        "name": "-replace_msz_ascii _",
                        "lines": 5
                    },
                    {
                        "name": "-replace_msz_japanese _",
                        "lines": 5
                    },
                    {
                        "name": "-replace_msz_glyph _",
                        "lines": 7
                    },
                    {
                        "name": "-canvas_size _",
                        "lines": 33
                    },
                    {
                        "name": "dvbsub",
                        "lines": 2
                    },
                    {
                        "name": "compute_clut",
                        "lines": 8
                    },
                    {
                        "name": "dvb_substream",
                        "lines": 2
                    },
                    {
                        "name": "dvdsub",
                        "lines": 5
                    },
                    {
                        "name": "palette",
                        "lines": 9
                    },
                    {
                        "name": "ifo_palette",
                        "lines": 2
                    },
                    {
                        "name": "forced_subs_only",
                        "lines": 4
                    },
                    {
                        "name": "libzvbi-teletext",
                        "lines": 6
                    },
                    {
                        "name": "txt_page",
                        "lines": 4
                    },
                    {
                        "name": "txt_default_region",
                        "lines": 5
                    },
                    {
                        "name": "txt_chop_top",
                        "lines": 2
                    },
                    {
                        "name": "txt_format",
                        "lines": 13
                    },
                    {
                        "name": "txt_left",
                        "lines": 2
                    },
                    {
                        "name": "txt_top",
                        "lines": 2
                    },
                    {
                        "name": "txt_chop_spaces",
                        "lines": 5
                    },
                    {
                        "name": "txt_duration",
                        "lines": 3
                    },
                    {
                        "name": "txt_transparent",
                        "lines": 3
                    },
                    {
                        "name": "txt_opacity",
                        "lines": 4
                    }
                ]
            },
            {
                "name": "ENCODERS",
                "lines": 13,
                "subsections": []
            },
            {
                "name": "AUDIO ENCODERS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "aac",
                        "lines": 12
                    },
                    {
                        "name": "cutoff",
                        "lines": 3
                    },
                    {
                        "name": "aac_coder",
                        "lines": 24
                    },
                    {
                        "name": "aac_ms",
                        "lines": 4
                    },
                    {
                        "name": "aac_is",
                        "lines": 4
                    },
                    {
                        "name": "aac_pns",
                        "lines": 4
                    },
                    {
                        "name": "aac_tns",
                        "lines": 6
                    },
                    {
                        "name": "aac_ltp",
                        "lines": 6
                    },
                    {
                        "name": "aac_pred",
                        "lines": 6
                    },
                    {
                        "name": "profile",
                        "lines": 20
                    },
                    {
                        "name": "ac3 and ac3_fixed",
                        "lines": 29
                    },
                    {
                        "name": "-per_frame_metadata _",
                        "lines": 10
                    },
                    {
                        "name": "-center_mixlev _",
                        "lines": 13
                    },
                    {
                        "name": "-surround_mixlev _",
                        "lines": 19
                    },
                    {
                        "name": "-mixing_level _",
                        "lines": 6
                    },
                    {
                        "name": "-room_type _",
                        "lines": 20
                    },
                    {
                        "name": "-copyright _",
                        "lines": 8
                    },
                    {
                        "name": "-dialnorm _",
                        "lines": 7
                    },
                    {
                        "name": "-dsur_mode _",
                        "lines": 14
                    },
                    {
                        "name": "-original _",
                        "lines": 20
                    },
                    {
                        "name": "-dmix_mode _",
                        "lines": 15
                    },
                    {
                        "name": "-ltrt_cmixlev _",
                        "lines": 27
                    },
                    {
                        "name": "-ltrt_surmixlev _",
                        "lines": 18
                    },
                    {
                        "name": "-loro_cmixlev _",
                        "lines": 27
                    },
                    {
                        "name": "-loro_surmixlev _",
                        "lines": 20
                    },
                    {
                        "name": "-dsurex_mode _",
                        "lines": 14
                    },
                    {
                        "name": "-dheadphone_mode _",
                        "lines": 14
                    },
                    {
                        "name": "-ad_conv_type _",
                        "lines": 12
                    },
                    {
                        "name": "-stereo_rematrixing _",
                        "lines": 14
                    },
                    {
                        "name": "-channel_coupling _",
                        "lines": 18
                    },
                    {
                        "name": "-cpl_start_band _",
                        "lines": 10
                    },
                    {
                        "name": "flac",
                        "lines": 6
                    },
                    {
                        "name": "compression_level",
                        "lines": 3
                    },
                    {
                        "name": "frame_size",
                        "lines": 2
                    },
                    {
                        "name": "lpc_coeff_precision",
                        "lines": 2
                    },
                    {
                        "name": "lpc_type",
                        "lines": 10
                    },
                    {
                        "name": "lpc_passes",
                        "lines": 2
                    },
                    {
                        "name": "min_partition_order",
                        "lines": 2
                    },
                    {
                        "name": "max_partition_order",
                        "lines": 2
                    },
                    {
                        "name": "prediction_order_method",
                        "lines": 8
                    },
                    {
                        "name": "ch_mode",
                        "lines": 11
                    },
                    {
                        "name": "exact_rice_parameters",
                        "lines": 4
                    },
                    {
                        "name": "multi_dim_quant",
                        "lines": 4
                    },
                    {
                        "name": "opus",
                        "lines": 11
                    },
                    {
                        "name": "opus_delay",
                        "lines": 3
                    },
                    {
                        "name": "libfdk_aac",
                        "lines": 30
                    },
                    {
                        "name": "channels",
                        "lines": 2
                    },
                    {
                        "name": "flags +qscale",
                        "lines": 3
                    },
                    {
                        "name": "cutoff",
                        "lines": 3
                    },
                    {
                        "name": "profile",
                        "lines": 23
                    },
                    {
                        "name": "afterburner",
                        "lines": 5
                    },
                    {
                        "name": "eld_sbr",
                        "lines": 4
                    },
                    {
                        "name": "eld_v2",
                        "lines": 8
                    },
                    {
                        "name": "signaling",
                        "lines": 19
                    },
                    {
                        "name": "latm",
                        "lines": 4
                    },
                    {
                        "name": "header_period",
                        "lines": 26
                    },
                    {
                        "name": "frame_length",
                        "lines": 14
                    },
                    {
                        "name": "libmp3lame",
                        "lines": 27
                    },
                    {
                        "name": "reservoir",
                        "lines": 17
                    },
                    {
                        "name": "libopencore-amrnb",
                        "lines": 24
                    },
                    {
                        "name": "libopus",
                        "lines": 47
                    },
                    {
                        "name": "application (N.A.)",
                        "lines": 11
                    },
                    {
                        "name": "cutoff (N.A.)",
                        "lines": 16
                    },
                    {
                        "name": "apply_phase_inv (N.A.) (requires libopus >= 1.2)",
                        "lines": 4
                    },
                    {
                        "name": "libshine",
                        "lines": 27
                    },
                    {
                        "name": "libtwolame",
                        "lines": 54
                    },
                    {
                        "name": "libvo-amrwbenc",
                        "lines": 25
                    },
                    {
                        "name": "libvorbis",
                        "lines": 41
                    },
                    {
                        "name": "mjpeg",
                        "lines": 4
                    },
                    {
                        "name": "huffman",
                        "lines": 8
                    },
                    {
                        "name": "wavpack",
                        "lines": 34
                    },
                    {
                        "name": "optimize_mono",
                        "lines": 7
                    }
                ]
            },
            {
                "name": "VIDEO ENCODERS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "a64_multi, a64_multi5",
                        "lines": 3
                    },
                    {
                        "name": "Cinepak",
                        "lines": 68
                    },
                    {
                        "name": "Hap",
                        "lines": 29
                    },
                    {
                        "name": "jpeg2000",
                        "lines": 54
                    },
                    {
                        "name": "librav1e",
                        "lines": 7
                    },
                    {
                        "name": "qmax",
                        "lines": 2
                    },
                    {
                        "name": "qmin",
                        "lines": 4
                    },
                    {
                        "name": "speed",
                        "lines": 2
                    },
                    {
                        "name": "tiles",
                        "lines": 2
                    },
                    {
                        "name": "tile-rows",
                        "lines": 2
                    },
                    {
                        "name": "tile-columns",
                        "lines": 2
                    },
                    {
                        "name": "rav1e-params",
                        "lines": 7
                    },
                    {
                        "name": "libaom-av1",
                        "lines": 13
                    },
                    {
                        "name": "g keyint_min",
                        "lines": 6
                    },
                    {
                        "name": "qmin qmax",
                        "lines": 4
                    },
                    {
                        "name": "minrate maxrate bufsize rc_init_occupancy",
                        "lines": 3
                    },
                    {
                        "name": "threads",
                        "lines": 4
                    },
                    {
                        "name": "profile",
                        "lines": 5
                    },
                    {
                        "name": "cpu-used",
                        "lines": 4
                    },
                    {
                        "name": "auto-alt-ref",
                        "lines": 29
                    },
                    {
                        "name": "lag-in-frames",
                        "lines": 3
                    },
                    {
                        "name": "error-resilience",
                        "lines": 12
                    },
                    {
                        "name": "static-thresh",
                        "lines": 4
                    },
                    {
                        "name": "drop-threshold",
                        "lines": 34
                    },
                    {
                        "name": "tiles",
                        "lines": 5
                    },
                    {
                        "name": "tile-columns tile-rows",
                        "lines": 3
                    },
                    {
                        "name": "row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)",
                        "lines": 102
                    },
                    {
                        "name": "aom-params",
                        "lines": 7
                    },
                    {
                        "name": "libsvtav1",
                        "lines": 7
                    },
                    {
                        "name": "profile",
                        "lines": 5
                    },
                    {
                        "name": "level",
                        "lines": 2
                    },
                    {
                        "name": "hielevel",
                        "lines": 6
                    },
                    {
                        "name": "tier",
                        "lines": 6
                    },
                    {
                        "name": "qmax",
                        "lines": 2
                    },
                    {
                        "name": "qmin",
                        "lines": 6
                    },
                    {
                        "name": "sc_detection",
                        "lines": 2
                    },
                    {
                        "name": "la_depth",
                        "lines": 2
                    },
                    {
                        "name": "preset",
                        "lines": 3
                    },
                    {
                        "name": "tile_rows",
                        "lines": 2
                    },
                    {
                        "name": "tile_columns",
                        "lines": 2
                    },
                    {
                        "name": "svtav1-params",
                        "lines": 3
                    },
                    {
                        "name": "libjxl",
                        "lines": 9
                    },
                    {
                        "name": "distance",
                        "lines": 6
                    },
                    {
                        "name": "effort",
                        "lines": 4
                    },
                    {
                        "name": "modular",
                        "lines": 4
                    },
                    {
                        "name": "libkvazaar",
                        "lines": 9
                    },
                    {
                        "name": "kvazaar-params",
                        "lines": 3
                    },
                    {
                        "name": "libopenh264",
                        "lines": 16
                    },
                    {
                        "name": "maxrate",
                        "lines": 2
                    },
                    {
                        "name": "flags +global_header",
                        "lines": 2
                    },
                    {
                        "name": "slices",
                        "lines": 3
                    },
                    {
                        "name": "loopfilter",
                        "lines": 2
                    },
                    {
                        "name": "profile",
                        "lines": 3
                    },
                    {
                        "name": "max_nal_size",
                        "lines": 2
                    },
                    {
                        "name": "allow_skip_frames",
                        "lines": 2
                    },
                    {
                        "name": "libtheora",
                        "lines": 15
                    },
                    {
                        "name": "flags",
                        "lines": 5
                    },
                    {
                        "name": "global_quality",
                        "lines": 26
                    },
                    {
                        "name": "libvpx",
                        "lines": 40
                    },
                    {
                        "name": "undershoot-pct",
                        "lines": 2
                    },
                    {
                        "name": "overshoot-pct",
                        "lines": 38
                    },
                    {
                        "name": "static-thresh",
                        "lines": 6
                    },
                    {
                        "name": "max-intra-rate",
                        "lines": 3
                    },
                    {
                        "name": "force_key_frames",
                        "lines": 2
                    },
                    {
                        "name": "Alternate reference frame related",
                        "lines": 19
                    },
                    {
                        "name": "error-resilient",
                        "lines": 5
                    },
                    {
                        "name": "ts-parameters",
                        "lines": 48
                    },
                    {
                        "name": "VP9-specific options",
                        "lines": 87
                    },
                    {
                        "name": "libwebp",
                        "lines": 16
                    },
                    {
                        "name": "-lossless _",
                        "lines": 2
                    },
                    {
                        "name": "-compression_level _",
                        "lines": 7
                    },
                    {
                        "name": "-quality _",
                        "lines": 3
                    },
                    {
                        "name": "-preset _",
                        "lines": 24
                    },
                    {
                        "name": "libx264, libx264rgb",
                        "lines": 103
                    },
                    {
                        "name": "forced-idr",
                        "lines": 12
                    },
                    {
                        "name": "coder",
                        "lines": 18
                    },
                    {
                        "name": "thread_type",
                        "lines": 9
                    },
                    {
                        "name": "flags",
                        "lines": 13
                    },
                    {
                        "name": "fastfirstpass",
                        "lines": 36
                    },
                    {
                        "name": "weightb",
                        "lines": 43
                    },
                    {
                        "name": "mixed-refs",
                        "lines": 3
                    },
                    {
                        "name": "8x8dct",
                        "lines": 3
                    },
                    {
                        "name": "fast-pskip",
                        "lines": 6
                    },
                    {
                        "name": "mbtree",
                        "lines": 68
                    },
                    {
                        "name": "x264opts (N.A.)",
                        "lines": 21
                    },
                    {
                        "name": "x264-params (N.A.)",
                        "lines": 14
                    },
                    {
                        "name": "libx265",
                        "lines": 12
                    },
                    {
                        "name": "keyint_min",
                        "lines": 2
                    },
                    {
                        "name": "refs",
                        "lines": 2
                    },
                    {
                        "name": "preset",
                        "lines": 2
                    },
                    {
                        "name": "tune",
                        "lines": 2
                    },
                    {
                        "name": "profile",
                        "lines": 6
                    },
                    {
                        "name": "qmin",
                        "lines": 2
                    },
                    {
                        "name": "qmax",
                        "lines": 2
                    },
                    {
                        "name": "qdiff",
                        "lines": 2
                    },
                    {
                        "name": "qblur",
                        "lines": 2
                    },
                    {
                        "name": "qcomp",
                        "lines": 2
                    },
                    {
                        "name": "i_qfactor",
                        "lines": 1
                    },
                    {
                        "name": "b_qfactor",
                        "lines": 1
                    },
                    {
                        "name": "forced-idr",
                        "lines": 6
                    },
                    {
                        "name": "x265-params",
                        "lines": 7
                    },
                    {
                        "name": "libxavs2",
                        "lines": 17
                    },
                    {
                        "name": "lcu_row_threads",
                        "lines": 2
                    },
                    {
                        "name": "initial_qp",
                        "lines": 6
                    },
                    {
                        "name": "max_qp",
                        "lines": 2
                    },
                    {
                        "name": "min_qp",
                        "lines": 2
                    },
                    {
                        "name": "speed_level",
                        "lines": 2
                    },
                    {
                        "name": "log_level",
                        "lines": 3
                    },
                    {
                        "name": "xavs2-params",
                        "lines": 6
                    },
                    {
                        "name": "libxvid",
                        "lines": 18
                    },
                    {
                        "name": "qmin",
                        "lines": 1
                    },
                    {
                        "name": "qmax",
                        "lines": 1
                    },
                    {
                        "name": "mpeg_quant",
                        "lines": 1
                    },
                    {
                        "name": "threads",
                        "lines": 1
                    },
                    {
                        "name": "b_qfactor",
                        "lines": 1
                    },
                    {
                        "name": "b_qoffset",
                        "lines": 1
                    },
                    {
                        "name": "flags",
                        "lines": 20
                    },
                    {
                        "name": "trellis",
                        "lines": 1
                    },
                    {
                        "name": "me_quality",
                        "lines": 30
                    },
                    {
                        "name": "lumi_aq",
                        "lines": 2
                    },
                    {
                        "name": "variance_aq",
                        "lines": 6
                    },
                    {
                        "name": "ssim",
                        "lines": 21
                    },
                    {
                        "name": "ssim_acc",
                        "lines": 3
                    },
                    {
                        "name": "MediaFoundation",
                        "lines": 5
                    },
                    {
                        "name": "Microsoft RLE",
                        "lines": 8
                    },
                    {
                        "name": "mpeg2",
                        "lines": 4
                    },
                    {
                        "name": "profile",
                        "lines": 10
                    },
                    {
                        "name": "level",
                        "lines": 31
                    },
                    {
                        "name": "png",
                        "lines": 10
                    },
                    {
                        "name": "ProRes",
                        "lines": 57
                    },
                    {
                        "name": "QSV Encoders",
                        "lines": 576
                    },
                    {
                        "name": "max_frame_size",
                        "lines": 4
                    },
                    {
                        "name": "snow",
                        "lines": 2
                    },
                    {
                        "name": "iterative_dia_size",
                        "lines": 2
                    },
                    {
                        "name": "VAAPI encoders",
                        "lines": 50
                    },
                    {
                        "name": "low_power",
                        "lines": 5
                    },
                    {
                        "name": "idr_interval",
                        "lines": 4
                    },
                    {
                        "name": "b_depth",
                        "lines": 4
                    },
                    {
                        "name": "async_depth",
                        "lines": 4
                    },
                    {
                        "name": "max_frame_size",
                        "lines": 4
                    },
                    {
                        "name": "rc_mode",
                        "lines": 24
                    },
                    {
                        "name": "av1_vaapi",
                        "lines": 11
                    },
                    {
                        "name": "h264_vaapi",
                        "lines": 28
                    },
                    {
                        "name": "hevc_vaapi",
                        "lines": 19
                    },
                    {
                        "name": "mjpeg_vaapi",
                        "lines": 15
                    },
                    {
                        "name": "mpeg2_vaapi",
                        "lines": 2
                    },
                    {
                        "name": "vp8_vaapi",
                        "lines": 8
                    },
                    {
                        "name": "vp9_vaapi",
                        "lines": 13
                    },
                    {
                        "name": "vbn",
                        "lines": 12
                    },
                    {
                        "name": "vc2",
                        "lines": 11
                    },
                    {
                        "name": "field_order",
                        "lines": 4
                    },
                    {
                        "name": "wavelet_depth",
                        "lines": 4
                    },
                    {
                        "name": "wavelet_type",
                        "lines": 3
                    },
                    {
                        "name": "slice_width",
                        "lines": 1
                    },
                    {
                        "name": "slice_height",
                        "lines": 4
                    },
                    {
                        "name": "tolerance",
                        "lines": 14
                    }
                ]
            },
            {
                "name": "SUBTITLES ENCODERS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "dvdsub",
                        "lines": 5
                    },
                    {
                        "name": "palette",
                        "lines": 6
                    },
                    {
                        "name": "even_rows_fix",
                        "lines": 7
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHORS",
                "lines": 10,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "ffmpeg-codecs - FFmpeg codecs\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This document describes the codecs (decoders and encoders) provided by the libavcodec\nlibrary.\n",
                "subsections": []
            },
            "CODEC OPTIONS": {
                "content": "libavcodec provides some generic global options, which can be set on all the encoders and\ndecoders. In addition each codec may support so-called private options, which are specific\nfor a given codec.\n\nSometimes, a global option may only affect a specific kind of codec, and may be nonsensical\nor ignored by another, so you need to be aware of the meaning of the specified options. Also\nsome options are meant only for decoding or encoding.\n\nOptions may be set by specifying -option value in the FFmpeg tools, or by setting the value\nexplicitly in the \"AVCodecContext\" options or using the libavutil/opt.h API for programmatic\nuse.\n\nThe list of supported options follow:\n\nb integer (encoding,audio,video)\nSet bitrate in bits/s. Default value is 200K.\n\nab integer (encoding,audio)\nSet audio bitrate (in bits/s). Default value is 128K.\n\nbt integer (encoding,video)\nSet  video bitrate tolerance (in bits/s). In 1-pass mode, bitrate tolerance specifies how\nfar ratecontrol is willing to deviate from the target average bitrate value. This is  not\nrelated to min/max bitrate. Lowering tolerance too much has an adverse effect on quality.\n\nflags flags (decoding/encoding,audio,video,subtitles)\nSet generic flags.\n\nPossible values:\n\nmv4 Use four motion vector by macroblock (mpeg4).\n\nqpel\nUse 1/4 pel motion compensation.\n\nloop\nUse loop filter.\n\nqscale\nUse fixed qscale.\n\npass1\nUse internal 2pass ratecontrol in first pass mode.\n\npass2\nUse internal 2pass ratecontrol in second pass mode.\n\ngray\nOnly decode/encode grayscale.\n\npsnr\nSet error[?] variables during encoding.\n\ntruncated\nInput bitstream might be randomly truncated.\n\ndropchanged\nDon't  output  frames  whose  parameters  differ  from first decoded frame in stream.\nError AVERRORINPUTCHANGED is returned when a frame is dropped.\n\nildct\nUse interlaced DCT.\n\nlowdelay\nForce low delay.\n\nglobalheader\nPlace global headers in extradata instead of every keyframe.\n\nbitexact\nOnly write platform-,  build-  and  time-independent  data.  (except  (I)DCT).   This\nensures  that  file  and data checksums are reproducible and match between platforms.\nIts primary use is for regression testing.\n\naic Apply H263 advanced intra coding / mpeg4 ac prediction.\n\nilme\nApply interlaced motion estimation.\n\ncgop\nUse closed gop.\n\noutputcorrupt\nOutput even potentially corrupted frames.\n\ntimebase rational number\nSet codec time base.\n\nIt is the fundamental unit of time (in seconds) in terms of which  frame  timestamps  are\nrepresented.  For  fixed-fps  content,  timebase should be \"1 / framerate\" and timestamp\nincrements should be identically 1.\n\ng integer (encoding,video)\nSet the group of picture (GOP) size. Default value is 12.\n\nar integer (decoding/encoding,audio)\nSet audio sampling rate (in Hz).\n\nac integer (decoding/encoding,audio)\nSet number of audio channels.\n\ncutoff integer (encoding,audio)\nSet cutoff  bandwidth.  (Supported  only  by  selected  encoders,  see  their  respective\ndocumentation sections.)\n\nframesize integer (encoding,audio)\nSet audio frame size.\n\nEach submitted frame except the last must contain exactly framesize samples per channel.\nMay  be  0  when  the codec has CODECCAPVARIABLEFRAMESIZE set, in that case the frame\nsize is not restricted. It is set by some decoders to indicate constant frame size.\n\nframenumber integer\nSet the frame number.\n\ndelay integer\nqcomp float (encoding,video)\nSet video quantizer scale compression (VBR). It is used as a constant in the  ratecontrol\nequation. Recommended range for default rceq: 0.0-1.0.\n\nqblur float (encoding,video)\nSet video quantizer scale blur (VBR).\n\nqmin integer (encoding,video)\nSet min video quantizer scale (VBR). Must be included between -1 and 69, default value is\n2.\n\nqmax integer (encoding,video)\nSet  max video quantizer scale (VBR). Must be included between -1 and 1024, default value\nis 31.\n\nqdiff integer (encoding,video)\nSet max difference between the quantizer scale (VBR).\n\nbf integer (encoding,video)\nSet max number of B frames between non-B-frames.\n\nMust be an integer between -1 and 16. 0 means that B-frames are disabled. If a  value  of\n-1 is used, it will choose an automatic value depending on the encoder.\n\nDefault value is 0.\n\nbqfactor float (encoding,video)\nSet qp factor between P and B frames.\n\ncodectag integer\nbug flags (decoding,video)\nWorkaround not auto detected encoder bugs.\n\nPossible values:\n\nautodetect\nxvidilace\nXvid interlacing bug (autodetected if fourcc==XVIX)\n\nump4\n(autodetected if fourcc==UMP4)\n\nnopadding\npadding bug (autodetected)\n\namv\nqpelchroma\nstdqpel\nold standard qpel (autodetected per fourcc/version)\n\nqpelchroma2\ndirectblocksize\ndirect-qpel-blocksize bug (autodetected per fourcc/version)\n\nedge\nedge padding bug (autodetected per fourcc/version)\n\nhpelchroma\ndcclip\nms  Workaround various bugs in microsoft broken decoders.\n\ntrunc\ntrancated frames\n\nstrict integer (decoding/encoding,audio,video)\nSpecify how strictly to follow the standards.\n\nPossible values:\n\nvery\nstrictly conform to an older more strict version of the spec or reference software\n\nstrict\nstrictly conform to all the things in the spec no matter what consequences\n\nnormal\nunofficial\nallow unofficial extensions\n\nexperimental\nallow   non   standardized  experimental  things,  experimental  (unfinished/work  in\nprogress/not well tested) decoders and encoders.   Note:  experimental  decoders  can\npose a security risk, do not use this for decoding untrusted input.\n\nbqoffset float (encoding,video)\nSet QP offset between P and B frames.\n\nerrdetect flags (decoding,audio,video)\nSet error detection flags.\n\nPossible values:\n\ncrccheck\nverify embedded CRCs\n\nbitstream\ndetect bitstream specification deviations\n\nbuffer\ndetect improper bitstream length\n\nexplode\nabort decoding on minor error detection\n\nignoreerr\nignore decoding errors, and continue decoding.  This is useful if you want to analyze\nthe  content  of  a video and thus want everything to be decoded no matter what. This\noption will not result in a video that is pleasing to watch in case of errors.\n\ncareful\nconsider things that violate the spec and have not been seen in the wild as errors\n\ncompliant\nconsider all spec non compliancies as errors\n\naggressive\nconsider things that a sane encoder should not do as an error\n\nhasbframes integer\nblockalign integer\nrcoverridecount integer\nmaxrate integer (encoding,audio,video)\nSet max bitrate tolerance (in bits/s). Requires bufsize to be set.\n\nminrate integer (encoding,audio,video)\nSet min bitrate tolerance (in bits/s). Most useful in setting up a CBR encode. It  is  of\nlittle use elsewise.\n\nbufsize integer (encoding,audio,video)\nSet ratecontrol buffer size (in bits).\n\niqfactor float (encoding,video)\nSet QP factor between P and I frames.\n\niqoffset float (encoding,video)\nSet QP offset between P and I frames.\n\ndct integer (encoding,video)\nSet DCT algorithm.\n\nPossible values:\n\nauto\nautoselect a good one (default)\n\nfastint\nfast integer\n\nint accurate integer\n\nmmx\naltivec\nfaan\nfloating point AAN DCT\n\nlumimask float (encoding,video)\nCompress bright areas stronger than medium ones.\n\ntcplxmask float (encoding,video)\nSet temporal complexity masking.\n\nscplxmask float (encoding,video)\nSet spatial complexity masking.\n\npmask float (encoding,video)\nSet inter masking.\n\ndarkmask float (encoding,video)\nCompress dark areas stronger than medium ones.\n\nidct integer (decoding/encoding,video)\nSelect IDCT implementation.\n\nPossible values:\n\nauto\nint\nsimple\nsimplemmx\nsimpleauto\nAutomatically pick a IDCT compatible with the simple one\n\narm\naltivec\nsh4\nsimplearm\nsimplearmv5te\nsimplearmv6\nsimpleneon\nxvid\nfaani\nfloating point AAN IDCT\n\nslicecount integer\nec flags (decoding,video)\nSet error concealment strategy.\n\nPossible values:\n\nguessmvs\niterative motion vector (MV) search (slow)\n\ndeblock\nuse strong deblock filter for damaged MBs\n\nfavorinter\nfavor predicting from the previous frame instead of the current\n\nbitspercodedsample integer\naspect rational number (encoding,video)\nSet sample aspect ratio.\n\nsar rational number (encoding,video)\nSet sample aspect ratio. Alias to aspect.\n\ndebug flags (decoding/encoding,audio,video,subtitles)\nPrint specific debug info.\n\nPossible values:\n\npict\npicture info\n\nrc  rate control\n\nbitstream\nmbtype\nmacroblock (MB) type\n\nqp  per-block quantization parameter (QP)\n\ndctcoeff\ngreenmetadata\ndisplay complexity metadata for the upcoming frame, GoP or for a given duration.\n\nskip\nstartcode\ner  error recognition\n\nmmco\nmemory management control operations (H.264)\n\nbugs\nbuffers\npicture buffer allocations\n\nthreadops\nthreading operations\n\nnomc\nskip motion compensation\n\ncmp integer (encoding,video)\nSet full pel me compare function.\n\nPossible values:\n\nsad sum of absolute differences, fast (default)\n\nsse sum of squared errors\n\nsatd\nsum of absolute Hadamard transformed differences\n\ndct sum of absolute DCT transformed differences\n\npsnr\nsum of squared quantization errors (avoid, low quality)\n\nbit number of bits needed for the block\n\nrd  rate distortion optimal, slow\n\nzero\n0\n\nvsad\nsum of absolute vertical differences\n\nvsse\nsum of squared vertical differences\n\nnsse\nnoise preserving sum of squared differences\n\nw53 5/3 wavelet, only used in snow\n\nw97 9/7 wavelet, only used in snow\n\ndctmax\nchroma\nsubcmp integer (encoding,video)\nSet sub pel me compare function.\n\nPossible values:\n\nsad sum of absolute differences, fast (default)\n\nsse sum of squared errors\n\nsatd\nsum of absolute Hadamard transformed differences\n\ndct sum of absolute DCT transformed differences\n\npsnr\nsum of squared quantization errors (avoid, low quality)\n\nbit number of bits needed for the block\n\nrd  rate distortion optimal, slow\n\nzero\n0\n\nvsad\nsum of absolute vertical differences\n\nvsse\nsum of squared vertical differences\n\nnsse\nnoise preserving sum of squared differences\n\nw53 5/3 wavelet, only used in snow\n\nw97 9/7 wavelet, only used in snow\n\ndctmax\nchroma\nmbcmp integer (encoding,video)\nSet macroblock compare function.\n\nPossible values:\n\nsad sum of absolute differences, fast (default)\n\nsse sum of squared errors\n\nsatd\nsum of absolute Hadamard transformed differences\n\ndct sum of absolute DCT transformed differences\n\npsnr\nsum of squared quantization errors (avoid, low quality)\n\nbit number of bits needed for the block\n\nrd  rate distortion optimal, slow\n\nzero\n0\n\nvsad\nsum of absolute vertical differences\n\nvsse\nsum of squared vertical differences\n\nnsse\nnoise preserving sum of squared differences\n\nw53 5/3 wavelet, only used in snow\n\nw97 9/7 wavelet, only used in snow\n\ndctmax\nchroma\nildctcmp integer (encoding,video)\nSet interlaced dct compare function.\n\nPossible values:\n\nsad sum of absolute differences, fast (default)\n\nsse sum of squared errors\n\nsatd\nsum of absolute Hadamard transformed differences\n\ndct sum of absolute DCT transformed differences\n\npsnr\nsum of squared quantization errors (avoid, low quality)\n\nbit number of bits needed for the block\n\nrd  rate distortion optimal, slow\n\nzero\n0\n\nvsad\nsum of absolute vertical differences\n\nvsse\nsum of squared vertical differences\n\nnsse\nnoise preserving sum of squared differences\n\nw53 5/3 wavelet, only used in snow\n\nw97 9/7 wavelet, only used in snow\n\ndctmax\nchroma\ndiasize integer (encoding,video)\nSet diamond type & size for motion estimation.\n\n(1024, INTMAX)\nfull motion estimation(slowest)\n\n(768, 1024]\numh motion estimation\n\n(512, 768]\nhex motion estimation\n\n(256, 512]\nl2s diamond motion estimation\n\n[2,256]\nvar diamond motion estimation\n\n(-1,  2)\nsmall diamond motion estimation\n\n-1  funny diamond motion estimation\n\n(INTMIN, -1)\nsab diamond motion estimation\n\nlastpred integer (encoding,video)\nSet amount of motion predictors from the previous frame.\n\nprecmp integer (encoding,video)\nSet pre motion estimation compare function.\n\nPossible values:\n\nsad sum of absolute differences, fast (default)\n\nsse sum of squared errors\n\nsatd\nsum of absolute Hadamard transformed differences\n\ndct sum of absolute DCT transformed differences\n\npsnr\nsum of squared quantization errors (avoid, low quality)\n\nbit number of bits needed for the block\n\nrd  rate distortion optimal, slow\n\nzero\n0\n\nvsad\nsum of absolute vertical differences\n\nvsse\nsum of squared vertical differences\n\nnsse\nnoise preserving sum of squared differences\n\nw53 5/3 wavelet, only used in snow\n\nw97 9/7 wavelet, only used in snow\n\ndctmax\nchroma\nprediasize integer (encoding,video)\nSet diamond type & size for motion estimation pre-pass.\n\nsubq integer (encoding,video)\nSet sub pel motion estimation quality.\n\nmerange integer (encoding,video)\nSet limit motion vectors range (1023 for DivX player).\n\nglobalquality integer (encoding,audio,video)\nsliceflags integer\nmbd integer (encoding,video)\nSet macroblock decision algorithm (high quality mode).\n\nPossible values:\n\nsimple\nuse mbcmp (default)\n\nbits\nuse fewest bits\n\nrd  use best rate distortion\n\nrcinitoccupancy integer (encoding,video)\nSet number of bits which should be loaded into the rc buffer before decoding starts.\n\nflags2 flags (decoding/encoding,audio,video,subtitles)\nPossible values:\n\nfast\nAllow non spec compliant speedup tricks.\n\nnoout\nSkip bitstream encoding.\n\nignorecrop\nIgnore cropping information from sps.\n\nlocalheader\nPlace global headers at every keyframe instead of in extradata.\n\nchunks\nFrame data might be split into multiple chunks.\n\nshowall\nShow all frames before the first keyframe.\n\nexportmvs\nExport  motion  vectors into frame side-data (see \"AVFRAMEDATAMOTIONVECTORS\") for\ncodecs that support it. See also doc/examples/exportmvs.c.\n\nskipmanual\nDo not skip samples and export skip information as frame side data.\n\nassroflushnoop\nDo not reset ASS ReadOrder field on flush.\n\niccprofiles\nGenerate/parse embedded ICC profiles from/to colorimetry tags.\n\nexportsidedata flags (decoding/encoding,audio,video,subtitles)\nPossible values:\n\nmvs Export motion vectors into frame side-data (see  \"AVFRAMEDATAMOTIONVECTORS\")  for\ncodecs that support it. See also doc/examples/exportmvs.c.\n\nprft\nExport encoder Producer Reference Time into packet side-data (see \"AVPKTDATAPRFT\")\nfor codecs that support it.\n\nvencparams\nExport    video    encoding    parameters    through    frame    side    data    (see\n\"AVFRAMEDATAVIDEOENCPARAMS\") for codecs that support it. At present,  those  are\nH.264 and VP9.\n\nfilmgrain\nExport     film     grain     parameters     through    frame    side    data    (see\n\"AVFRAMEDATAFILMGRAINPARAMS\").  Supported at present by AV1 decoders.\n\nthreads integer (decoding/encoding,video)\nSet the number of threads to be used, in case the selected codec implementation  supports\nmulti-threading.\n\nPossible values:\n\nauto, 0\nautomatically select the number of threads to set\n\nDefault value is auto.\n\ndc integer (encoding,video)\nSet intradcprecision.\n\nnssew integer (encoding,video)\nSet nsse weight.\n\nskiptop integer (decoding,video)\nSet number of macroblock rows at the top which are skipped.\n\nskipbottom integer (decoding,video)\nSet number of macroblock rows at the bottom which are skipped.\n\nprofile integer (encoding,audio,video)\nSet  encoder  codec  profile.  Default  value  is  unknown. Encoder specific profiles are\ndocumented in the relevant encoder documentation.\n\nlevel integer (encoding,audio,video)\nSet the encoder level. This level depends on the specific codec, and might correspond  to\nthe profile level. It is set by default to unknown.\n\nPossible values:\n\nunknown\nlowres integer (decoding,audio,video)\nDecode at 1= 1/2, 2=1/4, 3=1/8 resolutions.\n\nmblmin integer (encoding,video)\nSet min macroblock lagrange factor (VBR).\n\nmblmax integer (encoding,video)\nSet max macroblock lagrange factor (VBR).\n\nskiploopfilter integer (decoding,video)\nskipidct        integer (decoding,video)\nskipframe       integer (decoding,video)\nMake decoder discard processing depending on the frame type selected by the option value.\n\nskiploopfilter  skips  frame loop filtering, skipidct skips frame IDCT/dequantization,\nskipframe skips decoding.\n\nPossible values:\n\nnone\nDiscard no frame.\n\ndefault\nDiscard useless frames like 0-sized frames.\n\nnoref\nDiscard all non-reference frames.\n\nbidir\nDiscard all bidirectional frames.\n\nnokey\nDiscard all frames excepts keyframes.\n\nnointra\nDiscard all frames except I frames.\n\nall Discard all frames.\n\nDefault value is default.\n\nbidirrefine integer (encoding,video)\nRefine the two motion vectors used in bidirectional macroblocks.\n\nkeyintmin integer (encoding,video)\nSet minimum interval between IDR-frames.\n\nrefs integer (encoding,video)\nSet reference frames to consider for motion compensation.\n\ntrellis integer (encoding,audio,video)\nSet rate-distortion optimal quantization.\n\nmv0threshold integer (encoding,video)\ncompressionlevel integer (encoding,audio,video)\nbitsperrawsample integer\nchannellayout integer (decoding/encoding,audio)\nPossible values:\n\nrequestchannellayout integer (decoding,audio)\nPossible values:\n\nrcmaxvbvuse float (encoding,video)\nrcminvbvuse float (encoding,video)\ncolorprimaries integer (decoding/encoding,video)\nPossible values:\n\nbt709\nBT.709\n\nbt470m\nBT.470 M\n\nbt470bg\nBT.470 BG\n\nsmpte170m\nSMPTE 170 M\n\nsmpte240m\nSMPTE 240 M\n\nfilm\nFilm\n\nbt2020\nBT.2020\n\nsmpte428\nsmpte4281\nSMPTE ST 428-1\n\nsmpte431\nSMPTE 431-2\n\nsmpte432\nSMPTE 432-1\n\njedec-p22\nJEDEC P22\n\ncolortrc integer (decoding/encoding,video)\nPossible values:\n\nbt709\nBT.709\n\ngamma22\nBT.470 M\n\ngamma28\nBT.470 BG\n\nsmpte170m\nSMPTE 170 M\n\nsmpte240m\nSMPTE 240 M\n\nlinear\nLinear\n\nlog\nlog100\nLog\n\nlogsqrt\nlog316\nLog square root\n\niec6196624\niec61966-2-4\nIEC 61966-2-4\n\nbt1361\nbt1361e\nBT.1361\n\niec6196621\niec61966-2-1\nIEC 61966-2-1\n\nbt202010\nbt202010bit\nBT.2020 - 10 bit\n\nbt202012\nbt202012bit\nBT.2020 - 12 bit\n\nsmpte2084\nSMPTE ST 2084\n\nsmpte428\nsmpte4281\nSMPTE ST 428-1\n\narib-std-b67\nARIB STD-B67\n\ncolorspace integer (decoding/encoding,video)\nPossible values:\n\nrgb RGB\n\nbt709\nBT.709\n\nfcc FCC\n\nbt470bg\nBT.470 BG\n\nsmpte170m\nSMPTE 170 M\n\nsmpte240m\nSMPTE 240 M\n\nycocg\nYCOCG\n\nbt2020nc\nbt2020ncl\nBT.2020 NCL\n\nbt2020c\nbt2020cl\nBT.2020 CL\n\nsmpte2085\nSMPTE 2085\n\nchroma-derived-nc\nChroma-derived NCL\n\nchroma-derived-c\nChroma-derived CL\n\nictcp\nICtCp\n\ncolorrange integer (decoding/encoding,video)\nIf used as input parameter, it serves as a hint to the  decoder,  which  colorrange  the\ninput has.  Possible values:\n\ntv\nmpeg\nlimited\nMPEG (219*2^(n-8))\n\npc\njpeg\nfull\nJPEG (2^n-1)\n\nchromasamplelocation integer (decoding/encoding,video)\nPossible values:\n\nleft\ncenter\ntopleft\ntop\nbottomleft\nbottom\nlogleveloffset integer\nSet the log level offset.\n\nslices integer (encoding,video)\nNumber of slices, used in parallelized encoding.\n\nthreadtype flags (decoding/encoding,video)\nSelect which multithreading methods to use.\n\nUse  of  frame  will  increase  decoding  delay by one frame per thread, so clients which\ncannot provide future frames should not use it.\n\nPossible values:\n\nslice\nDecode more than one part of a single frame at once.\n\nMultithreading using slices works only when the video was encoded with slices.\n\nframe\nDecode more than one frame at once.\n\nDefault value is slice+frame.\n\naudioservicetype integer (encoding,audio)\nSet audio service type.\n\nPossible values:\n\nma  Main Audio Service\n\nef  Effects\n\nvi  Visually Impaired\n\nhi  Hearing Impaired\n\ndi  Dialogue\n\nco  Commentary\n\nem  Emergency\n\nvo  Voice Over\n\nka  Karaoke\n\nrequestsamplefmt samplefmt (decoding,audio)\nSet sample format audio decoders should prefer. Default value is \"none\".\n\npkttimebase rational number\nsubcharenc encoding (decoding,subtitles)\nSet the input subtitles character encoding.\n\nfieldorder  fieldorder (video)\nSet/override the field order of the video.  Possible values:\n\nprogressive\nProgressive video\n\ntt  Interlaced video, top field coded and displayed first\n\nbb  Interlaced video, bottom field coded and displayed first\n\ntb  Interlaced video, top coded first, bottom displayed first\n\nbt  Interlaced video, bottom coded first, top displayed first\n\nskipalpha bool (decoding,video)\nSet to 1 to disable processing alpha (transparency). This works like the gray flag in the\nflags option which skips chroma information instead of alpha. Default is 0.\n\ncodecwhitelist list (input)\n\",\" separated list of allowed decoders. By default all are allowed.\n\ndumpseparator string (input)\nSeparator used to separate the fields printed  on  the  command  line  about  the  Stream\nparameters.  For example, to separate the fields with newlines and indentation:\n\nffprobe -dumpseparator \"\n\"  -i ~/videos/matrixbenchmpeg2.mpg\n\nmaxpixels integer (decoding/encoding,video)\nMaximum  number  of  pixels  per  image.  This  value  can be used to avoid out of memory\nfailures due to large images.\n\napplycropping bool (decoding,video)\nEnable cropping if cropping parameters are multiples of the required  alignment  for  the\nleft  and  top  parameters.  If  the  alignment is not met the cropping will be partially\napplied to maintain alignment.  Default is 1 (enabled).   Note:  The  required  alignment\ndepends  on  if  \"AVCODECFLAGUNALIGNED\"  is set and the CPU. \"AVCODECFLAGUNALIGNED\"\ncannot be changed from the command line. Also hardware decoders will not  apply  left/top\nCropping.\n",
                "subsections": []
            },
            "DECODERS": {
                "content": "Decoders are configured elements in FFmpeg which allow the decoding of multimedia streams.\n\nWhen  you  configure  your  FFmpeg  build,  all  the supported native decoders are enabled by\ndefault.  Decoders  requiring  an  external  library  must  be  enabled  manually   via   the\ncorresponding  \"--enable-lib\" option. You can list all available decoders using the configure\noption \"--list-decoders\".\n\nYou can  disable  all  the  decoders  with  the  configure  option  \"--disable-decoders\"  and\nselectively  enable  /  disable single decoders with the options \"--enable-decoder=DECODER\" /\n\"--disable-decoder=DECODER\".\n\nThe option \"-decoders\" of the ff* tools will display the list of enabled decoders.\n",
                "subsections": []
            },
            "VIDEO DECODERS": {
                "content": "A description of some of the currently available video decoders follows.\n",
                "subsections": [
                    {
                        "name": "av1",
                        "content": "AOMedia Video 1 (AV1) decoder.\n\nOptions\n"
                    },
                    {
                        "name": "operating_point",
                        "content": "Select an operating point of a scalable AV1 bitstream (0 - 31). Default is 0.\n"
                    },
                    {
                        "name": "rawvideo",
                        "content": "Raw video decoder.\n\nThis decoder decodes rawvideo streams.\n\nOptions\n\ntop topfieldfirst\nSpecify the assumed field type of the input video.\n\n-1  the video is assumed to be progressive (default)\n\n0   bottom-field-first is assumed\n\n1   top-field-first is assumed\n"
                    },
                    {
                        "name": "libdav1d",
                        "content": "dav1d AV1 decoder.\n\nlibdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.  Requires the  presence\nof  the  libdav1d headers and library during configuration.  You need to explicitly configure\nthe build with \"--enable-libdav1d\".\n\nOptions\n\nThe following options are supported by the libdav1d wrapper.\n"
                    },
                    {
                        "name": "framethreads",
                        "content": "Set amount of frame threads to use during decoding. The default value is 0  (autodetect).\nThis  option is deprecated for libdav1d >= 1.0 and will be removed in the future. Use the\noption \"maxframedelay\" and the global option \"threads\" instead.\n"
                    },
                    {
                        "name": "tilethreads",
                        "content": "Set amount of tile threads to use during decoding. The default value is  0  (autodetect).\nThis  option is deprecated for libdav1d >= 1.0 and will be removed in the future. Use the\nglobal option \"threads\" instead.\n"
                    },
                    {
                        "name": "max_frame_delay",
                        "content": "Set max amount of frames the decoder may  buffer  internally.  The  default  value  is  0\n(autodetect).\n"
                    },
                    {
                        "name": "filmgrain",
                        "content": "Apply  film  grain  to  the  decoded  video  if present in the bitstream. Defaults to the\ninternal default of the library.  This option is deprecated and will be  removed  in  the\nfuture.  See the global option \"exportsidedata\" to export Film Grain parameters instead\nof applying it.\n"
                    },
                    {
                        "name": "oppoint",
                        "content": "Select an operating point of a scalable AV1 bitstream (0 - 31). Defaults to the  internal\ndefault of the library.\n"
                    },
                    {
                        "name": "alllayers",
                        "content": "Output all spatial layers of a scalable AV1 bitstream. The default value is false.\n"
                    },
                    {
                        "name": "libdavs2",
                        "content": "AVS2-P2/IEEE1857.4 video decoder wrapper.\n\nThis decoder allows libavcodec to decode AVS2 streams with davs2 library.\n"
                    },
                    {
                        "name": "libuavs3d",
                        "content": "AVS3-P2/IEEE1857.10 video decoder.\n\nlibuavs3d  allows  libavcodec to decode AVS3 streams.  Requires the presence of the libuavs3d\nheaders and library during configuration.  You need to explicitly configure  the  build  with\n\"--enable-libuavs3d\".\n\nOptions\n\nThe following option is supported by the libuavs3d wrapper.\n"
                    },
                    {
                        "name": "frame_threads",
                        "content": "Set amount of frame threads to use during decoding. The default value is 0 (autodetect).\n"
                    },
                    {
                        "name": "QSV Decoders",
                        "content": "The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC, JPEG/MJPEG, VP8, VP9,\nAV1).\n\nCommon Options\n\nThe following options are supported by all qsv decoders.\n\nasyncdepth\nInternal parallelization depth, the higher the value the higher the latency.\n\ngpucopy\nA GPU-accelerated copy between video and system memory\n\ndefault\non\noff\n\nHEVC Options\n\nExtra options for hevcqsv.\n\nloadplugin\nA user plugin to load in an internal session\n\nnone\nhevcsw\nhevchw\nloadplugins\nA :-separate list of hexadecimal plugin UIDs to load in an internal session\n"
                    },
                    {
                        "name": "v210",
                        "content": "Uncompressed 4:2:2 10-bit decoder.\n\nOptions\n"
                    },
                    {
                        "name": "custom_stride",
                        "content": "Set the line size of the v210 data in bytes. The default value is 0 (autodetect). You can\nuse the special -1 value for a strideless v210 as seen in BOXX files.\n"
                    }
                ]
            },
            "AUDIO DECODERS": {
                "content": "A description of some of the currently available audio decoders follows.\n",
                "subsections": [
                    {
                        "name": "ac3",
                        "content": "AC-3 audio decoder.\n\nThis  decoder  implements  part  of  ATSC  A/52:2010  and  ETSI  TS  102  366, as well as the\nundocumented RealAudio 3 (a.k.a. dnet).\n\nAC-3 Decoder Options\n"
                    },
                    {
                        "name": "-drc_scale _",
                        "content": "Dynamic Range Scale Factor. The factor to apply to dynamic range  values  from  the  AC-3\nstream.  This  factor  is  applied  exponentially.  The  default value is 1.  There are 3\nnotable scale factor ranges:\n\ndrcscale == 0\nDRC disabled. Produces full range audio.\n\n0 < drcscale <= 1\nDRC enabled.  Applies a fraction of the stream  DRC  value.   Audio  reproduction  is\nbetween full range and full compression.\n\ndrcscale > 1\nDRC  enabled.  Applies  drcscale  asymmetrically.  Loud sounds are fully compressed.\nSoft sounds are enhanced.\n"
                    },
                    {
                        "name": "flac",
                        "content": "FLAC audio decoder.\n\nThis decoder aims to implement the complete FLAC specification from Xiph.\n\nFLAC Decoder options\n"
                    },
                    {
                        "name": "-use_buggy_lpc",
                        "content": "The lavc FLAC encoder used to produce buggy  streams  with  high  lpc  values  (like  the\ndefault  value).  This option makes it possible to decode such streams correctly by using\nlavc's old buggy lpc logic for decoding.\n"
                    },
                    {
                        "name": "ffwavesynth",
                        "content": "Internal wave synthesizer.\n\nThis decoder generates wave patterns according to predefined sequences.  Its  use  is  purely\ninternal and the format of the data it accepts is not publicly documented.\n"
                    },
                    {
                        "name": "libcelt",
                        "content": "libcelt decoder wrapper.\n\nlibcelt  allows libavcodec to decode the Xiph CELT ultra-low delay audio codec.  Requires the\npresence of the libcelt headers and library during configuration.   You  need  to  explicitly\nconfigure the build with \"--enable-libcelt\".\n"
                    },
                    {
                        "name": "libgsm",
                        "content": "libgsm decoder wrapper.\n\nlibgsm  allows  libavcodec  to decode the GSM full rate audio codec. Requires the presence of\nthe libgsm headers and library during configuration. You need  to  explicitly  configure  the\nbuild with \"--enable-libgsm\".\n\nThis decoder supports both the ordinary GSM and the Microsoft variant.\n"
                    },
                    {
                        "name": "libilbc",
                        "content": "libilbc decoder wrapper.\n\nlibilbc  allows  libavcodec  to  decode  the  Internet  Low Bitrate Codec (iLBC) audio codec.\nRequires the presence of the libilbc headers and library during configuration.  You  need  to\nexplicitly configure the build with \"--enable-libilbc\".\n\nOptions\n\nThe following option is supported by the libilbc wrapper.\n"
                    },
                    {
                        "name": "enhance",
                        "content": "Enable  the  enhancement  of  the  decoded  audio  when  set to 1. The default value is 0\n(disabled).\n"
                    },
                    {
                        "name": "libopencore-amrnb",
                        "content": "libopencore-amrnb decoder wrapper.\n\nlibopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate Narrowband audio codec.\nUsing  it  requires  the  presence  of  the  libopencore-amrnb  headers  and  library  during\nconfiguration. You need to explicitly configure the build with \"--enable-libopencore-amrnb\".\n\nAn FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB without this library.\n"
                    },
                    {
                        "name": "libopencore-amrwb",
                        "content": "libopencore-amrwb decoder wrapper.\n\nlibopencore-amrwb  allows  libavcodec to decode the Adaptive Multi-Rate Wideband audio codec.\nUsing  it  requires  the  presence  of  the  libopencore-amrwb  headers  and  library  during\nconfiguration. You need to explicitly configure the build with \"--enable-libopencore-amrwb\".\n\nAn FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB without this library.\n"
                    },
                    {
                        "name": "libopus",
                        "content": "libopus decoder wrapper.\n\nlibopus  allows libavcodec to decode the Opus Interactive Audio Codec.  Requires the presence\nof the libopus headers and library during configuration. You need to explicitly configure the\nbuild with \"--enable-libopus\".\n\nAn FFmpeg native decoder for Opus exists, so users can decode Opus without this library.\n"
                    }
                ]
            },
            "SUBTITLES DECODERS": {
                "content": "",
                "subsections": [
                    {
                        "name": "libaribb24",
                        "content": "ARIB STD-B24 caption decoder.\n\nImplements profiles A and C of the ARIB STD-B24 standard.\n\nlibaribb24 Decoder Options\n"
                    },
                    {
                        "name": "-aribb24-base-path _",
                        "content": "Sets the base  path  for  the  libaribb24  library.  This  is  utilized  for  reading  of\nconfiguration files (for custom unicode conversions), and for dumping of non-text symbols\nas images under that location.\n\nUnset by default.\n"
                    },
                    {
                        "name": "-aribb24-skip-ruby-text _",
                        "content": "Tells the decoder wrapper to skip text blocks that contain half-height ruby text.\n\nEnabled by default.\n"
                    },
                    {
                        "name": "libaribcaption",
                        "content": "Yet another ARIB STD-B24 caption decoder using external libaribcaption library.\n\nImplements profiles A and C of the Japanse ARIB STD-B24 standard, Brazilian ABNT NBR 15606-1,\nand Philippines version of ISDB-T.\n\nRequires     the     presence     of     the     libaribcaption     headers    and    library\n(<https://github.com/xqq/libaribcaption>)  during  configuration.   You  need  to  explicitly\nconfigure  the  build  with \"--enable-libaribcaption\".  If both libaribb24 and libaribcaption\nare enabled, libaribcaption decoder precedes.\n\nlibaribcaption Decoder Options\n"
                    },
                    {
                        "name": "-sub_type _",
                        "content": "Specifies the format of the decoded subtitles.\n\nbitmap\nGraphical image.\n\nass ASS formatted text.\n\ntext\nSimple text based output without formatting.\n\nThe default is ass as same as libaribb24  decoder.   Some  present  players  (e.g.,  mpv)\nexpect ASS format for ARIB caption.\n"
                    },
                    {
                        "name": "-caption_encoding _",
                        "content": "Specifies the encoding scheme of input subtitle text.\n\nauto\nAutomatically detect text encoding (default).\n\njis 8bit-char JIS encoding defined in ARIB STD B24.  This encoding used in Japan for ISDB\ncaptions.\n\nutf8\nUTF-8  encoding  defined  in  ARIB STD B24.  This encoding is used in Philippines for\nISDB-T captions.\n\nlatin\nLatin character encoding defined in ABNT NBR 15606-1.  This encoding is used in South\nAmerica for SBTVD / ISDB-Tb captions.\n"
                    },
                    {
                        "name": "-font _",
                        "content": "Specify comma-separated list of font family names to be  used  for  bitmap  or  ass  type\nsubtitle rendering.  Only first font name is used for ass type subtitle.\n\nIf not specified, use internaly defined default font family.\n"
                    },
                    {
                        "name": "-ass_single_rect _",
                        "content": "ARIB  STD-B24  specifies  that some captions may be displayed at different positions at a\ntime (multi-rectangle subtitle).   Since  some  players  (e.g.,  old  mpv)  can't  handle\nmultiple   ASS  rectangles  in  a  single  AVSubtitle,  or  multiple  ASS  rectangles  of\nindeterminate duration with the same start timestamp, this option can change the behavior\nso that all the texts are displayed in a single ASS rectangle.\n\nThe default is false.\n\nIf your player cannot handle AVSubtitles with multiple ASS rectangles properly, set  this\noption to true or define ASSSINGLERECT=1 to change default behavior at compilation.\n"
                    },
                    {
                        "name": "-force_outline_text _",
                        "content": "Specify  whether  always  render  outline  text  for  all  characters  regardless  of the\nindication by charactor style.\n\nThe default is false.\n"
                    },
                    {
                        "name": "-outline_width _",
                        "content": "Specify width for outline text, in dots (relative).\n\nThe default is 1.5.\n"
                    },
                    {
                        "name": "-ignore_background _",
                        "content": "Specify whether to ignore background color rendering.\n\nThe default is false.\n"
                    },
                    {
                        "name": "-ignore_ruby _",
                        "content": "Specify whether to ignore rendering for ruby-like (furigana) characters.\n\nThe default is false.\n"
                    },
                    {
                        "name": "-replace_drcs _",
                        "content": "Specify whether to render replaced DRCS characters as Unicode characters.\n\nThe default is true.\n"
                    },
                    {
                        "name": "-replace_msz_ascii _",
                        "content": "Specify whether to replace MSZ (Middle Size; half  width)  fullwidth  alphanumerics  with\nhalfwidth alphanumerics.\n\nThe default is true.\n"
                    },
                    {
                        "name": "-replace_msz_japanese _",
                        "content": "Specify  whether to replace some MSZ (Middle Size; half width) fullwidth japanese special\ncharacters with halfwidth ones.\n\nThe default is true.\n"
                    },
                    {
                        "name": "-replace_msz_glyph _",
                        "content": "Specify whether to replace MSZ (Middle Size; half width) characters with halfwidth glyphs\nif the fonts supports it.  This option works under FreeType or DirectWrite renderer  with\nAdobe-Japan1  compliant  fonts.   e.g., IBM Plex Sans JP, Morisawa BIZ UDGothic, Morisawa\nBIZ UDMincho, Yu Gothic, Yu Mincho, and Meiryo.\n\nThe default is true.\n"
                    },
                    {
                        "name": "-canvas_size _",
                        "content": "Specify the resolution of the canvas to render subtitles  to;  usually,  this  should  be\nframe size of input video.  This only applies when \"-subtitletype\" is set to bitmap.\n\nThe libaribcaption decoder assumes input frame size for bitmap rendering as below:\n\n1.  PROFILEA : 1440 x 1080 with SAR (PAR) 4:3\n\n2.  PROFILEC : 320 x 180 with SAR (PAR) 1:1\n\nIf  actual  frame  size  of  input  video  does  not match above assumption, the rendered\ncaptions may be distorted.  To make the captions undistorted, add  \"-canvassize\"  option\nto specify actual input video size.\n\nNote  that  the  \"-canvassize\"  option is not required for video with different size but\nsame aspect ratio.  In such cases, the caption will be  stretched  or  shrunk  to  actual\nvideo  size  if  \"-canvassize\"  option  is  not  specified.  If \"-canvassize\" option is\nspecified with different size, the caption will be stretched or shrunk as specified  size\nwith calculated SAR.\n\nlibaribcaption decoder usage examples\n\nDisplay MPEG-TS file with ARIB subtitle by \"ffplay\" tool:\n\nffplay -subtype bitmap MPEG.TS\n\nDisplay MPEG-TS file with input frame size 1920x1080 by \"ffplay\" tool:\n\nffplay -subtype bitmap -canvassize 1920x1080 MPEG.TS\n\nEmbed ARIB subtitle in transcoded video:\n\nffmpeg -subtype bitmap -i src.m2t -filtercomplex \"[0:v][0:s]overlay\" -vcodec h264 dest.mp4\n"
                    },
                    {
                        "name": "dvbsub",
                        "content": "Options\n"
                    },
                    {
                        "name": "compute_clut",
                        "content": "-2  Compute clut once if no matching CLUT is in the stream.\n\n-1  Compute clut if no matching CLUT is in the stream.\n\n0   Never compute CLUT\n\n1   Always compute CLUT and override the one provided in the stream.\n"
                    },
                    {
                        "name": "dvb_substream",
                        "content": "Selects the dvb substream, or all substreams if -1 which is default.\n"
                    },
                    {
                        "name": "dvdsub",
                        "content": "This codec decodes the bitmap subtitles used in DVDs; the same subtitles can also be found in\nVobSub file pairs and in some Matroska files.\n\nOptions\n"
                    },
                    {
                        "name": "palette",
                        "content": "Specify  the  global  palette  used by the bitmaps. When stored in VobSub, the palette is\nnormally specified in the index file; in Matroska, the palette is  stored  in  the  codec\nextra-data  in  the  same  format as in VobSub. In DVDs, the palette is stored in the IFO\nfile, and therefore not available when reading from dumped VOB files.\n\nThe format for this option is a string containing 16 24-bits hexadecimal numbers (without\n0x prefix) separated by commas, for example  \"0d00ee,  ee450d,  101010,  eaeaea,  0ce60b,\nec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b\".\n"
                    },
                    {
                        "name": "ifo_palette",
                        "content": "Specify the IFO file from which the global palette is obtained.  (experimental)\n"
                    },
                    {
                        "name": "forced_subs_only",
                        "content": "Only  decode  subtitle  entries  marked as forced. Some titles have forced and non-forced\nsubtitles in the same track. Setting this flag to 1 will only keep the forced  subtitles.\nDefault value is 0.\n"
                    },
                    {
                        "name": "libzvbi-teletext",
                        "content": "Libzvbi  allows  libavcodec to decode DVB teletext pages and DVB teletext subtitles. Requires\nthe presence of the libzvbi headers and library during configuration. You need to  explicitly\nconfigure the build with \"--enable-libzvbi\".\n\nOptions\n"
                    },
                    {
                        "name": "txt_page",
                        "content": "List  of  teletext page numbers to decode. Pages that do not match the specified list are\ndropped. You may use the special \"*\" string to match all pages, or  \"subtitle\"  to  match\nall subtitle pages.  Default value is *.\n"
                    },
                    {
                        "name": "txt_default_region",
                        "content": "Set  default  character set used for decoding, a value between 0 and 87 (see ETS 300 706,\nSection 15, Table 32). Default value is -1, which does not override the libzvbi  default.\nThis  option  is  needed  for some legacy level 1.0 transmissions which cannot signal the\nproper charset.\n"
                    },
                    {
                        "name": "txt_chop_top",
                        "content": "Discards the top teletext line. Default value is 1.\n"
                    },
                    {
                        "name": "txt_format",
                        "content": "Specifies the format of the decoded subtitles.\n\nbitmap\nThe default format, you should use this for teletext pages, because certain  graphics\nand colors cannot be expressed in simple text or even ASS.\n\ntext\nSimple text based output without formatting.\n\nass Formatted  ASS  output,  subtitle  pages and teletext pages are returned in different\nstyles, subtitle pages are stripped down to text, but an effort is made to  keep  the\ntext alignment and the formatting.\n"
                    },
                    {
                        "name": "txt_left",
                        "content": "X offset of generated bitmaps, default is 0.\n"
                    },
                    {
                        "name": "txt_top",
                        "content": "Y offset of generated bitmaps, default is 0.\n"
                    },
                    {
                        "name": "txt_chop_spaces",
                        "content": "Chops  leading  and trailing spaces and removes empty lines from the generated text. This\noption is useful for teletext based subtitles where empty spaces may be  present  at  the\nstart or at the end of the lines or empty lines may be present between the subtitle lines\nbecause of double-sized teletext characters.  Default value is 1.\n"
                    },
                    {
                        "name": "txt_duration",
                        "content": "Sets  the  display  duration  of the decoded teletext pages or subtitles in milliseconds.\nDefault value is -1 which means infinity or until the next subtitle event comes.\n"
                    },
                    {
                        "name": "txt_transparent",
                        "content": "Force transparent background of the generated teletext bitmaps. Default value is 0  which\nmeans an opaque background.\n"
                    },
                    {
                        "name": "txt_opacity",
                        "content": "Sets  the  opacity  (0-255) of the teletext background. If txttransparent is not set, it\nonly affects characters between a start box and an end box, typically subtitles.  Default\nvalue is 0 if txttransparent is set, 255 otherwise.\n"
                    }
                ]
            },
            "ENCODERS": {
                "content": "Encoders are configured elements in FFmpeg which allow the encoding of multimedia streams.\n\nWhen  you  configure  your  FFmpeg  build,  all  the supported native encoders are enabled by\ndefault.  Encoders  requiring  an  external  library  must  be  enabled  manually   via   the\ncorresponding  \"--enable-lib\" option. You can list all available encoders using the configure\noption \"--list-encoders\".\n\nYou can  disable  all  the  encoders  with  the  configure  option  \"--disable-encoders\"  and\nselectively  enable  /  disable single encoders with the options \"--enable-encoder=ENCODER\" /\n\"--disable-encoder=ENCODER\".\n\nThe option \"-encoders\" of the ff* tools will display the list of enabled encoders.\n",
                "subsections": []
            },
            "AUDIO ENCODERS": {
                "content": "A description of some of the currently available audio encoders follows.\n",
                "subsections": [
                    {
                        "name": "aac",
                        "content": "Advanced Audio Coding (AAC) encoder.\n\nThis encoder is the default AAC encoder, natively implemented into FFmpeg.\n\nOptions\n\nb   Set bit rate in bits/s. Setting this automatically  activates  constant  bit  rate  (CBR)\nmode. If this option is unspecified it is set to 128kbps.\n\nq   Set  quality for variable bit rate (VBR) mode. This option is valid only using the ffmpeg\ncommand-line tool. For library interface users, use globalquality.\n"
                    },
                    {
                        "name": "cutoff",
                        "content": "Set cutoff frequency. If unspecified will allow the encoder  to  dynamically  adjust  the\ncutoff to improve clarity on low bitrates.\n"
                    },
                    {
                        "name": "aac_coder",
                        "content": "Set AAC encoder coding method. Possible values:\n\ntwoloop\nTwo loop searching (TLS) method. This is the default method.\n\nThis method first sets quantizers depending on band thresholds and then tries to find\nan  optimal combination by adding or subtracting a specific value from all quantizers\nand adjusting some individual quantizer a little.  Will tune itself based on  whether\naacis, aacms and aacpns are enabled.\n\nanmr\nAverage noise to mask ratio (ANMR) trellis-based solution.\n\nThis  is  an  experimental  coder  which  currently produces a lower quality, is more\nunstable and is slower than the default twoloop coder but has  potential.   Currently\nhas no support for the aacis or aacpns options.  Not currently recommended.\n\nfast\nConstant quantizer method.\n\nUses  a  cheaper  version  of twoloop algorithm that doesn't try to do as many clever\nadjustments. Worse with low bitrates (less than  64kbps),  but  is  better  and  much\nfaster at higher bitrates.\n"
                    },
                    {
                        "name": "aac_ms",
                        "content": "Sets  mid/side  coding  mode. The default value of \"auto\" will automatically use M/S with\nbands which will benefit from such coding. Can be forced for all bands  using  the  value\n\"enable\", which is mainly useful for debugging or disabled using \"disable\".\n"
                    },
                    {
                        "name": "aac_is",
                        "content": "Sets  intensity stereo coding tool usage. By default, it's enabled and will automatically\ntoggle IS for similar pairs of stereo bands if it's  beneficial.   Can  be  disabled  for\ndebugging by setting the value to \"disable\".\n"
                    },
                    {
                        "name": "aac_pns",
                        "content": "Uses  perceptual  noise  substitution  to  replace  low entropy high frequency bands with\nimperceptible white noise during the decoding process. By default, it's enabled, but  can\nbe disabled for debugging purposes by using \"disable\".\n"
                    },
                    {
                        "name": "aac_tns",
                        "content": "Enables  the use of a multitap FIR filter which spans through the high frequency bands to\nhide quantization noise during the encoding process and is reverted by  the  decoder.  As\nwell  as  decreasing unpleasant artifacts in the high range this also reduces the entropy\nin the high bands and allows for more bits to be used by the mid-low  bands.  By  default\nit's enabled but can be disabled for debugging by setting the option to \"disable\".\n"
                    },
                    {
                        "name": "aac_ltp",
                        "content": "Enables  the  use of the long term prediction extension which increases coding efficiency\nin very low bandwidth situations such as  encoding  of  voice  or  solo  piano  music  by\nextending  constant  harmonic peaks in bands throughout frames. This option is implied by\nprofile:a aaclow and is incompatible with aacpred.  Use  in  conjunction  with  -ar  to\ndecrease the samplerate.\n"
                    },
                    {
                        "name": "aac_pred",
                        "content": "Enables the use of a more traditional style of prediction where the spectral coefficients\ntransmitted are replaced by the difference of the current coefficients minus the previous\n\"predicted\"  coefficients.  In  theory and sometimes in practice this can improve quality\nfor low to  mid  bitrate  audio.   This  option  implies  the  aacmain  profile  and  is\nincompatible with aacltp.\n"
                    },
                    {
                        "name": "profile",
                        "content": "Sets the encoding profile, possible values:\n\naaclow\nThe default, AAC \"Low-complexity\" profile. Is the most compatible and produces decent\nquality.\n\nmpeg2aaclow\nEquivalent  to  \"-profile:a  aaclow  -aacpns  0\". PNS was introduced with the MPEG4\nspecifications.\n\naacltp\nLong term prediction profile, is enabled by  and  will  enable  the  aacltp  option.\nIntroduced in MPEG4.\n\naacmain\nMain-type  prediction  profile,  is  enabled  by and will enable the aacpred option.\nIntroduced in MPEG2.\n\nIf this option is unspecified it is set to aaclow.\n"
                    },
                    {
                        "name": "ac3 and ac3_fixed",
                        "content": "AC-3 audio encoders.\n\nThese encoders implement part of ATSC  A/52:2010  and  ETSI  TS  102  366,  as  well  as  the\nundocumented RealAudio 3 (a.k.a. dnet).\n\nThe  ac3  encoder uses floating-point math, while the ac3fixed encoder only uses fixed-point\ninteger math. This does not mean that one is always faster, just that one or the other may be\nbetter suited to a particular system. The ac3fixed encoder is not the default codec for  any\nof  the  output  formats,  so  it  must  be  specified  explicitly  using the option \"-acodec\nac3fixed\" in order to use it.\n\nAC-3 Metadata\n\nThe AC-3 metadata options are used to set parameters that describe the  audio,  but  in  most\ncases  do  not  affect  the  audio encoding itself. Some of the options do directly affect or\ninfluence the decoding and playback of the resulting bitstream, while  others  are  just  for\ninformational  purposes.  A  few of the options will add bits to the output stream that could\notherwise be used for audio data, and will thus affect the quality of the output. Those  will\nbe indicated accordingly with a note in the option list below.\n\nThese parameters are described in detail in several publicly-available documents.\n\n*<<http://www.atsc.org/cms/standards/a52-2010.pdf>>\n*<<http://www.atsc.org/cms/standards/a54awithcorr1.pdf>>\n*<<http://www.dolby.com/uploadedFiles/zz-SharedAssets/EnglishPDFs/Professional/18Metadata.Guide.pdf>>\n*<<http://www.dolby.com/uploadedFiles/zz-SharedAssets/EnglishPDFs/Professional/46DDEncodingGuidelines.pdf>>\n\nMetadata Control Options\n"
                    },
                    {
                        "name": "-per_frame_metadata _",
                        "content": "Allow Per-Frame Metadata. Specifies if the encoder should check for changing metadata for\neach frame.\n\n0   The metadata values set at initialization will be used for every frame in the stream.\n(default)\n\n1   Metadata values can be changed before encoding each frame.\n\nDownmix Levels\n"
                    },
                    {
                        "name": "-center_mixlev _",
                        "content": "Center  Mix Level. The amount of gain the decoder should apply to the center channel when\ndownmixing to stereo. This field will only be  written  to  the  bitstream  if  a  center\nchannel is present. The value is specified as a scale factor. There are 3 valid values:\n\n0.707\nApply -3dB gain\n\n0.595\nApply -4.5dB gain (default)\n\n0.500\nApply -6dB gain\n"
                    },
                    {
                        "name": "-surround_mixlev _",
                        "content": "Surround  Mix  Level.  The  amount  of  gain  the  decoder  should  apply to the surround\nchannel(s) when downmixing to stereo. This field will only be written to the bitstream if\none or more surround channels are present. The value is  specified  as  a  scale  factor.\nThere are 3 valid values:\n\n0.707\nApply -3dB gain\n\n0.500\nApply -6dB gain (default)\n\n0.000\nSilence Surround Channel(s)\n\nAudio Production Information\n\nAudio  Production  Information  is  optional  information  describing the mixing environment.\nEither none or both of the fields are written to the bitstream.\n"
                    },
                    {
                        "name": "-mixing_level _",
                        "content": "Mixing Level. Specifies peak sound pressure level (SPL)  in  the  production  environment\nwhen  the  mix  was  mastered.  Valid  values  are  80  to  111, or -1 for unknown or not\nindicated. The default value is -1, but that value cannot be used if the Audio Production\nInformation is written to the bitstream. Therefore, if the \"roomtype\" option is not  the\ndefault value, the \"mixinglevel\" option must not be -1.\n"
                    },
                    {
                        "name": "-room_type _",
                        "content": "Room  Type. Describes the equalization used during the final mixing session at the studio\nor on the dubbing stage. A large room is a  dubbing  stage  with  the  industry  standard\nX-curve equalization; a small room has flat equalization.  This field will not be written\nto  the  bitstream  if both the \"mixinglevel\" option and the \"roomtype\" option have the\ndefault values.\n\n0\nnotindicated\nNot Indicated (default)\n\n1\nlarge\nLarge Room\n\n2\nsmall\nSmall Room\n\nOther Metadata Options\n"
                    },
                    {
                        "name": "-copyright _",
                        "content": "Copyright Indicator. Specifies whether a copyright exists for this audio.\n\n0\noff No Copyright Exists (default)\n\n1\non  Copyright Exists\n"
                    },
                    {
                        "name": "-dialnorm _",
                        "content": "Dialogue Normalization. Indicates how far the average dialogue level of  the  program  is\nbelow  digital  100%  full scale (0 dBFS). This parameter determines a level shift during\naudio reproduction that sets the average volume of the dialogue to a  preset  level.  The\ngoal is to match volume level between program sources. A value of -31dB will result in no\nvolume  level  change,  relative  to  the source volume, during audio reproduction. Valid\nvalues are whole numbers in the range -31 to -1, with -31 being the default.\n"
                    },
                    {
                        "name": "-dsur_mode _",
                        "content": "Dolby Surround Mode. Specifies whether the stereo signal uses Dolby Surround (Pro Logic).\nThis field will only be written to the bitstream if the audio  stream  is  stereo.  Using\nthis option does NOT mean the encoder will actually apply Dolby Surround processing.\n\n0\nnotindicated\nNot Indicated (default)\n\n1\noff Not Dolby Surround Encoded\n\n2\non  Dolby Surround Encoded\n"
                    },
                    {
                        "name": "-original _",
                        "content": "Original  Bit  Stream Indicator. Specifies whether this audio is from the original source\nand not a copy.\n\n0\noff Not Original Source\n\n1\non  Original Source (default)\n\nExtended Bitstream Information\n\nThe extended bitstream options are part of the Alternate Bit Stream Syntax  as  specified  in\nAnnex  D  of  the  A/52:2010 standard. It is grouped into 2 parts.  If any one parameter in a\ngroup is specified, all values in that group will  be  written  to  the  bitstream.   Default\nvalues are used for those that are written but have not been specified.  If the mixing levels\nare  written,  the  decoder  will  use  these  values  instead  of  the ones specified in the\n\"centermixlev\" and \"surroundmixlev\" options if it supports the Alternate Bit Stream Syntax.\n\nExtended Bitstream Information - Part 1\n"
                    },
                    {
                        "name": "-dmix_mode _",
                        "content": "Preferred Stereo Downmix Mode. Allows the user to select either Lt/Rt (Dolby Surround) or\nLo/Ro (normal stereo) as the preferred stereo downmix mode.\n\n0\nnotindicated\nNot Indicated (default)\n\n1\nltrt\nLt/Rt Downmix Preferred\n\n2\nloro\nLo/Ro Downmix Preferred\n"
                    },
                    {
                        "name": "-ltrt_cmixlev _",
                        "content": "Lt/Rt Center Mix Level. The amount of gain the decoder should apply to the center channel\nwhen downmixing to stereo in Lt/Rt mode.\n\n1.414\nApply +3dB gain\n\n1.189\nApply +1.5dB gain\n\n1.000\nApply 0dB gain\n\n0.841\nApply -1.5dB gain\n\n0.707\nApply -3.0dB gain\n\n0.595\nApply -4.5dB gain (default)\n\n0.500\nApply -6.0dB gain\n\n0.000\nSilence Center Channel\n"
                    },
                    {
                        "name": "-ltrt_surmixlev _",
                        "content": "Lt/Rt Surround Mix Level. The amount of gain the decoder should  apply  to  the  surround\nchannel(s) when downmixing to stereo in Lt/Rt mode.\n\n0.841\nApply -1.5dB gain\n\n0.707\nApply -3.0dB gain\n\n0.595\nApply -4.5dB gain\n\n0.500\nApply -6.0dB gain (default)\n\n0.000\nSilence Surround Channel(s)\n"
                    },
                    {
                        "name": "-loro_cmixlev _",
                        "content": "Lo/Ro Center Mix Level. The amount of gain the decoder should apply to the center channel\nwhen downmixing to stereo in Lo/Ro mode.\n\n1.414\nApply +3dB gain\n\n1.189\nApply +1.5dB gain\n\n1.000\nApply 0dB gain\n\n0.841\nApply -1.5dB gain\n\n0.707\nApply -3.0dB gain\n\n0.595\nApply -4.5dB gain (default)\n\n0.500\nApply -6.0dB gain\n\n0.000\nSilence Center Channel\n"
                    },
                    {
                        "name": "-loro_surmixlev _",
                        "content": "Lo/Ro  Surround  Mix  Level.  The amount of gain the decoder should apply to the surround\nchannel(s) when downmixing to stereo in Lo/Ro mode.\n\n0.841\nApply -1.5dB gain\n\n0.707\nApply -3.0dB gain\n\n0.595\nApply -4.5dB gain\n\n0.500\nApply -6.0dB gain (default)\n\n0.000\nSilence Surround Channel(s)\n\nExtended Bitstream Information - Part 2\n"
                    },
                    {
                        "name": "-dsurex_mode _",
                        "content": "Dolby Surround EX Mode. Indicates whether the stream uses Dolby Surround EX (7.1 matrixed\nto 5.1). Using this option does NOT mean the encoder will actually apply  Dolby  Surround\nEX processing.\n\n0\nnotindicated\nNot Indicated (default)\n\n1\non  Dolby Surround EX Off\n\n2\noff Dolby Surround EX On\n"
                    },
                    {
                        "name": "-dheadphone_mode _",
                        "content": "Dolby  Headphone Mode. Indicates whether the stream uses Dolby Headphone encoding (multi-\nchannel matrixed to 2.0 for use with headphones). Using this option  does  NOT  mean  the\nencoder will actually apply Dolby Headphone processing.\n\n0\nnotindicated\nNot Indicated (default)\n\n1\non  Dolby Headphone Off\n\n2\noff Dolby Headphone On\n"
                    },
                    {
                        "name": "-ad_conv_type _",
                        "content": "A/D Converter Type. Indicates whether the audio has passed through HDCD A/D conversion.\n\n0\nstandard\nStandard A/D Converter (default)\n\n1\nhdcd\nHDCD A/D Converter\n\nOther AC-3 Encoding Options\n"
                    },
                    {
                        "name": "-stereo_rematrixing _",
                        "content": "Stereo  Rematrixing.  Enables/Disables  use  of  rematrixing for stereo input. This is an\noptional AC-3 feature that increases  quality  by  selectively  encoding  the  left/right\nchannels  as  mid/side.  This  option is enabled by default, and it is highly recommended\nthat it be left as enabled except for testing purposes.\n\ncutoff frequency\nSet lowpass cutoff frequency. If unspecified, the encoder selects a default determined by\nvarious other encoding parameters.\n\nFloating-Point-Only AC-3 Encoding Options\n\nThese options are only valid for the floating-point encoder and do not exist for  the  fixed-\npoint encoder due to the corresponding features not being implemented in fixed-point.\n"
                    },
                    {
                        "name": "-channel_coupling _",
                        "content": "Enables/Disables  use  of  channel  coupling,  which  is  an  optional  AC-3 feature that\nincreases quality by combining high frequency information from multiple channels  into  a\nsingle  channel. The per-channel high frequency information is sent with less accuracy in\nboth the frequency and time  domains.  This  allows  more  bits  to  be  used  for  lower\nfrequencies while preserving enough information to reconstruct the high frequencies. This\noption  is enabled by default for the floating-point encoder and should generally be left\nas enabled except for testing purposes or to increase encoding speed.\n\n-1\nauto\nSelected by Encoder (default)\n\n0\noff Disable Channel Coupling\n\n1\non  Enable Channel Coupling\n"
                    },
                    {
                        "name": "-cpl_start_band _",
                        "content": "Coupling Start Band. Sets the channel coupling start band, from  1  to  15.  If  a  value\nhigher  than  the  bandwidth  is used, it will be reduced to 1 less than the coupling end\nband. If auto is used, the start band will be determined by the encoder based on the  bit\nrate,  sample  rate, and channel layout. This option has no effect if channel coupling is\ndisabled.\n\n-1\nauto\nSelected by Encoder (default)\n"
                    },
                    {
                        "name": "flac",
                        "content": "FLAC (Free Lossless Audio Codec) Encoder\n\nOptions\n\nThe following options are supported by FFmpeg's flac encoder.\n"
                    },
                    {
                        "name": "compression_level",
                        "content": "Sets the compression level, which chooses defaults for many other options if they are not\nset explicitly. Valid values are from 0 to 12, 5 is the default.\n"
                    },
                    {
                        "name": "frame_size",
                        "content": "Sets the size of the frames in samples per channel.\n"
                    },
                    {
                        "name": "lpc_coeff_precision",
                        "content": "Sets the LPC coefficient precision, valid values are from 1 to 15, 15 is the default.\n"
                    },
                    {
                        "name": "lpc_type",
                        "content": "Sets the first stage LPC algorithm\n\nnone\nLPC is not used\n\nfixed\nfixed LPC coefficients\n\nlevinson\ncholesky"
                    },
                    {
                        "name": "lpc_passes",
                        "content": "Number of passes to use for Cholesky factorization during LPC analysis\n"
                    },
                    {
                        "name": "min_partition_order",
                        "content": "The minimum partition order\n"
                    },
                    {
                        "name": "max_partition_order",
                        "content": "The maximum partition order\n"
                    },
                    {
                        "name": "prediction_order_method",
                        "content": "estimation\n2level\n4level\n8level\nsearch\nBruteforce search\n\nlog"
                    },
                    {
                        "name": "ch_mode",
                        "content": "Channel mode\n\nauto\nThe mode is chosen automatically for each frame\n\nindep\nChannels are independently coded\n\nleftside\nrightside\nmidside"
                    },
                    {
                        "name": "exact_rice_parameters",
                        "content": "Chooses if rice parameters are calculated exactly or approximately.  if  set  to  1  then\nthey  are  chosen  exactly,  which  slows the code down slightly and improves compression\nslightly.\n"
                    },
                    {
                        "name": "multi_dim_quant",
                        "content": "Multi Dimensional Quantization. If set to 1 then a 2nd stage  LPC  algorithm  is  applied\nafter  the  first  stage  to  finetune  the coefficients. This is quite slow and slightly\nimproves compression.\n"
                    },
                    {
                        "name": "opus",
                        "content": "Opus encoder.\n\nThis is a native FFmpeg encoder for the Opus format. Currently its in  development  and  only\nimplements  the  CELT part of the codec. Its quality is usually worse and at best is equal to\nthe libopus encoder.\n\nOptions\n\nb   Set bit rate in bits/s. If unspecified it uses the number of channels and the  layout  to\nmake a good guess.\n"
                    },
                    {
                        "name": "opus_delay",
                        "content": "Sets the maximum delay in milliseconds. Lower delays than 20ms will very quickly decrease\nquality.\n"
                    },
                    {
                        "name": "libfdk_aac",
                        "content": "libfdk-aac AAC (Advanced Audio Coding) encoder wrapper.\n\nThe libfdk-aac library is based on the Fraunhofer FDK AAC code from the Android project.\n\nRequires the presence of the libfdk-aac headers and library during configuration. You need to\nexplicitly  configure  the build with \"--enable-libfdk-aac\". The library is also incompatible\nwith GPL, so  if  you  allow  the  use  of  GPL,  you  should  configure  with  \"--enable-gpl\n--enable-nonfree --enable-libfdk-aac\".\n\nThis encoder has support for the AAC-HE profiles.\n\nVBR  encoding,  enabled  through  the  vbr or flags +qscale options, is experimental and only\nworks with some combinations of parameters.\n\nSupport for encoding 7.1 audio is only available with libfdk-aac 0.1.3 or higher.\n\nFor       more       information       see        the        fdk-aac        project        at\n<http://sourceforge.net/p/opencore-amr/fdk-aac/>.\n\nOptions\n\nThe following options are mapped on the shared FFmpeg codec options.\n\nb   Set  bit  rate in bits/s. If the bitrate is not explicitly specified, it is automatically\nset to a suitable value depending on the selected profile.\n\nIn case VBR mode is enabled the option is ignored.\n\nar  Set audio sampling rate (in Hz).\n"
                    },
                    {
                        "name": "channels",
                        "content": "Set the number of audio channels.\n"
                    },
                    {
                        "name": "flags +qscale",
                        "content": "Enable fixed quality, VBR (Variable Bit Rate) mode.  Note that VBR is implicitly  enabled\nwhen the vbr value is positive.\n"
                    },
                    {
                        "name": "cutoff",
                        "content": "Set  cutoff  frequency.  If  not  specified  (or explicitly set to 0) it will use a value\nautomatically computed by the library. Default value is 0.\n"
                    },
                    {
                        "name": "profile",
                        "content": "Set audio profile.\n\nThe following profiles are recognized:\n\naaclow\nLow Complexity AAC (LC)\n\naache\nHigh Efficiency AAC (HE-AAC)\n\naachev2\nHigh Efficiency AAC version 2 (HE-AACv2)\n\naacld\nLow Delay AAC (LD)\n\naaceld\nEnhanced Low Delay AAC (ELD)\n\nIf not specified it is set to aaclow.\n\nThe following are private options of the libfdkaac encoder.\n"
                    },
                    {
                        "name": "afterburner",
                        "content": "Enable afterburner feature if set to 1, disabled if set to 0. This improves  the  quality\nbut also the required processing power.\n\nDefault value is 1.\n"
                    },
                    {
                        "name": "eld_sbr",
                        "content": "Enable SBR (Spectral Band Replication) for ELD if set to 1, disabled if set to 0.\n\nDefault value is 0.\n"
                    },
                    {
                        "name": "eld_v2",
                        "content": "Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if set to 1, disabled if\nset to 0.\n\nNote       that       option       is       available      when      fdk-aac      version\n(AACENCODERLIBVL0.AACENCODERLIBVL1.AACENCODERLIBVL2) > (4.0.0).\n\nDefault value is 0.\n"
                    },
                    {
                        "name": "signaling",
                        "content": "Set SBR/PS signaling style.\n\nIt can assume one of the following values:\n\ndefault\nchoose signaling implicitly (explicit hierarchical by  default,  implicit  if  global\nheader is disabled)\n\nimplicit\nimplicit backwards compatible signaling\n\nexplicitsbr\nexplicit SBR, implicit PS signaling\n\nexplicithierarchical\nexplicit hierarchical signaling\n\nDefault value is default.\n"
                    },
                    {
                        "name": "latm",
                        "content": "Output LATM/LOAS encapsulated data if set to 1, disabled if set to 0.\n\nDefault value is 0.\n"
                    },
                    {
                        "name": "header_period",
                        "content": "Set   StreamMuxConfig   and  PCE  repetition  period  (in  frames)  for  sending  in-band\nconfiguration buffers within LATM/LOAS transport layer.\n\nMust be a 16-bits non-negative integer.\n\nDefault value is 0.\n\nvbr Set VBR mode, from 1 to 5. 1 is lowest quality  (though  still  pretty  good)  and  5  is\nhighest quality. A value of 0 will disable VBR, and CBR (Constant Bit Rate) is enabled.\n\nCurrently only the aaclow profile supports VBR encoding.\n\nVBR modes 1-5 correspond to roughly the following average bit rates:\n\n1   32 kbps/channel\n\n2   40 kbps/channel\n\n3   48-56 kbps/channel\n\n4   64 kbps/channel\n\n5   about 80-96 kbps/channel\n\nDefault value is 0.\n"
                    },
                    {
                        "name": "frame_length",
                        "content": "Set  the  audio  frame  length  in  samples. Default value is the internal default of the\nlibrary. Refer to the library's documentation for information about supported values.\n\nExamples\n\n•   Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4) container:\n\nffmpeg -i input.wav -codec:a libfdkaac -vbr 3 output.m4a\n\n•   Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using  the  High-Efficiency  AAC\nprofile:\n\nffmpeg -i input.wav -c:a libfdkaac -profile:a aache -b:a 64k output.m4a\n"
                    },
                    {
                        "name": "libmp3lame",
                        "content": "LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper.\n\nRequires the presence of the libmp3lame headers and library during configuration. You need to\nexplicitly configure the build with \"--enable-libmp3lame\".\n\nSee libshine for a fixed-point MP3 encoder, although with a lower quality.\n\nOptions\n\nThe  following  options  are  supported by the libmp3lame wrapper. The lame-equivalent of the\noptions are listed in parentheses.\n\nb (-b)\nSet bitrate expressed  in  bits/s  for  CBR  or  ABR.  LAME  \"bitrate\"  is  expressed  in\nkilobits/s.\n\nq (-V)\nSet constant quality setting for VBR. This option is valid only using the ffmpeg command-\nline tool. For library interface users, use globalquality.\n\ncompressionlevel (-q)\nSet  algorithm  quality.  Valid  arguments  are integers in the 0-9 range, with 0 meaning\nhighest quality but slowest, and 9 meaning fastest while producing the worst quality.\n\ncutoff (--lowpass)\nSet lowpass cutoff frequency. If unspecified, the encoder dynamically adjusts the cutoff.\n"
                    },
                    {
                        "name": "reservoir",
                        "content": "Enable use of bit reservoir when set to 1. Default value is 1. LAME has this  enabled  by\ndefault, but can be overridden by use --nores option.\n\njointstereo (-m j)\nEnable  the  encoder  to  use  (on  a frame by frame basis) either L/R stereo or mid/side\nstereo. Default value is 1.\n\nabr (--abr)\nEnable the encoder to use ABR when set to 1. The lame  --abr  sets  the  target  bitrate,\nwhile this options only tells FFmpeg to use ABR still relies on b to set bitrate.\n\ncopyright (-c)\nSet MPEG audio copyright flag when set to 1. The default value is 0 (disabled).\n\noriginal (-o)\nSet MPEG audio original flag when set to 1. The default value is 1 (enabled).\n"
                    },
                    {
                        "name": "libopencore-amrnb",
                        "content": "OpenCORE Adaptive Multi-Rate Narrowband encoder.\n\nRequires  the presence of the libopencore-amrnb headers and library during configuration. You\nneed to explicitly configure the build with \"--enable-libopencore-amrnb --enable-version3\".\n\nThis is a mono-only encoder. Officially it only supports 8000Hz  sample  rate,  but  you  can\noverride it by setting strict to unofficial or lower.\n\nOptions\n\nb   Set  bitrate  in  bits  per  second. Only the following bitrates are supported, otherwise\nlibavcodec will round to the nearest valid bitrate.\n\n4750\n5150\n5900\n6700\n7400\n7950\n10200\n12200\ndtx Allow discontinuous transmission (generate comfort noise) when  set  to  1.  The  default\nvalue is 0 (disabled).\n"
                    },
                    {
                        "name": "libopus",
                        "content": "libopus Opus Interactive Audio Codec encoder wrapper.\n\nRequires  the  presence  of the libopus headers and library during configuration. You need to\nexplicitly configure the build with \"--enable-libopus\".\n\nOption Mapping\n\nMost libopus options are modelled after the opusenc utility from opus-tools. The following is\nan option mapping chart describing options  supported  by  the  libopus  wrapper,  and  their\nopusenc-equivalent in parentheses.\n\nb (bitrate)\nSet  the  bit  rate in bits/s.  FFmpeg's b option is expressed in bits/s, while opusenc's\nbitrate in kilobits/s.\n\nvbr (vbr, hard-cbr, and cvbr)\nSet VBR mode. The FFmpeg vbr option has the following valid arguments, with  the  opusenc\nequivalent options in parentheses:\n\noff (hard-cbr)\nUse constant bit rate encoding.\n\non (vbr)\nUse variable bit rate encoding (the default).\n\nconstrained (cvbr)\nUse constrained variable bit rate encoding.\n\ncompressionlevel (comp)\nSet  encoding algorithm complexity. Valid options are integers in the 0-10 range. 0 gives\nthe fastest encodes but lower quality, while 10 gives the  highest  quality  but  slowest\nencoding. The default is 10.\n\nframeduration (framesize)\nSet  maximum  frame  size,  or  duration of a frame in milliseconds. The argument must be\nexactly the following: 2.5, 5, 10, 20, 40, 60. Smaller frame sizes achieve lower  latency\nbut  less  quality  at  a given bitrate.  Sizes greater than 20ms are only interesting at\nfairly low bitrates.  The default is 20ms.\n\npacketloss (expect-loss)\nSet expected packet loss percentage. The default is 0.\n\nfec (n/a)\nEnable inband forward error correction. packetloss must be non-zero to take advantage  -\nfrequency  of  FEC  'side-data'  is  proportional  to  expected  packet loss.  Default is\ndisabled.\n"
                    },
                    {
                        "name": "application (N.A.)",
                        "content": "Set intended application type. Valid options are listed below:\n\nvoip\nFavor improved speech intelligibility.\n\naudio\nFavor faithfulness to the input (the default).\n\nlowdelay\nRestrict to only the lowest delay modes by disabling voice-optimized modes.\n"
                    },
                    {
                        "name": "cutoff (N.A.)",
                        "content": "Set cutoff bandwidth in Hz. The argument must be exactly  one  of  the  following:  4000,\n6000,  8000,  12000,  or  20000, corresponding to narrowband, mediumband, wideband, super\nwideband, and fullband respectively. The  default  is  0  (cutoff  disabled).  Note  that\nlibopus  forces  a  wideband cutoff for bitrates < 15 kbps, unless CELT-only (application\nset to lowdelay) mode is used.\n\nmappingfamily (mappingfamily)\nSet channel mapping family to be used by the  encoder.  The  default  value  of  -1  uses\nmapping  family 0 for mono and stereo inputs, and mapping family 1 otherwise. The default\nalso disables the surround  masking  and  LFE  bandwidth  optimzations  in  libopus,  and\nrequires that the input contains 8 channels or fewer.\n\nOther  values  include  0  for mono and stereo, 1 for surround sound with masking and LFE\nbandwidth optimizations, and 255 for independent  streams  with  an  unspecified  channel\nlayout.\n"
                    },
                    {
                        "name": "apply_phase_inv (N.A.) (requires libopus >= 1.2)",
                        "content": "If  set  to  0,  disables  the use of phase inversion for intensity stereo, improving the\nquality of mono downmixes, but slightly reducing normal stereo quality. The default is  1\n(phase inversion enabled).\n"
                    },
                    {
                        "name": "libshine",
                        "content": "Shine Fixed-Point MP3 encoder wrapper.\n\nShine  is  a fixed-point MP3 encoder. It has a far better performance on platforms without an\nFPU, e.g. armel CPUs, and some phones and tablets.   However,  as  it  is  more  targeted  on\nperformance  than  quality,  it  is  not on par with LAME and other production-grade encoders\nquality-wise. Also, according to the project's homepage, this encoder may not be free of bugs\nas the code was written a long time ago and the project was dead for at least 5 years.\n\nThis encoder only supports stereo and mono input. This is also CBR-only.\n\nThe     original     project     (last     updated     in     early     2007)      is      at\n<http://sourceforge.net/projects/libshine-fxp/>.  We  only  support  the  updated fork by the\nSavonet/Liquidsoap project at <https://github.com/savonet/shine>.\n\nRequires the presence of the libshine headers and library during configuration. You  need  to\nexplicitly configure the build with \"--enable-libshine\".\n\nSee also libmp3lame.\n\nOptions\n\nThe  following  options are supported by the libshine wrapper. The shineenc-equivalent of the\noptions are listed in parentheses.\n\nb (-b)\nSet bitrate expressed in bits/s for CBR. shineenc -b option is expressed in kilobits/s.\n"
                    },
                    {
                        "name": "libtwolame",
                        "content": "TwoLAME MP2 encoder wrapper.\n\nRequires the presence of the libtwolame headers and library during configuration. You need to\nexplicitly configure the build with \"--enable-libtwolame\".\n\nOptions\n\nThe following options are supported by the libtwolame wrapper. The twolame-equivalent options\nfollow the FFmpeg ones and are in parentheses.\n\nb (-b)\nSet bitrate expressed in bits/s for CBR. twolame b option  is  expressed  in  kilobits/s.\nDefault value is 128k.\n\nq (-V)\nSet  quality  for experimental VBR support. Maximum value range is from -50 to 50, useful\nrange is from -10 to 10. The higher the value, the better the  quality.  This  option  is\nvalid  only  using  the  ffmpeg  command-line  tool.  For  library  interface  users, use\nglobalquality.\n\nmode (--mode)\nSet the mode of the resulting audio. Possible values:\n\nauto\nChoose mode automatically based on the input. This is the default.\n\nstereo\nStereo\n\njointstereo\nJoint stereo\n\ndualchannel\nDual channel\n\nmono\nMono\n\npsymodel (--psyc-mode)\nSet psychoacoustic model to use in encoding. The argument must be an integer  between  -1\nand 4, inclusive. The higher the value, the better the quality. The default value is 3.\n\nenergylevels (--energy)\nEnable energy levels extensions when set to 1. The default value is 0 (disabled).\n\nerrorprotection (--protect)\nEnable CRC error protection when set to 1. The default value is 0 (disabled).\n\ncopyright (--copyright)\nSet MPEG audio copyright flag when set to 1. The default value is 0 (disabled).\n\noriginal (--original)\nSet MPEG audio original flag when set to 1. The default value is 0 (disabled).\n"
                    },
                    {
                        "name": "libvo-amrwbenc",
                        "content": "VisualOn Adaptive Multi-Rate Wideband encoder.\n\nRequires  the  presence  of  the libvo-amrwbenc headers and library during configuration. You\nneed to explicitly configure the build with \"--enable-libvo-amrwbenc --enable-version3\".\n\nThis is a mono-only encoder. Officially it only supports 16000Hz sample  rate,  but  you  can\noverride it by setting strict to unofficial or lower.\n\nOptions\n\nb   Set  bitrate  in  bits/s. Only the following bitrates are supported, otherwise libavcodec\nwill round to the nearest valid bitrate.\n\n6600\n8850\n12650\n14250\n15850\n18250\n19850\n23050\n23850\ndtx Allow discontinuous transmission (generate comfort noise) when  set  to  1.  The  default\nvalue is 0 (disabled).\n"
                    },
                    {
                        "name": "libvorbis",
                        "content": "libvorbis encoder wrapper.\n\nRequires  the presence of the libvorbisenc headers and library during configuration. You need\nto explicitly configure the build with \"--enable-libvorbis\".\n\nOptions\n\nThe following options are supported by the libvorbis wrapper. The  oggenc-equivalent  of  the\noptions are listed in parentheses.\n\nTo  get  a  more  accurate  and extensive documentation of the libvorbis options, consult the\nlibvorbisenc's    and    oggenc's     documentations.      See     <http://xiph.org/vorbis/>,\n<http://wiki.xiph.org/Vorbis-tools>, and oggenc(1).\n\nb (-b)\nSet bitrate expressed in bits/s for ABR. oggenc -b is expressed in kilobits/s.\n\nq (-q)\nSet  constant quality setting for VBR. The value should be a float number in the range of\n-1.0 to 10.0. The higher the value, the better the quality. The default value is 3.0.\n\nThis option is valid only using the ffmpeg  command-line  tool.   For  library  interface\nusers, use globalquality.\n\ncutoff (--advanced-encode-option lowpassfrequency=N)\nSet  cutoff  bandwidth  in  Hz,  a value of 0 disables cutoff. oggenc's related option is\nexpressed in kHz. The default value is 0 (cutoff disabled).\n\nminrate (-m)\nSet minimum bitrate expressed in bits/s. oggenc -m is expressed in kilobits/s.\n\nmaxrate (-M)\nSet maximum bitrate expressed in bits/s. oggenc -M is expressed in kilobits/s. This  only\nhas effect on ABR mode.\n\niblock (--advanced-encode-option impulsenoisetune=N)\nSet noise floor bias for impulse blocks. The value is a float number from -15.0 to 0.0. A\nnegative  bias  instructs  the  encoder  to  pay  special  attention  to the crispness of\ntransients in the encoded audio. The tradeoff for better transient response is  a  higher\nbitrate.\n"
                    },
                    {
                        "name": "mjpeg",
                        "content": "Motion JPEG encoder.\n\nOptions\n"
                    },
                    {
                        "name": "huffman",
                        "content": "Set the huffman encoding strategy. Possible values:\n\ndefault\nUse the default huffman tables. This is the default strategy.\n\noptimal\nCompute and use optimal huffman tables.\n"
                    },
                    {
                        "name": "wavpack",
                        "content": "WavPack lossless audio encoder.\n\nOptions\n\nThe equivalent options for wavpack command line utility are listed in parentheses.\n\nShared options\n\nThe  following  shared  options are effective for this encoder. Only special notes about this\nparticular encoder will be documented here. For the general meaning of the options,  see  the\nCodec Options chapter.\n\nframesize (--blocksize)\nFor  this  encoder,  the  range  for  this  option  is between 128 and 131072. Default is\nautomatically decided based on sample rate and number of channel.\n\nFor the complete formula of calculating default, see libavcodec/wavpackenc.c.\n\ncompressionlevel (-f, -h, -hh, and -x)\n\nPrivate options\n\njointstereo (-j)\nSet whether to enable joint stereo. Valid values are:\n\non (1)\nForce mid/side audio encoding.\n\noff (0)\nForce left/right audio encoding.\n\nauto\nLet the encoder decide automatically.\n"
                    },
                    {
                        "name": "optimize_mono",
                        "content": "Set whether to enable optimization for mono. This option is only effective  for  non-mono\nstreams. Available values:\n\non  enabled\n\noff disabled\n"
                    }
                ]
            },
            "VIDEO ENCODERS": {
                "content": "A description of some of the currently available video encoders follows.\n",
                "subsections": [
                    {
                        "name": "a64_multi, a64_multi5",
                        "content": "A64  /  Commodore  64  multicolor  charset  encoder.  \"a64multi5\" is extended with 5th color\n(colram).\n"
                    },
                    {
                        "name": "Cinepak",
                        "content": "Cinepak aka CVID encoder.  Compatible with Windows 3.1 and vintage MacOS.\n\nOptions\n\ng integer\nKeyframe interval.  A keyframe is inserted at least every \"-g\" frames, sometimes sooner.\n\nq:v integer\nQuality factor. Lower is better. Higher gives lower bitrate.  The following  table  lists\nbitrates when encoding akiyocif.y4m for various values of \"-q:v\" with \"-g 100\":\n\n\"-q:v 1\" 1918 kb/s\n\"-q:v 2\" 1735 kb/s\n\"-q:v 4\" 1500 kb/s\n\"-q:v 10\" 1041 kb/s\n\"-q:v 20\" 826 kb/s\n\"-q:v 40\" 553 kb/s\n\"-q:v 100\" 394 kb/s\n\"-q:v 200\" 312 kb/s\n\"-q:v 400\" 266 kb/s\n\"-q:v 1000\" 237 kb/s\nmaxextracbiterations integer\nMax extra codebook recalculation passes, more is better and slower.\n\nskipemptycb boolean\nAvoid wasting bytes, ignore vintage MacOS decoder.\n\nmaxstrips integer\nminstrips integer\nThe minimum and maximum number of strips to use.  Wider range sometimes improves quality.\nMore  strips is generally better quality but costs more bits.  Fewer strips tend to yield\nmore keyframes.  Vintage compatible is 1..3.\n\nstripnumberadaptivity integer\nHow much number of strips is allowed to change between  frames.   Higher  is  better  but\nslower.\n\nGIF\nGIF image/animation encoder.\n\nOptions\n\ngifflags integer\nSets the flags used for GIF encoding.\n\noffsetting\nEnables picture offsetting.\n\nDefault is enabled.\n\ntransdiff\nEnables transparency detection between frames.\n\nDefault is enabled.\n\ngifimage integer\nEnables encoding one full GIF image per frame, rather than an animated GIF.\n\nDefault value is 0.\n\nglobalpalette integer\nWrites a palette to the global GIF header where feasible.\n\nIf  disabled,  every  frame will always have a palette written, even if there is a global\npalette supplied.\n\nDefault value is 1.\n"
                    },
                    {
                        "name": "Hap",
                        "content": "Vidvox Hap video encoder.\n\nOptions\n\nformat integer\nSpecifies the Hap format to encode.\n\nhap\nhapalpha\nhapq\n\nDefault value is hap.\n\nchunks integer\nSpecifies the number of chunks to split frames into,  between  1  and  64.  This  permits\nmultithreaded decoding of large frames, potentially at the cost of data-rate. The encoder\nmay modify this value to divide frames evenly.\n\nDefault value is 1.\n\ncompressor integer\nSpecifies  the  second-stage compressor to use. If set to none, chunks will be limited to\n1, as chunked uncompressed frames offer no benefit.\n\nnone\nsnappy\n\nDefault value is snappy.\n"
                    },
                    {
                        "name": "jpeg2000",
                        "content": "The native jpeg 2000 encoder is lossy by default, the \"-q:v\" option can be used  to  set  the\nencoding quality. Lossless encoding can be selected with \"-pred 1\".\n\nOptions\n\nformat integer\nCan be set to either \"j2k\" or \"jp2\" (the default) that makes it possible to store non-rgb\npixfmts.\n\ntilewidth integer\nSets tile width. Range is 1 to 1073741824. Default is 256.\n\ntileheight integer\nSets tile height. Range is 1 to 1073741824. Default is 256.\n\npred integer\nAllows setting the discrete wavelet transform (DWT) type\n\ndwt97int (Lossy)\ndwt53 (Lossless)\n\nDefault is \"dwt97int\"\n\nsop boolean\nEnable this to add SOP marker at the start of each packet. Disabled by default.\n\neph boolean\nEnable this to add EPH marker at the end of each packet header. Disabled by default.\n\nprog integer\nSets the progression order to be used by the encoder.  Possible values are:\n\nlrcp\nrlcp\nrpcl\npcrl\ncprl\n\nSet to \"lrcp\" by default.\n\nlayerrates string\nBy  default,  when this option is not used, compression is done using the quality metric.\nThis option allows for compression using compression ratio.  The  compression  ratio  for\neach  level  could  be  specified.  The compression ratio of a layer \"l\" species the what\nratio of total file size is contained in the first \"l\" layers.\n\nExample usage:\n\nffmpeg -i input.bmp -c:v jpeg2000 -layerrates \"100,10,1\" output.j2k\n\nThis would compress the image to contain 3 layers, where the data contained in the  first\nlayer  would  be compressed by 1000 times, compressed by 100 in the first two layers, and\nshall contain all data while using all 3 layers.\n"
                    },
                    {
                        "name": "librav1e",
                        "content": "rav1e AV1 encoder wrapper.\n\nRequires the presence of the rav1e headers and library during  configuration.   You  need  to\nexplicitly configure the build with \"--enable-librav1e\".\n\nOptions\n"
                    },
                    {
                        "name": "qmax",
                        "content": "Sets the maximum quantizer to use when using bitrate mode.\n"
                    },
                    {
                        "name": "qmin",
                        "content": "Sets the minimum quantizer to use when using bitrate mode.\n\nqp  Uses quantizer mode to encode at the given quantizer (0-255).\n"
                    },
                    {
                        "name": "speed",
                        "content": "Selects the speed preset (0-10) to encode with.\n"
                    },
                    {
                        "name": "tiles",
                        "content": "Selects how many tiles to encode with.\n"
                    },
                    {
                        "name": "tile-rows",
                        "content": "Selects how many rows of tiles to encode with.\n"
                    },
                    {
                        "name": "tile-columns",
                        "content": "Selects how many columns of tiles to encode with.\n"
                    },
                    {
                        "name": "rav1e-params",
                        "content": "Set  rav1e options using a list of key=value pairs separated by \":\". See rav1e --help for\na list of options.\n\nFor example to specify librav1e encoding options with -rav1e-params:\n\nffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:lowlatency=true output.mp4\n"
                    },
                    {
                        "name": "libaom-av1",
                        "content": "libaom AV1 encoder wrapper.\n\nRequires the presence of the libaom headers and library during configuration.   You  need  to\nexplicitly configure the build with \"--enable-libaom\".\n\nOptions\n\nThe wrapper supports the following standard libavcodec options:\n\nb   Set  bitrate  target in bits/second.  By default this will use variable-bitrate mode.  If\nmaxrate and minrate are also set to the same value  then  it  will  use  constant-bitrate\nmode, otherwise if crf is set as well then it will use constrained-quality mode.\n"
                    },
                    {
                        "name": "g keyint_min",
                        "content": "Set  key  frame placement.  The GOP size sets the maximum distance between key frames; if\nzero the output stream will be intra-only.  The minimum distance is ignored unless it  is\nthe  same  as  the  GOP  size,  in  which  case  key frames will always appear at a fixed\ninterval.  Not set by default, so without this option the  library  has  completely  free\nchoice about where to place key frames.\n"
                    },
                    {
                        "name": "qmin qmax",
                        "content": "Set minimum/maximum quantisation values.  Valid range is from 0 to 63 (warning: this does\nnot  match  the  quantiser  values  actually  used  by  AV1  - divide by four to map real\nquantiser values to this range).  Defaults to min/max (no constraint).\n"
                    },
                    {
                        "name": "minrate maxrate bufsize rc_init_occupancy",
                        "content": "Set rate control buffering parameters.  Not used if not set - defaults  to  unconstrained\nvariable bitrate.\n"
                    },
                    {
                        "name": "threads",
                        "content": "Set  the  number  of threads to use while encoding.  This may require the tiles or row-mt\noptions to also be set to actually use the specified number of threads fully. Defaults to\nthe number of hardware threads supported by the host machine.\n"
                    },
                    {
                        "name": "profile",
                        "content": "Set the encoding profile.  Defaults to using the profile which matches the bit depth  and\nchroma subsampling of the input.\n\nThe wrapper also has some specific options:\n"
                    },
                    {
                        "name": "cpu-used",
                        "content": "Set  the  quality/encoding  speed  tradeoff.   Valid range is from 0 to 8, higher numbers\nindicating greater speed and lower quality.  The default value is 1, which will  be  slow\nand high quality.\n"
                    },
                    {
                        "name": "auto-alt-ref",
                        "content": "Enable  use  of  alternate  reference  frames.   Defaults  to the internal default of the\nlibrary.\n\narnr-max-frames (frames)\nSet altref noise reduction max frame count. Default is -1.\n\narnr-strength (strength)\nSet altref noise reduction filter strength. Range is -1 to 6. Default is -1.\n\naq-mode (aq-mode)\nSet adaptive quantization mode. Possible values:\n\nnone (0)\nDisabled.\n\nvariance (1)\nVariance-based.\n\ncomplexity (2)\nComplexity-based.\n\ncyclic (3)\nCyclic refresh.\n\ntune (tune)\nSet the distortion metric the encoder is tuned with. Default is \"psnr\".\n\npsnr (0)\nssim (1)"
                    },
                    {
                        "name": "lag-in-frames",
                        "content": "Set the maximum number of frames which the encoder may keep in flight at any one time for\nlookahead purposes.  Defaults to the internal default of the library.\n"
                    },
                    {
                        "name": "error-resilience",
                        "content": "Enable error resilience features:\n\ndefault\nImprove resilience against losses of whole frames.\n\nNot enabled by default.\n\ncrf Set the quality/size tradeoff for constant-quality (no bitrate target)  and  constrained-\nquality  (with  maximum  bitrate  target)  modes.  Valid range is 0 to 63, higher numbers\nindicating lower quality and smaller output size.  Only used if set; by default only  the\nbitrate target is used.\n"
                    },
                    {
                        "name": "static-thresh",
                        "content": "Set  a  change  threshold  on  blocks  below  which  they will be skipped by the encoder.\nDefined in arbitrary units as a nonnegative integer, defaulting to zero  (no  blocks  are\nskipped).\n"
                    },
                    {
                        "name": "drop-threshold",
                        "content": "Set  a  threshold  for  dropping  frames when close to rate control bounds.  Defined as a\npercentage of the target  buffer  -  when  the  rate  control  buffer  falls  below  this\npercentage,  frames  will be dropped until it has refilled above the threshold.  Defaults\nto zero (no frames are dropped).\n\ndenoise-noise-level (level)\nAmount of noise to be removed for grain synthesis. Grain synthesis is  disabled  if  this\noption is not set or set to 0.\n\ndenoise-block-size (pixels)\nBlock size used for denoising for grain synthesis. If not set, AV1 codec uses the default\nvalue of 32.\n\nundershoot-pct (pct)\nSet  datarate  undershoot  (min)  percentage  of  the target bitrate. Range is -1 to 100.\nDefault is -1.\n\novershoot-pct (pct)\nSet datarate overshoot (max) percentage of the target  bitrate.  Range  is  -1  to  1000.\nDefault is -1.\n\nminsection-pct (pct)\nMinimum  percentage  variation of the GOP bitrate from the target bitrate. If minsection-\npct is not set, the  libaomenc  wrapper  computes  it  as  follows:  \"(minrate  *  100  /\nbitrate)\".  Range is -1 to 100. Default is -1 (unset).\n\nmaxsection-pct (pct)\nMaximum  percentage  variation of the GOP bitrate from the target bitrate. If maxsection-\npct is not set, the  libaomenc  wrapper  computes  it  as  follows:  \"(maxrate  *  100  /\nbitrate)\".  Range is -1 to 5000. Default is -1 (unset).\n\nframe-parallel (boolean)\nEnable frame parallel decodability features. Default is true.\n"
                    },
                    {
                        "name": "tiles",
                        "content": "Set  the  number  of  tiles  to  encode  the input video with, as columns x rows.  Larger\nnumbers allow greater parallelism in both encoding and decoding, but may decrease  coding\nefficiency.   Defaults  to  the minimum number of tiles required by the size of the input\nvideo (this is 1x1 (that is, a single tile) for sizes up to and including 4K).\n"
                    },
                    {
                        "name": "tile-columns tile-rows",
                        "content": "Set the number of tiles as log2 of the number of tile rows  and  columns.   Provided  for\ncompatibility with libvpx/VP9.\n"
                    },
                    {
                        "name": "row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)",
                        "content": "Enable row based multi-threading. Disabled by default.\n\nenable-cdef (boolean)\nEnable Constrained Directional Enhancement Filter. The libaom-av1 encoder enables CDEF by\ndefault.\n\nenable-restoration (boolean)\nEnable Loop Restoration Filter. Default is true for libaom-av1.\n\nenable-global-motion (boolean)\nEnable the use of global motion for block prediction. Default is true.\n\nenable-intrabc (boolean)\nEnable  block  copy  mode  for  intra  block  prediction.  This mode is useful for screen\ncontent. Default is true.\n\nenable-rect-partitions (boolean) (Requires libaom >= v2.0.0)\nEnable rectangular partitions. Default is true.\n\nenable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)\nEnable 1:4/4:1 partitions. Default is true.\n\nenable-ab-partitions (boolean) (Requires libaom >= v2.0.0)\nEnable AB shape partitions. Default is true.\n\nenable-angle-delta (boolean) (Requires libaom >= v2.0.0)\nEnable angle delta intra prediction. Default is true.\n\nenable-cfl-intra (boolean) (Requires libaom >= v2.0.0)\nEnable chroma predicted from luma intra prediction. Default is true.\n\nenable-filter-intra (boolean) (Requires libaom >= v2.0.0)\nEnable filter intra predictor. Default is true.\n\nenable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)\nEnable intra edge filter. Default is true.\n\nenable-smooth-intra (boolean) (Requires libaom >= v2.0.0)\nEnable smooth intra prediction mode. Default is true.\n\nenable-paeth-intra (boolean) (Requires libaom >= v2.0.0)\nEnable paeth predictor in intra prediction. Default is true.\n\nenable-palette (boolean) (Requires libaom >= v2.0.0)\nEnable palette prediction mode. Default is true.\n\nenable-flip-idtx (boolean) (Requires libaom >= v2.0.0)\nEnable extended transform type, including FLIPADSTDCT, DCTFLIPADST,  FLIPADSTFLIPADST,\nADSTFLIPADST, FLIPADSTADST, IDTX, VDCT, HDCT, VADST, HADST, VFLIPADST, HFLIPADST.\nDefault is true.\n\nenable-tx64 (boolean) (Requires libaom >= v2.0.0)\nEnable 64-pt transform. Default is true.\n\nreduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)\nUse reduced set of transform types. Default is false.\n\nuse-intra-dct-only (boolean) (Requires libaom >= v2.0.0)\nUse DCT only for INTRA modes. Default is false.\n\nuse-inter-dct-only (boolean) (Requires libaom >= v2.0.0)\nUse DCT only for INTER modes. Default is false.\n\nuse-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)\nUse Default-transform only for INTRA modes. Default is false.\n\nenable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)\nEnable temporal mv prediction. Default is true.\n\nenable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)\nUse reduced set of single and compound references. Default is false.\n\nenable-obmc (boolean) (Requires libaom >= v2.0.0)\nEnable obmc. Default is true.\n\nenable-dual-filter (boolean) (Requires libaom >= v2.0.0)\nEnable dual filter. Default is true.\n\nenable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)\nEnable difference-weighted compound. Default is true.\n\nenable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)\nEnable distance-weighted compound. Default is true.\n\nenable-onesided-comp (boolean) (Requires libaom >= v2.0.0)\nEnable one sided compound. Default is true.\n\nenable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)\nEnable interinter wedge compound. Default is true.\n\nenable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)\nEnable interintra wedge compound. Default is true.\n\nenable-masked-comp (boolean) (Requires libaom >= v2.0.0)\nEnable masked compound. Default is true.\n\nenable-interintra-comp (boolean) (Requires libaom >= v2.0.0)\nEnable interintra compound. Default is true.\n\nenable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)\nEnable smooth interintra mode. Default is true.\n"
                    },
                    {
                        "name": "aom-params",
                        "content": "Set  libaom  options  using  a  list  of  key=value pairs separated by \":\". For a list of\nsupported options, see aomenc --help under the section \"AV1 Specific Options\".\n\nFor example to specify libaom encoding options with -aom-params:\n\nffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4\n"
                    },
                    {
                        "name": "libsvtav1",
                        "content": "SVT-AV1 encoder wrapper.\n\nRequires the presence of the SVT-AV1 headers and library during configuration.  You  need  to\nexplicitly configure the build with \"--enable-libsvtav1\".\n\nOptions\n"
                    },
                    {
                        "name": "profile",
                        "content": "Set the encoding profile.\n\nmain\nhigh\nprofessional"
                    },
                    {
                        "name": "level",
                        "content": "Set the operating point level. For example: '4.0'\n"
                    },
                    {
                        "name": "hielevel",
                        "content": "Set the Hierarchical prediction levels.\n\n3level\n4level\nThis is the default.\n"
                    },
                    {
                        "name": "tier",
                        "content": "Set the operating point tier.\n\nmain\nThis is the default.\n\nhigh"
                    },
                    {
                        "name": "qmax",
                        "content": "Set the maximum quantizer to use when using a bitrate mode.\n"
                    },
                    {
                        "name": "qmin",
                        "content": "Set the minimum quantizer to use when using a bitrate mode.\n\ncrf Constant rate factor value used in crf rate control mode (0-63).\n\nqp  Set the quantizer used in cqp rate control mode (0-63).\n"
                    },
                    {
                        "name": "sc_detection",
                        "content": "Enable scene change detection.\n"
                    },
                    {
                        "name": "la_depth",
                        "content": "Set number of frames to look ahead (0-120).\n"
                    },
                    {
                        "name": "preset",
                        "content": "Set the quality-speed tradeoff, in the range 0 to 13.  Higher values are faster but lower\nquality.\n"
                    },
                    {
                        "name": "tile_rows",
                        "content": "Set log2 of the number of rows of tiles to use (0-6).\n"
                    },
                    {
                        "name": "tile_columns",
                        "content": "Set log2 of the number of columns of tiles to use (0-4).\n"
                    },
                    {
                        "name": "svtav1-params",
                        "content": "Set  SVT-AV1  options  using  a list of key=value pairs separated by \":\". See the SVT-AV1\nencoder user guide for a list of accepted parameters.\n"
                    },
                    {
                        "name": "libjxl",
                        "content": "libjxl JPEG XL encoder wrapper.\n\nRequires the presence of the libjxl headers and library during  configuration.  You  need  to\nexplicitly configure the build with \"--enable-libjxl\".\n\nOptions\n\nThe libjxl wrapper supports the following options:\n"
                    },
                    {
                        "name": "distance",
                        "content": "Set  the  target  Butteraugli  distance. This is a quality setting: lower distance yields\nhigher  quality,  with  distance=1.0  roughly  comparable  to  libjpeg  Quality  90   for\nphotographic  content.  Setting  distance=0.0 yields true lossless encoding. Valid values\nrange between 0.0 and 15.0, and sane  values  rarely  exceed  5.0.  Setting  distance=0.1\nusually attains transparency for most input. The default is 1.0.\n"
                    },
                    {
                        "name": "effort",
                        "content": "Set  the  encoding  effort used. Higher effort values produce more consistent quality and\nusually produces a better quality/bpp curve, at the cost of more CPU time required. Valid\nvalues range from 1 to 9, and the default is 7.\n"
                    },
                    {
                        "name": "modular",
                        "content": "Force the encoder to use Modular mode instead of choosing automatically. The  default  is\nto  use  VarDCT for lossy encoding and Modular for lossless. VarDCT is generally superior\nto Modular for lossy encoding but does not support lossless encoding.\n"
                    },
                    {
                        "name": "libkvazaar",
                        "content": "Kvazaar H.265/HEVC encoder.\n\nRequires the presence of the libkvazaar headers and library during configuration. You need to\nexplicitly configure the build with --enable-libkvazaar.\n\nOptions\n\nb   Set target video bitrate in bit/s and enable rate control.\n"
                    },
                    {
                        "name": "kvazaar-params",
                        "content": "Set kvazaar parameters as a list of name=value pairs separated by commas (,). See kvazaar\ndocumentation for a list of options.\n"
                    },
                    {
                        "name": "libopenh264",
                        "content": "Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper.\n\nThis  encoder  requires  the  presence  of  the  libopenh264  headers  and   library   during\nconfiguration.  You  need  to explicitly configure the build with \"--enable-libopenh264\". The\nlibrary is detected using pkg-config.\n\nFor more information about the library see <http://www.openh264.org>.\n\nOptions\n\nThe following FFmpeg global options affect the configurations of the libopenh264 encoder.\n\nb   Set the bitrate (as a number of bits per second).\n\ng   Set the GOP size.\n"
                    },
                    {
                        "name": "maxrate",
                        "content": "Set the max bitrate (as a number of bits per second).\n"
                    },
                    {
                        "name": "flags +global_header",
                        "content": "Set global header in the bitstream.\n"
                    },
                    {
                        "name": "slices",
                        "content": "Set the number of slices, used in parallelized encoding. Default value is 0. This is only\nused when slicemode is set to fixed.\n"
                    },
                    {
                        "name": "loopfilter",
                        "content": "Enable loop filter, if set to 1 (automatically enabled). To disable set a value of 0.\n"
                    },
                    {
                        "name": "profile",
                        "content": "Set  profile  restrictions.  If  set  to  the  value  of  main  enable  CABAC  (set   the\n\"SEncParamExt.iEntropyCodingModeFlag\" flag to 1).\n"
                    },
                    {
                        "name": "max_nal_size",
                        "content": "Set maximum NAL size in bytes.\n"
                    },
                    {
                        "name": "allow_skip_frames",
                        "content": "Allow skipping frames to hit the target bitrate if set to 1.\n"
                    },
                    {
                        "name": "libtheora",
                        "content": "libtheora Theora encoder wrapper.\n\nRequires  the presence of the libtheora headers and library during configuration. You need to\nexplicitly configure the build with \"--enable-libtheora\".\n\nFor more information about the libtheora project see <http://www.theora.org/>.\n\nOptions\n\nThe following global options are mapped  to  internal  libtheora  options  which  affect  the\nquality and the bitrate of the encoded stream.\n\nb   Set  the  video bitrate in bit/s for CBR (Constant Bit Rate) mode.  In case VBR (Variable\nBit Rate) mode is enabled this option is ignored.\n"
                    },
                    {
                        "name": "flags",
                        "content": "Used to enable constant quality mode (VBR) encoding  through  the  qscale  flag,  and  to\nenable the \"pass1\" and \"pass2\" modes.\n\ng   Set the GOP size.\n"
                    },
                    {
                        "name": "global_quality",
                        "content": "Set the global quality as an integer in lambda units.\n\nOnly relevant when VBR mode is enabled with \"flags +qscale\". The value is converted to QP\nunits  by  dividing  it  by  \"FFQP2LAMBDA\",  clipped  in  the  [0  - 10] range, and then\nmultiplied by 6.3 to get a value in the native libtheora range  [0-63].  A  higher  value\ncorresponds to a higher quality.\n\nq   Enable  VBR  mode  when  set to a non-negative value, and set constant quality value as a\ndouble floating point value in QP units.\n\nThe value is clipped in the [0-10] range, and then multiplied by 6.3 to get  a  value  in\nthe native libtheora range [0-63].\n\nThis  option  is  valid  only  using  the ffmpeg command-line tool. For library interface\nusers, use globalquality.\n\nExamples\n\n•   Set maximum constant quality (VBR) encoding with ffmpeg:\n\nffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg\n\n•   Use ffmpeg to convert a CBR 1000 kbps Theora video stream:\n\nffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg\n"
                    },
                    {
                        "name": "libvpx",
                        "content": "VP8/VP9 format supported through libvpx.\n\nRequires the presence of the libvpx headers and library during configuration.   You  need  to\nexplicitly configure the build with \"--enable-libvpx\".\n\nOptions\n\nThe  following  options are supported by the libvpx wrapper. The vpxenc-equivalent options or\nvalues are listed in parentheses for easy migration.\n\nTo reduce the duplication  of  documentation,  only  the  private  options  and  some  others\nrequiring  special  attention  are documented here. For the documentation of the undocumented\ngeneric options, see the Codec Options chapter.\n\nTo get more documentation of the libvpx options, invoke the command ffmpeg -h encoder=libvpx,\nffmpeg -h encoder=libvpx-vp9 or vpxenc --help. Further information is available in the libvpx\nAPI documentation.\n\nb (target-bitrate)\nSet bitrate in bits/s. Note that FFmpeg's b option is expressed in bits/s, while vpxenc's\ntarget-bitrate is in kilobits/s.\n\ng (kf-max-dist)\nkeyintmin (kf-min-dist)\nqmin (min-q)\nMinimum (Best Quality) Quantizer.\n\nqmax (max-q)\nMaximum (Worst Quality) Quantizer.  Can be changed per-frame.\n\nbufsize (buf-sz, buf-optimal-sz)\nSet  ratecontrol  buffer  size  (in  bits).  Note  vpxenc's  options  are  specified   in\nmilliseconds, the libvpx wrapper converts this value as follows: \"buf-sz = bufsize * 1000\n/ bitrate\", \"buf-optimal-sz = bufsize * 1000 / bitrate * 5 / 6\".\n\nrcinitoccupancy (buf-initial-sz)\nSet number of bits which should be loaded into the rc buffer before decoding starts. Note\nvpxenc's  option  is specified in milliseconds, the libvpx wrapper converts this value as\nfollows: \"rcinitoccupancy * 1000 / bitrate\".\n"
                    },
                    {
                        "name": "undershoot-pct",
                        "content": "Set datarate undershoot (min) percentage of the target bitrate.\n"
                    },
                    {
                        "name": "overshoot-pct",
                        "content": "Set datarate overshoot (max) percentage of the target bitrate.\n\nskipthreshold (drop-frame)\nqcomp (bias-pct)\nmaxrate (maxsection-pct)\nSet GOP max bitrate in bits/s. Note vpxenc's option is specified as a percentage  of  the\ntarget  bitrate,  the  libvpx  wrapper  converts this value as follows: \"(maxrate * 100 /\nbitrate)\".\n\nminrate (minsection-pct)\nSet GOP min bitrate in bits/s. Note vpxenc's option is specified as a percentage  of  the\ntarget  bitrate,  the  libvpx  wrapper  converts this value as follows: \"(minrate * 100 /\nbitrate)\".\n\nminrate, maxrate, b end-usage=cbr\n\"(minrate == maxrate == bitrate)\".\n\ncrf (end-usage=cq, cq-level)\ntune (tune)\npsnr (psnr)\nssim (ssim)\nquality, deadline (deadline)\nbest\nUse best quality deadline. Poorly named and quite slow, this option should be avoided\nas it may give worse quality output than good.\n\ngood\nUse good quality deadline. This is a good trade-off between speed  and  quality  when\nused with the cpu-used option.\n\nrealtime\nUse realtime quality deadline.\n\nspeed, cpu-used (cpu-used)\nSet  quality/speed  ratio  modifier.  Higher  values  speed  up the encode at the cost of\nquality.\n\nnr (noise-sensitivity)"
                    },
                    {
                        "name": "static-thresh",
                        "content": "Set a change threshold on blocks below which they will be skipped by the encoder.\n\nslices (token-parts)\nNote that FFmpeg's slices option gives the total number  of  partitions,  while  vpxenc's\ntoken-parts is given as log2(partitions).\n"
                    },
                    {
                        "name": "max-intra-rate",
                        "content": "Set  maximum  I-frame  bitrate  as a percentage of the target bitrate. A value of 0 means\nunlimited.\n"
                    },
                    {
                        "name": "force_key_frames",
                        "content": "\"VPXEFLAGFORCEKF\"\n"
                    },
                    {
                        "name": "Alternate reference frame related",
                        "content": "auto-alt-ref\nEnable use of alternate reference frames (2-pass only).  Values greater than 1 enable\nmulti-layer alternate reference frames (VP9 only).\n\narnr-maxframes\nSet altref noise reduction max frame count.\n\narnr-type\nSet altref noise reduction filter type: backward, forward, centered.\n\narnr-strength\nSet altref noise reduction filter strength.\n\nrc-lookahead, lag-in-frames (lag-in-frames)\nSet number of frames to look ahead for frametype and ratecontrol.\n\nmin-gf-interval\nSet minimum golden/alternate reference frame interval (VP9 only).\n"
                    },
                    {
                        "name": "error-resilient",
                        "content": "Enable error resiliency features.\n\nsharpness integer\nIncrease sharpness at the expense of lower PSNR.  The valid range is [0, 7].\n"
                    },
                    {
                        "name": "ts-parameters",
                        "content": "Sets the temporal scalability configuration using a :-separated list of key=value  pairs.\nFor example, to specify temporal scalability parameters with \"ffmpeg\":\n\nffmpeg -i INPUT -c:v libvpx -ts-parameters tsnumberlayers=3:\\\ntstargetbitrate=250,500,1000:tsratedecimator=4,2,1:\\\ntsperiodicity=4:tslayerid=0,2,1,2:tslayeringmode=3 OUTPUT\n\nBelow  is  a  brief  explanation  of  each  of  the  parameters,  please refer to \"struct\nvpxcodecenccfg\" in \"vpx/vpxencoder.h\" for more details.\n\ntsnumberlayers\nNumber of temporal coding layers.\n\ntstargetbitrate\nTarget bitrate for each temporal layer (in kbps).  (bitrate should  be  inclusive  of\nthe lower temporal layer).\n\ntsratedecimator\nFrame rate decimation factor for each temporal layer.\n\ntsperiodicity\nLength of the sequence defining frame temporal layer membership.\n\ntslayerid\nTemplate defining the membership of frames to temporal layers.\n\ntslayeringmode\n(optional)  Selecting  the  temporal  structure  from  a  set of pre-defined temporal\nlayering modes.  Currently supports the following options.\n\n0   No temporal layering flags are provided internally, relies on flags being  passed\nin using \"metadata\" field in \"AVFrame\" with following keys.\n\nvp8-flags\nSets the flags passed into the encoder to indicate the referencing scheme for\nthe    current    frame.     Refer    to   function   \"vpxcodecencode\"   in\n\"vpx/vpxencoder.h\" for more details.\n\ntemporalid\nExplicitly sets the temporal id of the current frame to encode.\n\n2   Two temporal layers. 0-1...\n\n3   Three temporal layers. 0-2-1-2...; with single reference frame.\n\n4   Same as option \"3\", except there is a dependency between the two temporal layer 2\nframes within the temporal period.\n"
                    },
                    {
                        "name": "VP9-specific options",
                        "content": "lossless\nEnable lossless mode.\n\ntile-columns\nSet number of tile columns to use. Note this  is  given  as  log2(tilecolumns).  For\nexample, 8 tile columns would be requested by setting the tile-columns option to 3.\n\ntile-rows\nSet  number of tile rows to use. Note this is given as log2(tilerows).  For example,\n4 tile rows would be requested by setting the tile-rows option to 2.\n\nframe-parallel\nEnable frame parallel decodability features.\n\naq-mode\nSet adaptive quantization mode (0: off  (default),  1:  variance  2:  complexity,  3:\ncyclic refresh, 4: equator360).\n\ncolorspace color-space\nSet   input   color  space.  The  VP9  bitstream  supports  signaling  the  following\ncolorspaces:\n\nrgb \u001b[4msRGB\nbt709 \u001b[4mbt709\nunspecified \u001b[4munknown\nbt470bg \u001b[4mbt601\nsmpte170m \u001b[4msmpte170\nsmpte240m \u001b[4msmpte240\nbt2020ncl \u001b[4mbt2020\nrow-mt boolean\nEnable row based multi-threading.\n\ntune-content\nSet content type: default (0), screen (1), film (2).\n\ncorpus-complexity\nCorpus VBR mode is a variant  of  standard  VBR  where  the  complexity  distribution\nmidpoint is passed in rather than calculated for a specific clip or chunk.\n\nThe valid range is [0, 10000]. 0 (default) uses standard VBR.\n\nenable-tpl boolean\nEnable temporal dependency model.\n\nref-frame-config\nUsing  per-frame  metadata, set members of the structure \"vpxsvcrefframeconfigt\"\nin \"vpx/vp8cx.h\" to fine-control referencing schemes  and  frame  buffer  management.\nUse a :-separated list of key=value pairs.  For example,\n\navdictset(&avframe->metadata, \"ref-frame-config\", \\\n\"rfcupdatebufferslot=7:rfclstfbidx=0:rfcgldfbidx=1:rfcaltfbidx=2:rfcreferencelast=0:rfcreferencegolden=0:rfcreferencealtref=0\");\n\nrfcupdatebufferslot\nIndicates the buffer slot number to update\n\nrfcupdatelast\nIndicates whether to update the LAST frame\n\nrfcupdategolden\nIndicates whether to update GOLDEN frame\n\nrfcupdatealtref\nIndicates whether to update ALTREF frame\n\nrfclstfbidx\nLAST frame buffer index\n\nrfcgldfbidx\nGOLDEN frame buffer index\n\nrfcaltfbidx\nALTREF frame buffer index\n\nrfcreferencelast\nIndicates whether to reference LAST frame\n\nrfcreferencegolden\nIndicates whether to reference GOLDEN frame\n\nrfcreferencealtref\nIndicates whether to reference ALTREF frame\n\nrfcreferenceduration\nIndicates frame duration\n\nFor more information about libvpx see: <http://www.webmproject.org/>\n"
                    },
                    {
                        "name": "libwebp",
                        "content": "libwebp WebP Image encoder wrapper\n\nlibwebp  is  Google's  official  encoder  for  WebP  images. It can encode in either lossy or\nlossless mode. Lossy images are essentially a wrapper around a VP8 frame. Lossless images are\na separate codec developed by Google.\n\nPixel Format\n\nCurrently, libwebp only supports YUV420 for lossy and RGB for lossless due to limitations  of\nthe  format  and libwebp. Alpha is supported for either mode.  Because of API limitations, if\nRGB is passed in when encoding lossy or YUV is passed in for  encoding  lossless,  the  pixel\nformat will automatically be converted using functions from libwebp. This is not ideal and is\ndone only for convenience.\n\nOptions\n"
                    },
                    {
                        "name": "-lossless _",
                        "content": "Enables/Disables use of lossless mode. Default is 0.\n"
                    },
                    {
                        "name": "-compression_level _",
                        "content": "For  lossy,  this  is  a  quality/speed tradeoff. Higher values give better quality for a\ngiven size at the cost of increased encoding time. For lossless,  this  is  a  size/speed\ntradeoff.  Higher  values  give smaller size at the cost of increased encoding time. More\nspecifically, it controls the number of extra algorithms and compression tools used,  and\nvaries  the  combination  of  these tools. This maps to the method option in libwebp. The\nvalid range is 0 to 6.  Default is 4.\n"
                    },
                    {
                        "name": "-quality _",
                        "content": "For lossy encoding, this controls image quality. For lossless encoding, this controls the\neffort and time spent in compression.  Range is 0 to 100. Default is 75.\n"
                    },
                    {
                        "name": "-preset _",
                        "content": "Configuration preset. This does some automatic settings based on the general type of  the\nimage.\n\nnone\nDo not use a preset.\n\ndefault\nUse the encoder default.\n\npicture\nDigital picture, like portrait, inner shot\n\nphoto\nOutdoor photograph, with natural lighting\n\ndrawing\nHand or line drawing, with high-contrast details\n\nicon\nSmall-sized colorful images\n\ntext\nText-like\n"
                    },
                    {
                        "name": "libx264, libx264rgb",
                        "content": "x264 H.264/MPEG-4 AVC encoder wrapper.\n\nThis  encoder  requires the presence of the libx264 headers and library during configuration.\nYou need to explicitly configure the build with \"--enable-libx264\".\n\nlibx264 supports an impressive number of features, including 8x8  and  4x4  adaptive  spatial\ntransform,  adaptive  B-frame  placement,  CAVLC/CABAC  entropy  coding, interlacing (MBAFF),\nlossless mode, psy optimizations for detail retention (adaptive  quantization,  psy-RD,  psy-\ntrellis).\n\nMany  libx264 encoder options are mapped to FFmpeg global codec options, while unique encoder\noptions are provided through private  options.  Additionally  the  x264opts  and  x264-params\nprivate  options  allows  one  to  pass a list of key=value tuples as accepted by the libx264\n\"x264paramparse\" function.\n\nThe x264 project website is at <http://www.videolan.org/developers/x264.html>.\n\nThe libx264rgb encoder is the same as libx264, except it accepts packed RGB pixel formats  as\ninput instead of YUV.\n\nSupported Pixel Formats\n\nx264  supports  8-  to  10-bit  color  spaces.  The  exact  bit depth is controlled at x264's\nconfigure time.\n\nOptions\n\nThe following options are supported by the libx264 wrapper. The  x264-equivalent  options  or\nvalues are listed in parentheses for easy migration.\n\nTo  reduce  the  duplication  of  documentation,  only  the  private  options and some others\nrequiring special attention are documented here. For the documentation  of  the  undocumented\ngeneric options, see the Codec Options chapter.\n\nTo get a more accurate and extensive documentation of the libx264 options, invoke the command\nx264 --fullhelp or consult the libx264 documentation.\n\nb (bitrate)\nSet  bitrate  in bits/s. Note that FFmpeg's b option is expressed in bits/s, while x264's\nbitrate is in kilobits/s.\n\nbf (bframes)\ng (keyint)\nqmin (qpmin)\nMinimum quantizer scale.\n\nqmax (qpmax)\nMaximum quantizer scale.\n\nqdiff (qpstep)\nMaximum difference between quantizer scales.\n\nqblur (qblur)\nQuantizer curve blur\n\nqcomp (qcomp)\nQuantizer curve compression factor\n\nrefs (ref)\nNumber of reference frames each P-frame can use. The range is from 0-16.\n\nlevel (level)\nSet the \"x264paramt.ilevelidc\" value in case the value is  positive,  it  is  ignored\notherwise.\n\nThis   value   can   be   set  using  the  \"AVCodecContext\"  API  (e.g.  by  setting  the\n\"AVCodecContext\"  value  directly),  and  is  specified  as  an  integer  mapped   on   a\ncorresponding  level  (e.g. the value 31 maps to H.264 level IDC \"3.1\", as defined in the\n\"x264levels\" table). It is ignored when set to a non positive value.\n\nAlternatively  it  can  be  set  as  a  private  option,  overriding  the  value  set  in\n\"AVCodecContext\",  and  in  this case must be specified as the level IDC identifier (e.g.\n\"3.1\"), as defined by H.264 Annex A.\n\nscthreshold (scenecut)\nSets the threshold for the scene change detection.\n\ntrellis (trellis)\nPerforms Trellis quantization to increase efficiency. Enabled by default.\n\nnr  (nr)\nmerange (merange)\nMaximum range of the motion search in pixels.\n\nmemethod (me)\nSet motion estimation method. Possible values in the decreasing order of speed:\n\ndia (dia)\nepzs (dia)\nDiamond search with radius 1 (fastest). epzs is an alias for dia.\n\nhex (hex)\nHexagonal search with radius 2.\n\numh (umh)\nUneven multi-hexagon search.\n\nesa (esa)\nExhaustive search.\n\ntesa (tesa)\nHadamard exhaustive search (slowest).\n"
                    },
                    {
                        "name": "forced-idr",
                        "content": "Normally, when forcing a I-frame type, the encoder can select any type of  I-frame.  This\noption forces it to choose an IDR-frame.\n\nsubq (subme)\nSub-pixel motion estimation method.\n\nbstrategy (b-adapt)\nAdaptive B-frame placement decision algorithm. Use only on first-pass.\n\nkeyintmin (min-keyint)\nMinimum GOP size.\n"
                    },
                    {
                        "name": "coder",
                        "content": "Set entropy encoder. Possible values:\n\nac  Enable CABAC.\n\nvlc Enable  CAVLC  and  disable  CABAC. It generates the same effect as x264's --no-cabac\noption.\n\ncmp Set full pixel motion estimation comparison algorithm. Possible values:\n\nchroma\nEnable chroma in motion estimation.\n\nsad Ignore  chroma  in  motion  estimation.  It  generates  the  same  effect  as  x264's\n--no-chroma-me option.\n\nthreads (threads)\nNumber of encoding threads.\n"
                    },
                    {
                        "name": "thread_type",
                        "content": "Set multithreading technique. Possible values:\n\nslice\nSlice-based  multithreading.  It generates the same effect as x264's --sliced-threads\noption.\n\nframe\nFrame-based multithreading.\n"
                    },
                    {
                        "name": "flags",
                        "content": "Set encoding flags. It can be used to disable closed GOP and enable open GOP  by  setting\nit to \"-cgop\". The result is similar to the behavior of x264's --open-gop option.\n\nrcinitoccupancy (vbv-init)\npreset (preset)\nSet the encoding preset.\n\ntune (tune)\nSet tuning of the encoding params.\n\nprofile (profile)\nSet profile restrictions.\n"
                    },
                    {
                        "name": "fastfirstpass",
                        "content": "Enable  fast  settings when encoding first pass, when set to 1. When set to 0, it has the\nsame effect of x264's --slow-firstpass option.\n\ncrf (crf)\nSet the quality for constant quality mode.\n\ncrfmax (crf-max)\nIn CRF mode, prevents VBV from lowering quality beyond this point.\n\nqp (qp)\nSet constant quantization rate control method parameter.\n\naq-mode (aq-mode)\nSet AQ method. Possible values:\n\nnone (0)\nDisabled.\n\nvariance (1)\nVariance AQ (complexity mask).\n\nautovariance (2)\nAuto-variance AQ (experimental).\n\naq-strength (aq-strength)\nSet AQ strength, reduce blocking and blurring in flat and textured areas.\n\npsy Use psychovisual optimizations when set to 1. When set to 0, it has the  same  effect  as\nx264's --no-psy option.\n\npsy-rd  (psy-rd)\nSet strength of psychovisual optimization, in psy-rd:psy-trellis format.\n\nrc-lookahead (rc-lookahead)\nSet number of frames to look ahead for frametype and ratecontrol.\n"
                    },
                    {
                        "name": "weightb",
                        "content": "Enable  weighted  prediction  for  B-frames when set to 1. When set to 0, it has the same\neffect as x264's --no-weightb option.\n\nweightp (weightp)\nSet weighted prediction method for P-frames. Possible values:\n\nnone (0)\nDisabled\n\nsimple (1)\nEnable only weighted refs\n\nsmart (2)\nEnable both weighted refs and duplicates\n\nssim (ssim)\nEnable calculation and printing SSIM stats after the encoding.\n\nintra-refresh (intra-refresh)\nEnable the use of Periodic Intra Refresh instead of IDR frames when set to 1.\n\navcintra-class (class)\nConfigure the encoder to generate AVC-Intra.  Valid values are 50,100 and 200\n\nbluray-compat (bluray-compat)\nConfigure the encoder to be compatible with the bluray standard.  It is a  shorthand  for\nsetting \"bluray-compat=1 force-cfr=1\".\n\nb-bias (b-bias)\nSet the influence on how often B-frames are used.\n\nb-pyramid (b-pyramid)\nSet method for keeping of some B-frames as references. Possible values:\n\nnone (none)\nDisabled.\n\nstrict (strict)\nStrictly hierarchical pyramid.\n\nnormal (normal)\nNon-strict (not Blu-ray compatible).\n"
                    },
                    {
                        "name": "mixed-refs",
                        "content": "Enable the use of one reference per partition, as opposed to one reference per macroblock\nwhen set to 1. When set to 0, it has the same effect as x264's --no-mixed-refs option.\n"
                    },
                    {
                        "name": "8x8dct",
                        "content": "Enable adaptive spatial transform (high profile 8x8 transform) when set to 1. When set to\n0, it has the same effect as x264's --no-8x8dct option.\n"
                    },
                    {
                        "name": "fast-pskip",
                        "content": "Enable  early  SKIP  detection  on P-frames when set to 1. When set to 0, it has the same\neffect as x264's --no-fast-pskip option.\n\naud (aud)\nEnable use of access unit delimiters when set to 1.\n"
                    },
                    {
                        "name": "mbtree",
                        "content": "Enable use macroblock tree ratecontrol when set to 1. When set to  0,  it  has  the  same\neffect as x264's --no-mbtree option.\n\ndeblock (deblock)\nSet loop filter parameters, in alpha:beta form.\n\ncplxblur (cplxblur)\nSet fluctuations reduction in QP (before curve compression).\n\npartitions (partitions)\nSet partitions to consider as a comma-separated list of. Possible values in the list:\n\np8x8\n8x8 P-frame partition.\n\np4x4\n4x4 P-frame partition.\n\nb8x8\n4x4 B-frame partition.\n\ni8x8\n8x8 I-frame partition.\n\ni4x4\n4x4  I-frame  partition.   (Enabling  p4x4 requires p8x8 to be enabled. Enabling i8x8\nrequires adaptive spatial transform (8x8dct option) to be enabled.)\n\nnone (none)\nDo not consider any partitions.\n\nall (all)\nConsider every partition.\n\ndirect-pred (direct)\nSet direct MV prediction mode. Possible values:\n\nnone (none)\nDisable MV prediction.\n\nspatial (spatial)\nEnable spatial predicting.\n\ntemporal (temporal)\nEnable temporal predicting.\n\nauto (auto)\nAutomatically decided.\n\nslice-max-size (slice-max-size)\nSet the limit of the size of each slice in bytes. If not specified but RTP  payload  size\n(ps) is specified, that is used.\n\nstats (stats)\nSet the file name for multi-pass stats.\n\nnal-hrd (nal-hrd)\nSet signal HRD information (requires vbv-bufsize to be set).  Possible values:\n\nnone (none)\nDisable HRD information signaling.\n\nvbr (vbr)\nVariable bit rate.\n\ncbr (cbr)\nConstant bit rate (not allowed in MP4 container).\n"
                    },
                    {
                        "name": "x264opts (N.A.)",
                        "content": "Set any x264 option, see x264 --fullhelp for a list.\n\nArgument  is  a  list of key=value couples separated by \":\". In filter and psy-rd options\nthat use \":\" as a separator themselves, use \",\" instead. They accept  it  as  well  since\nlong ago but this is kept undocumented for some reason.\n\nFor example to specify libx264 encoding options with ffmpeg:\n\nffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv\n\na53cc boolean\nImport  closed  captions  (which  must  be ATSC compatible format) into output.  Only the\nmpeg2 and h264 decoders provide these. Default is 1 (on).\n\nudusei boolean\nImport user data unregistered SEI if available into output. Default is 0 (off).\n\nmbinfo boolean\nSet mbinfo data through AVFrameSideData, only useful when used from the API. Default  is\n0 (off).\n"
                    },
                    {
                        "name": "x264-params (N.A.)",
                        "content": "Override the x264 configuration using a :-separated list of key=value parameters.\n\nThis option is functionally the same as the x264opts, but is duplicated for compatibility\nwith the Libav fork.\n\nFor example to specify libx264 encoding options with ffmpeg:\n\nffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\\\ncabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\\\nno-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT\n\nEncoding  ffpresets  for  common  usages  are  provided  so they can be used with the general\npresets system (e.g. passing the pre option).\n"
                    },
                    {
                        "name": "libx265",
                        "content": "x265 H.265/HEVC encoder wrapper.\n\nThis encoder requires the presence of the libx265 headers and library  during  configuration.\nYou need to explicitly configure the build with --enable-libx265.\n\nOptions\n\nb   Sets target video bitrate.\n\nbf\ng   Set the GOP size.\n"
                    },
                    {
                        "name": "keyint_min",
                        "content": "Minimum GOP size.\n"
                    },
                    {
                        "name": "refs",
                        "content": "Number of reference frames each P-frame can use. The range is from 1-16.\n"
                    },
                    {
                        "name": "preset",
                        "content": "Set the x265 preset.\n"
                    },
                    {
                        "name": "tune",
                        "content": "Set the x265 tune parameter.\n"
                    },
                    {
                        "name": "profile",
                        "content": "Set profile restrictions.\n\ncrf Set the quality for constant quality mode.\n\nqp  Set constant quantization rate control method parameter.\n"
                    },
                    {
                        "name": "qmin",
                        "content": "Minimum quantizer scale.\n"
                    },
                    {
                        "name": "qmax",
                        "content": "Maximum quantizer scale.\n"
                    },
                    {
                        "name": "qdiff",
                        "content": "Maximum difference between quantizer scales.\n"
                    },
                    {
                        "name": "qblur",
                        "content": "Quantizer curve blur\n"
                    },
                    {
                        "name": "qcomp",
                        "content": "Quantizer curve compression factor\n"
                    },
                    {
                        "name": "i_qfactor",
                        "content": ""
                    },
                    {
                        "name": "b_qfactor",
                        "content": ""
                    },
                    {
                        "name": "forced-idr",
                        "content": "Normally,  when  forcing a I-frame type, the encoder can select any type of I-frame. This\noption forces it to choose an IDR-frame.\n\nudusei boolean\nImport user data unregistered SEI if available into output. Default is 0 (off).\n"
                    },
                    {
                        "name": "x265-params",
                        "content": "Set x265 options using a list of key=value couples separated by \":\". See x265 --help  for\na list of options.\n\nFor example to specify libx265 encoding options with -x265-params:\n\nffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4\n"
                    },
                    {
                        "name": "libxavs2",
                        "content": "xavs2 AVS2-P2/IEEE1857.4 encoder wrapper.\n\nThis  encoder requires the presence of the libxavs2 headers and library during configuration.\nYou need to explicitly configure the build with --enable-libxavs2.\n\nThe following standard libavcodec options are used:\n\n•   b / bitrate\n\n•   g / gopsize\n\n•   bf / maxbframes\n\nThe encoder also has its own specific options:\n\nOptions\n"
                    },
                    {
                        "name": "lcu_row_threads",
                        "content": "Set the number of parallel threads for rows from 1 to 8 (default 5).\n"
                    },
                    {
                        "name": "initial_qp",
                        "content": "Set the xavs2 quantization parameter from 1 to 63 (default 34). This is used to  set  the\ninitial qp for the first frame.\n\nqp  Set  the  xavs2 quantization parameter from 1 to 63 (default 34). This is used to set the\nqp value under constant-QP mode.\n"
                    },
                    {
                        "name": "max_qp",
                        "content": "Set the max qp for rate control from 1 to 63 (default 55).\n"
                    },
                    {
                        "name": "min_qp",
                        "content": "Set the min qp for rate control from 1 to 63 (default 20).\n"
                    },
                    {
                        "name": "speed_level",
                        "content": "Set the Speed level from 0 to 9 (default 0). Higher is better but slower.\n"
                    },
                    {
                        "name": "log_level",
                        "content": "Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1: warning, 2:  info,  3:\ndebug.\n"
                    },
                    {
                        "name": "xavs2-params",
                        "content": "Set xavs2 options using a list of key=value couples separated by \":\".\n\nFor example to specify libxavs2 encoding options with -xavs2-params:\n\nffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2\n"
                    },
                    {
                        "name": "libxvid",
                        "content": "Xvid MPEG-4 Part 2 encoder wrapper.\n\nThis   encoder   requires  the  presence  of  the  libxvidcore  headers  and  library  during\nconfiguration.  You  need  to  explicitly  configure   the   build   with   \"--enable-libxvid\n--enable-gpl\".\n\nThe  native  \"mpeg4\"  encoder  supports the MPEG-4 Part 2 format, so users can encode to this\nformat without this library.\n\nOptions\n\nThe following options are supported by the libxvid wrapper. Some of the following options are\nlisted but are not documented, and correspond to shared codec options. See the Codec  Options\nchapter for their documentation. The other shared options which are not listed have no effect\nfor the libxvid encoder.\n\nb\ng"
                    },
                    {
                        "name": "qmin",
                        "content": ""
                    },
                    {
                        "name": "qmax",
                        "content": ""
                    },
                    {
                        "name": "mpeg_quant",
                        "content": ""
                    },
                    {
                        "name": "threads",
                        "content": "bf"
                    },
                    {
                        "name": "b_qfactor",
                        "content": ""
                    },
                    {
                        "name": "b_qoffset",
                        "content": ""
                    },
                    {
                        "name": "flags",
                        "content": "Set specific encoding flags. Possible values:\n\nmv4 Use four motion vector by macroblock.\n\naic Enable high quality AC prediction.\n\ngray\nOnly encode grayscale.\n\ngmc Enable the use of global motion compensation (GMC).\n\nqpel\nEnable quarter-pixel motion compensation.\n\ncgop\nEnable closed GOP.\n\nglobalheader\nPlace global headers in extradata instead of every keyframe.\n"
                    },
                    {
                        "name": "trellis",
                        "content": ""
                    },
                    {
                        "name": "me_quality",
                        "content": "Set  motion  estimation  quality  level. Possible values in decreasing order of speed and\nincreasing order of quality:\n\n0   Use no motion estimation (default).\n\n1, 2\nEnable advanced diamond zonal search for 16x16 blocks and half-pixel  refinement  for\n16x16 blocks.\n\n3, 4\nEnable  all of the things described above, plus advanced diamond zonal search for 8x8\nblocks and half-pixel refinement for 8x8 blocks, also  enable  motion  estimation  on\nchroma planes for P and B-frames.\n\n5, 6\nEnable all of the things described above, plus extended 16x16 and 8x8 blocks search.\n\nmbd Set macroblock decision algorithm. Possible values in the increasing order of quality:\n\nsimple\nUse macroblock comparing function algorithm (default).\n\nbits\nEnable  rate  distortion-based  half  pixel  and  quarter  pixel refinement for 16x16\nblocks.\n\nrd  Enable all of the things described above, plus rate distortion-based half  pixel  and\nquarter  pixel  refinement  for  8x8  blocks,  and rate distortion-based search using\nsquare pattern.\n"
                    },
                    {
                        "name": "lumi_aq",
                        "content": "Enable lumi masking adaptive quantization when set to 1. Default is 0 (disabled).\n"
                    },
                    {
                        "name": "variance_aq",
                        "content": "Enable variance adaptive quantization when set to 1. Default is 0 (disabled).\n\nWhen combined with lumiaq, the resulting quality will not be better than any of the  two\nspecified  individually.  In  other words, the resulting quality will be the worse one of\nthe two effects.\n"
                    },
                    {
                        "name": "ssim",
                        "content": "Set structural similarity (SSIM) displaying method. Possible values:\n\noff Disable displaying of SSIM information.\n\navg Output average SSIM at the end of encoding to  stdout.  The  format  of  showing  the\naverage SSIM is:\n\nAverage SSIM: %f\n\nFor  users  who  are not familiar with C, %f means a float number, or a decimal (e.g.\n0.939232).\n\nframe\nOutput both per-frame SSIM data during encoding  and  average  SSIM  at  the  end  of\nencoding to stdout. The format of per-frame information is:\n\nSSIM: avg: %1.3f min: %1.3f max: %1.3f\n\nFor users who are not familiar with C, %1.3f means a float number rounded to 3 digits\nafter the dot (e.g. 0.932).\n"
                    },
                    {
                        "name": "ssim_acc",
                        "content": "Set  SSIM accuracy. Valid options are integers within the range of 0-4, while 0 gives the\nmost accurate result and 4 computes the fastest.\n"
                    },
                    {
                        "name": "MediaFoundation",
                        "content": "This provides wrappers to encoders (both audio and video) in the  MediaFoundation  framework.\nIt  can  access  both SW and HW encoders.  Video encoders can take input in either of nv12 or\nyuv420p form (some encoders support both, some support only either - in practice, nv12 is the\nsafer choice, especially among HW encoders).\n"
                    },
                    {
                        "name": "Microsoft RLE",
                        "content": "Microsoft RLE aka MSRLE encoder.  Only 8-bit palette mode supported.  Compatible with Windows\n3.1 and Windows 95.\n\nOptions\n\ng integer\nKeyframe interval.  A keyframe is inserted at least every \"-g\" frames, sometimes sooner.\n"
                    },
                    {
                        "name": "mpeg2",
                        "content": "MPEG-2 video encoder.\n\nOptions\n"
                    },
                    {
                        "name": "profile",
                        "content": "Select the mpeg2 profile to encode:\n\n422\nhigh\nss  Spatially Scalable\n\nsnr SNR Scalable\n\nmain\nsimple"
                    },
                    {
                        "name": "level",
                        "content": "Select the mpeg2 level to encode:\n\nhigh\nhigh1440\nmain\nlow\nseqdispext integer\nSpecifies if the encoder should write a sequencedisplayextension to the output.\n\n-1\nauto\nDecide automatically to write it or not (this is the default) by checking if the data\nto be written is different from the default or unspecified values.\n\n0\nnever\nNever write it.\n\n1\nalways\nAlways write it.\n\nvideoformat integer\nSpecifies the videoformat written into the sequence  display  extension  indicating  the\nsource  of  the  video pictures. The default is unspecified, can be component, pal, ntsc,\nsecam or mac.  For maximum compatibility, use component.\n\na53cc boolean\nImport closed captions (which must be ATSC compatible format) into output.  Default is  1\n(on).\n"
                    },
                    {
                        "name": "png",
                        "content": "PNG image encoder.\n\nPrivate options\n\ndpi integer\nSet physical density of pixels, in dots per inch, unset by default\n\ndpm integer\nSet physical density of pixels, in dots per meter, unset by default\n"
                    },
                    {
                        "name": "ProRes",
                        "content": "Apple ProRes encoder.\n\nFFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.  The used encoder can\nbe chosen with the \"-vcodec\" option.\n\nPrivate Options for prores-ks\n\nprofile integer\nSelect the ProRes profile to encode\n\nproxy\nlt\nstandard\nhq\n4444\n4444xq\nquantmat integer\nSelect quantization matrix.\n\nauto\ndefault\nproxy\nlt\nstandard\nhq\n\nIf  set  to auto, the matrix matching the profile will be picked.  If not set, the matrix\nproviding the highest quality, default, will be picked.\n\nbitspermb integer\nHow many bits to allot for coding one macroblock. Different profiles use between 200  and\n2400 bits per macroblock, the maximum is 8000.\n\nmbsperslice integer\nNumber of macroblocks in each slice (1-8); the default value (8) should be good in almost\nall situations.\n\nvendor string\nOverride  the  4-byte vendor ID.  A custom vendor ID like apl0 would claim the stream was\nproduced by the Apple encoder.\n\nalphabits integer\nSpecify number of bits for alpha component.  Possible values are 0, 8 and 16.  Use  0  to\ndisable alpha plane coding.\n\nSpeed considerations\n\nIn the default mode of operation the encoder has to honor frame constraints (i.e. not produce\nframes  with  size  bigger  than  requested)  while  still  making  output picture as good as\npossible.  A frame containing a lot of small details is harder to compress  and  the  encoder\nwould spend more time searching for appropriate quantizers for each slice.\n\nSetting a higher bitspermb limit will improve the speed.\n\nFor  the  fastest encoding speed set the qscale parameter (4 is the recommended value) and do\nnot set a size constraint.\n"
                    },
                    {
                        "name": "QSV Encoders",
                        "content": "The family of Intel QuickSync Video encoders (MPEG-2, H.264, HEVC, JPEG/MJPEG, VP9, AV1)\n\nRatecontrol Method\n\nThe ratecontrol method is selected as follows:\n\n•   When globalquality is specified, a quality-based mode is used.  Specifically this  means\neither\n\n-   CQP  -  constant quantizer scale, when the qscale codec flag is also set (the -qscale\nffmpeg option).\n\n-   LAICQ - intelligent constant quality with lookahead, when the lookahead  option  is\nalso set.\n\n-   ICQ  --  intelligent  constant  quality  otherwise. For the ICQ modes, global quality\nrange is 1 to 51, with 1 being the best quality.\n\n•   Otherwise, a bitrate-based mode is used. For all of those, you should  specify  at  least\nthe desired average bitrate with the b option.\n\n-   LA - VBR with lookahead, when the lookahead option is specified.\n\n-   VCM - video conferencing mode, when the vcm option is set.\n\n-   CBR - constant bitrate, when maxrate is specified and equal to the average bitrate.\n\n-   VBR  -  variable  bitrate,  when maxrate is specified, but is higher than the average\nbitrate.\n\n-   AVBR - average VBR mode, when  maxrate  is  not  specified,  both  avbraccuracy  and\navbrconvergence  are  set  to  non-zero. This mode is available for H264 and HEVC on\nWindows.\n\nNote that depending on your system, a different mode  than  the  one  you  specified  may  be\nselected  by  the  encoder.  Set  the  verbosity level to verbose or higher to see the actual\nsettings used by the QSV runtime.\n\nGlobal Options -> MSDK Options\n\nAdditional libavcodec global options are mapped to MSDK options as follows:\n\n•   g/gopsize -> GopPicSize\n\n•   bf/maxbframes+1 -> GopRefDist\n\n•   rcinitoccupancy/rcinitialbufferoccupancy -> InitialDelayInKB\n\n•   slices -> NumSlice\n\n•   refs -> NumRefFrame\n\n•   bstrategy/bframestrategy -> BRefType\n\n•   cgop/CLOSEDGOP codec flag -> GopOptFlag\n\n•   For the CQP mode, the iqfactor/iqoffset  and  bqfactor/bqoffset  set  the  difference\nbetween QPP and QPI, and QPP and QPB respectively.\n\n•   Setting  the  coder option to the value vlc will make the H.264 encoder use CAVLC instead\nof CABAC.\n\nCommon Options\n\nFollowing options are used by all qsv encoders.\n\nasyncdepth\nSpecifies how many asynchronous operations an application performs before the application\nexplicitly synchronizes the result. If zero, the value is not specified.\n\npreset\nThis option itemizes a range of choices from veryfast  (best  speed)  to  veryslow  (best\nquality).\n\nveryfast\nfaster\nfast\nmedium\nslow\nslower\nveryslow\nforcedidr\nForcing I frames as IDR frames.\n\nlowpower\nFor encoders set this flag to ON to reduce power consumption and GPU usage.\n\nRuntime Options\n\nFollowing options can be used durning qsv encoding.\n\nglobalquality\niquantfactor\niquantoffset\nbquantfactor\nbquantoffset\nSupported  in  h264qsv  and  hevcqsv.   Change  these  value  to  reset  qsv codec's qp\nconfiguration.\n\nmaxframesize\nSupported in h264qsv and hevcqsv.  Change this value to reset qsv codec's  MaxFrameSize\nconfiguration.\n\ngopsize\nChange this value to reset qsv codec's gop configuration.\n\nintreftype\nintrefcyclesize\nintrefqpdelta\nintrefcycledist\nSupported  in  h264qsv  and  hevcqsv.   Change  these  value to reset qsv codec's Intra\nRefresh configuration.\n\nqmax\nqmin\nmaxqpi\nminqpi\nmaxqpp\nminqpp\nmaxqpb\nminqpb\nSupported in h264qsv.  Change these value to reset qsv codec's max/min qp configuration.\n\nlowdelaybrc\nSupported in h264qsv, hevcqsv and av1qsv.  Change this  value  to  reset  qsv  codec's\nlowdelaybrc configuration.\n\nframerate\nChange this value to reset qsv codec's framerate configuration.\n\nbitrate\nrcbuffersize\nrcinitialbufferoccupancy\nrcmaxrate\nChange these value to reset qsv codec's bitrate control configuration.\n\npictimingsei\nSupported   in   h264qsv   and  hevcqsv.   Change  this  value  to  reset  qsv  codec's\npictimingsei configuration.\n\nH264 options\n\nThese options are used by h264qsv\n\nextbrc\nExtended bitrate control.\n\nrecoverypointsei\nSet this flag to insert the recovery point SEI message at the beginning  of  every  intra\nrefresh cycle.\n\nrdo Enable rate distortion optimization.\n\nmaxframesize\nMaximum encoded frame size in bytes.\n\nmaxframesizei\nMaximum  encoded  frame  size  for I frames in bytes. If this value is set as larger than\nzero, then for I frames the value set by maxframesize is ignored.\n\nmaxframesizep\nMaximum encoded frame size for P frames in bytes. If this value is  set  as  larger  than\nzero, then for P frames the value set by maxframesize is ignored.\n\nmaxslicesize\nMaximum encoded slice size in bytes.\n\nbitratelimit\nToggle  bitrate  limitations.   Modifies  bitrate  to  be in the range imposed by the QSV\nencoder. Setting this flag off may lead  to  violation  of  HRD  conformance.  Mind  that\nspecifying  bitrate below the QSV encoder range might significantly affect quality. If on\nthis option takes effect in non CQP modes: if bitrate is not in the range imposed by  the\nQSV encoder, it will be changed to be in the range.\n\nmbbrc\nSetting  this  flag  enables  macroblock  level  bitrate  control that generally improves\nsubjective visual quality. Enabling this flag may have negative impact on performance and\nobjective visual quality metric.\n\nlowdelaybrc\nSetting this flag turns on or off LowDelayBRC feautre in qsv plugin, which provides  more\naccurate  bitrate  control  to  minimize  the  variance of bitstream size frame by frame.\nValue: -1-default 0-off 1-on\n\nadaptivei\nThis flag controls insertion of I frames by the QSV encoder. Turn ON this flag  to  allow\nchanging of frame type from P and B to I.\n\nadaptiveb\nThis flag controls changing of frame type from B to P.\n\npstrategy\nEnable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to 0).\n\nbstrategy\nThis option controls usage of B frames as reference.\n\ndblkidc\nThis option disable deblocking. It has value in range 0~2.\n\ncavlc\nIf set, CAVLC is used; if unset, CABAC is used for encoding.\n\nvcm Video conferencing mode, please see ratecontrol method.\n\nidrinterval\nDistance (in I-frames) between IDR frames.\n\npictimingsei\nInsert picture timing SEI with picstructsyntax element.\n\nsingleseinalunit\nPut all the SEI messages into one NALU.\n\nmaxdecframebuffering\nMaximum number of frames buffered in the DPB.\n\nlookahead\nUse VBR algorithm with look ahead.\n\nlookaheaddepth\nDepth of look ahead in number frames.\n\nlookaheaddownsampling\nDownscaling factor for the frames saved for the lookahead analysis.\n\nunknown\nauto\noff\n2x\n4x\nintreftype\nSpecifies  intra  refresh  type.  The major goal of intra refresh is improvement of error\nresilience without significant impact on encoded bitstream size caused by I  frames.  The\nSDK  encoder  achieves  this  by encoding part of each frame in refresh cycle using intra\nMBs. none means no refresh. vertical means vertical refresh, by column of MBs. horizontal\nmeans horizontal refresh, by rows of  MBs.  slice  means  horizontal  refresh  by  slices\nwithout  overlapping.  In  case  of  slice, inrefcyclesize is ignored. To enable intra\nrefresh, B frame should be set to 0.\n\nintrefcyclesize\nSpecifies number of pictures within refresh cycle starting from 2. 0 and  1  are  invalid\nvalues.\n\nintrefqpdelta\nSpecifies  QP  difference for inserted intra MBs. This is signed value in [-51, 51] range\nif target encoding bit-depth for luma samples is 8 and this range is  [-63,  63]  for  10\nbit-depth or [-75, 75] for 12 bit-depth respectively.\n\nintrefcycledist\nDistance between the beginnings of the intra-refresh cycles in frames.\n\nprofile\nunknown\nbaseline\nmain\nhigh\na53cc\nUse A53 Closed Captions (if available).\n\naud Insert the Access Unit Delimiter NAL.\n\nmfmode\nMulti-Frame Mode.\n\noff\nauto\nrepeatpps\nRepeat pps for every frame.\n\nmaxqpi\nMaximum video quantizer scale for I frame.\n\nminqpi\nMinimum video quantizer scale for I frame.\n\nmaxqpp\nMaximum video quantizer scale for P frame.\n\nminqpp\nMinimum video quantizer scale for P frame.\n\nmaxqpb\nMaximum video quantizer scale for B frame.\n\nminqpb\nMinimum video quantizer scale for B frame.\n\nscenario\nProvides a hint to encoder about the scenario for the encoding session.\n\nunknown\ndisplayremoting\nvideoconference\narchive\nlivestreaming\ncameracapture\nvideosurveillance\ngamestreaming\nremotegaming\navbraccuracy\nAccuracy of the AVBR ratecontrol (unit of tenth of percent).\n\navbrconvergence\nConvergence of the AVBR ratecontrol (unit of 100 frames)\n\nThe  parameters  avbraccuracy  and avbrconvergence are for the average variable bitrate\ncontrol (AVBR) algorithm.  The  algorithm  focuses  on  overall  encoding  quality  while\nmeeting  the  specified bitrate, targetbitrate, within the accuracy range avbraccuracy,\nafter a avbrConvergence period. This method does not follow HRD and the instant  bitrate\nis not capped or padded.\n\nskipframe\nUse  per-frame metadata \"qsvskipframe\" to skip frame when encoding. This option defines\nthe usage of this metadata.\n\nnoskip\nFrame skipping is disabled.\n\ninsertdummy\nEncoder inserts into bitstream frame where all macroblocks are encoded as skipped.\n\ninsertnothing\nSimilar to insertdummy, but encoder inserts  nothing  into  bitstream.  The  skipped\nframes  are still used in brc. For example, gop still include skipped frames, and the\nframes after skipped frames will be larger in size.\n\nbrconly\nskipframe metadata indicates the number of missed frames before the current frame.\n\nHEVC Options\n\nThese options are used by hevcqsv\n\nextbrc\nExtended bitrate control.\n\nrecoverypointsei\nSet this flag to insert the recovery point SEI message at the beginning  of  every  intra\nrefresh cycle.\n\nrdo Enable rate distortion optimization.\n\nmaxframesize\nMaximum encoded frame size in bytes.\n\nmaxframesizei\nMaximum  encoded  frame  size  for I frames in bytes. If this value is set as larger than\nzero, then for I frames the value set by maxframesize is ignored.\n\nmaxframesizep\nMaximum encoded frame size for P frames in bytes. If this value is  set  as  larger  than\nzero, then for P frames the value set by maxframesize is ignored.\n\nmaxslicesize\nMaximum encoded slice size in bytes.\n\nmbbrc\nSetting  this  flag  enables  macroblock  level  bitrate  control that generally improves\nsubjective visual quality. Enabling this flag may have negative impact on performance and\nobjective visual quality metric.\n\nlowdelaybrc\nSetting this flag turns on or off LowDelayBRC feautre in qsv plugin, which provides  more\naccurate  bitrate  control  to  minimize  the  variance of bitstream size frame by frame.\nValue: -1-default 0-off 1-on\n\nadaptivei\nThis flag controls insertion of I frames by the QSV encoder. Turn ON this flag  to  allow\nchanging of frame type from P and B to I.\n\nadaptiveb\nThis flag controls changing of frame type from B to P.\n\npstrategy\nEnable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to 0).\n\nbstrategy\nThis option controls usage of B frames as reference.\n\ndblkidc\nThis option disable deblocking. It has value in range 0~2.\n\nidrinterval\nDistance (in I-frames) between IDR frames.\n\nbeginonly\nOutput an IDR-frame only at the beginning of the stream.\n\nloadplugin\nA user plugin to load in an internal session.\n\nnone\nhevcsw\nhevchw\nloadplugins\nA :-separate list of hexadecimal plugin UIDs to load in an internal session.\n\nlookaheaddepth\nDepth of look ahead in number frames, available when extbrc option is enabled.\n\nprofile\nSet the encoding profile (scc requires libmfx >= 1.32).\n\nunknown\nmain\nmain10\nmainsp\nrext\nscc\ntier\nSet  the  encoding  tier (only level >= 4 can support high tier).  This option only takes\neffect when the level option is specified.\n\nmain\nhigh\ngpb 1: GPB (generalized P/B frame)\n\n0: regular P frame.\n\ntilecols\nNumber of columns for tiled encoding.\n\ntilerows\nNumber of rows for tiled encoding.\n\naud Insert the Access Unit Delimiter NAL.\n\npictimingsei\nInsert picture timing SEI with picstructsyntax element.\n\ntransformskip\nTurn this option ON to enable transformskip. It is supported on platform equal  or  newer\nthan ICL.\n\nintreftype\nSpecifies  intra  refresh  type.  The major goal of intra refresh is improvement of error\nresilience without significant impact on encoded bitstream size caused by I  frames.  The\nSDK  encoder  achieves  this  by encoding part of each frame in refresh cycle using intra\nMBs. none means no refresh. vertical means vertical refresh, by column of MBs. horizontal\nmeans horizontal refresh, by rows of  MBs.  slice  means  horizontal  refresh  by  slices\nwithout  overlapping.  In  case  of  slice, inrefcyclesize is ignored. To enable intra\nrefresh, B frame should be set to 0.\n\nintrefcyclesize\nSpecifies number of pictures within refresh cycle starting from 2. 0 and  1  are  invalid\nvalues.\n\nintrefqpdelta\nSpecifies  QP  difference for inserted intra MBs. This is signed value in [-51, 51] range\nif target encoding bit-depth for luma samples is 8 and this range is  [-63,  63]  for  10\nbit-depth or [-75, 75] for 12 bit-depth respectively.\n\nintrefcycledist\nDistance between the beginnings of the intra-refresh cycles in frames.\n\nmaxqpi\nMaximum video quantizer scale for I frame.\n\nminqpi\nMinimum video quantizer scale for I frame.\n\nmaxqpp\nMaximum video quantizer scale for P frame.\n\nminqpp\nMinimum video quantizer scale for P frame.\n\nmaxqpb\nMaximum video quantizer scale for B frame.\n\nminqpb\nMinimum video quantizer scale for B frame.\n\nscenario\nProvides a hint to encoder about the scenario for the encoding session.\n\nunknown\ndisplayremoting\nvideoconference\narchive\nlivestreaming\ncameracapture\nvideosurveillance\ngamestreaming\nremotegaming\navbraccuracy\nAccuracy of the AVBR ratecontrol (unit of tenth of percent).\n\navbrconvergence\nConvergence of the AVBR ratecontrol (unit of 100 frames)\n\nThe  parameters  avbraccuracy  and avbrconvergence are for the average variable bitrate\ncontrol (AVBR) algorithm.  The  algorithm  focuses  on  overall  encoding  quality  while\nmeeting  the  specified bitrate, targetbitrate, within the accuracy range avbraccuracy,\nafter a avbrConvergence period. This method does not follow HRD and the instant  bitrate\nis not capped or padded.\n\nskipframe\nUse  per-frame metadata \"qsvskipframe\" to skip frame when encoding. This option defines\nthe usage of this metadata.\n\nnoskip\nFrame skipping is disabled.\n\ninsertdummy\nEncoder inserts into bitstream frame where all macroblocks are encoded as skipped.\n\ninsertnothing\nSimilar to insertdummy, but encoder inserts  nothing  into  bitstream.  The  skipped\nframes  are still used in brc. For example, gop still include skipped frames, and the\nframes after skipped frames will be larger in size.\n\nbrconly\nskipframe metadata indicates the number of missed frames before the current frame.\n\nMPEG2 Options\n\nThese options are used by mpeg2qsv\n\nprofile\nunknown\nsimple\nmain\nhigh\n\nVP9 Options\n\nThese options are used by vp9qsv\n\nprofile\nunknown\nprofile0\nprofile1\nprofile2\nprofile3\ntilecols\nNumber of columns for tiled encoding (requires libmfx >= 1.29).\n\ntilerows\nNumber of rows for tiled encoding (requires libmfx  >= 1.29).\n\nAV1 Options\n\nThese options are used by av1qsv (requires libvpl).\n\nprofile\nunknown\nmain\ntilecols\nNumber of columns for tiled encoding.\n\ntilerows\nNumber of rows for tiled encoding.\n\nadaptivei\nThis flag controls insertion of I frames by the QSV encoder. Turn ON this flag  to  allow\nchanging of frame type from P and B to I.\n\nadaptiveb\nThis flag controls changing of frame type from B to P.\n\nbstrategy\nThis option controls usage of B frames as reference.\n\nextbrc\nExtended bitrate control.\n\nlookaheaddepth\nDepth of look ahead in number frames, available when extbrc option is enabled.\n\nlowdelaybrc\nSetting  this flag turns on or off LowDelayBRC feautre in qsv plugin, which provides more\naccurate bitrate control to minimize the variance  of  bitstream  size  frame  by  frame.\nValue: -1-default 0-off 1-on\n"
                    },
                    {
                        "name": "max_frame_size",
                        "content": "Set  the  allowed  max  size  in  bytes  for  each  frame.  If the frame size exceeds the\nlimitation, encoder will adjust the QP value to control the frame size.  Invalid  in  CQP\nrate control mode.\n"
                    },
                    {
                        "name": "snow",
                        "content": "Options\n"
                    },
                    {
                        "name": "iterative_dia_size",
                        "content": "dia size for the iterative motion estimation\n"
                    },
                    {
                        "name": "VAAPI encoders",
                        "content": "Wrappers for hardware encoders accessible via VAAPI.\n\nThese  encoders  only accept input in VAAPI hardware surfaces.  If you have input in software\nframes, use the hwupload filter to upload them to the GPU.\n\nThe following standard libavcodec options are used:\n\n•   g / gopsize\n\n•   bf / maxbframes\n\n•   profile\n\nIf not set, this will be determined automatically from the format of the input frames and\nthe profiles supported by the driver.\n\n•   level\n\n•   b / bitrate\n\n•   maxrate / rcmaxrate\n\n•   bufsize / rcbuffersize\n\n•   rcinitoccupancy / rcinitialbufferoccupancy\n\n•   compressionlevel\n\nSpeed / quality tradeoff: higher values are faster / worse quality.\n\n•   q / globalquality\n\nSize / quality tradeoff: higher values are smaller / worse quality.\n\n•   qmin\n\n•   qmax\n\n•   iqfactor / iquantfactor\n\n•   iqoffset / iquantoffset\n\n•   bqfactor / bquantfactor\n\n•   bqoffset / bquantoffset\n\n•   slices\n\nAll encoders support the following options:\n"
                    },
                    {
                        "name": "low_power",
                        "content": "Some drivers/platforms offer a second encoder for some codecs intended to use less  power\nthan  the  default  encoder;  setting this option will attempt to use that encoder.  Note\nthat it may support a reduced feature set, so some other options may not be available  in\nthis mode.\n"
                    },
                    {
                        "name": "idr_interval",
                        "content": "Set the number of normal intra frames between full-refresh (IDR) frames in open-GOP mode.\nThe  intra  frames are still IRAPs, but will not include global headers and may have non-\ndecodable leading pictures.\n"
                    },
                    {
                        "name": "b_depth",
                        "content": "Set the B-frame reference depth.  When set to one (the default), all B-frames will  refer\nonly  to  P- or I-frames.  When set to greater values multiple layers of B-frames will be\npresent, frames in each layer only referring to frames in higher layers.\n"
                    },
                    {
                        "name": "async_depth",
                        "content": "Maximum processing parallelism. Increase this to improve single channel performance. This\noption doesn't work if driver doesn't implement vaSyncBuffer function. Please  make  sure\nthere are enough hwframes allocated if a large number of asyncdepth is used.\n"
                    },
                    {
                        "name": "max_frame_size",
                        "content": "Set  the  allowed  max  size  in  bytes  for  each  frame.  If the frame size exceeds the\nlimitation, encoder will adjust the QP value to control the frame size.  Invalid  in  CQP\nrate control mode.\n"
                    },
                    {
                        "name": "rc_mode",
                        "content": "Set the rate control mode to use.  A given driver may only support a subset of modes.\n\nPossible modes:\n\nauto\nChoose the mode automatically based on driver support and the other options.  This is\nthe default.\n\nCQP Constant-quality.\n\nCBR Constant-bitrate.\n\nVBR Variable-bitrate.\n\nICQ Intelligent constant-quality.\n\nQVBR\nQuality-defined variable-bitrate.\n\nAVBR\nAverage variable bitrate.\n\nEach encoder also has its own specific options:\n"
                    },
                    {
                        "name": "av1_vaapi",
                        "content": "profile  sets the value of seqprofile.  tier sets the value of seqtier.  level sets the\nvalue of seqlevelidx.\n\ntiles\nSet the number of tiles to encode the input video with, as columns x rows.   (default\nis auto, which means use minimal tile column/row number).\n\ntilegroups\nSet  tile  groups  number. All the tiles will be distributed as evenly as possible to\neach tile group. (default is 1).\n"
                    },
                    {
                        "name": "h264_vaapi",
                        "content": "profile sets the value of profileidc and  the  constraintset*flags.   level  sets  the\nvalue of levelidc.\n\ncoder\nSet entropy encoder (default is cabac).  Possible values:\n\nac\ncabac\nUse CABAC.\n\nvlc\ncavlc\nUse CAVLC.\n\naud Include access unit delimiters in the stream (not included by default).\n\nsei Set SEI message types to include.  Some combination of the following values:\n\nidentifier\nInclude   a  userdataunregistered  message  containing  information  about  the\nencoder.\n\ntiming\nInclude picture timing parameters (bufferingperiod and pictiming messages).\n\nrecoverypoint\nInclude recovery points where appropriate (recoverypoint messages).\n"
                    },
                    {
                        "name": "hevc_vaapi",
                        "content": "profile  and  level  set  the  values  of   generalprofileidc   and   generallevelidc\nrespectively.\n\naud Include access unit delimiters in the stream (not included by default).\n\ntier\nSet  generaltierflag.  This may affect the level chosen for the stream if it is not\nexplicitly specified.\n\nsei Set SEI message types to include.  Some combination of the following values:\n\nhdr Include HDR metadata if the input frames have it (masteringdisplaycolourvolume\nand contentlightlevel messages).\n\ntiles\nSet the number of tiles to encode the input video with, as columns  x  rows.   Larger\nnumbers  allow  greater  parallelism  in both encoding and decoding, but may decrease\ncoding efficiency.\n"
                    },
                    {
                        "name": "mjpeg_vaapi",
                        "content": "Only  baseline  DCT  encoding  is  supported.   The  encoder  always  uses  the  standard\nquantisation  and  huffman tables - globalquality scales the standard quantisation table\n(range 1-100).\n\nFor YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported.  RGB is also  supported,\nand will create an RGB JPEG.\n\njfif\nInclude JFIF header in each frame (not included by default).\n\nhuffman\nInclude  standard  huffman  tables (on by default).  Turning this off will save a few\nhundred bytes in each output  frame,  but  may  lose  compatibility  with  some  JPEG\ndecoders which don't fully handle MJPEG.\n"
                    },
                    {
                        "name": "mpeg2_vaapi",
                        "content": "profile and level set the value of profileandlevelindication.\n"
                    },
                    {
                        "name": "vp8_vaapi",
                        "content": "B-frames are not supported.\n\nglobalquality sets the qidx used for non-key frames (range 0-127).\n\nloopfilterlevel\nloopfiltersharpness\nManually set the loop filter parameters.\n"
                    },
                    {
                        "name": "vp9_vaapi",
                        "content": "globalquality sets the qidx used for P-frames (range 0-255).\n\nloopfilterlevel\nloopfiltersharpness\nManually set the loop filter parameters.\n\nB-frames  are  supported,  but  the  output  stream is always in encode order rather than\ndisplay order.  If B-frames are enabled, it may be necessary to use  the  vp9rawreorder\nbitstream filter to modify the output stream to display frames in the correct order.\n\nOnly  normal frames are produced - the vp9superframe bitstream filter may be required to\nproduce a stream usable with all decoders.\n"
                    },
                    {
                        "name": "vbn",
                        "content": "Vizrt Binary Image encoder.\n\nThis format is used by the broadcast vendor Vizrt  for  quick  texture  streaming.   Advanced\nfeatures  of  the format such as LZW compression of texture data or generation of mipmaps are\nnot supported.\n\nOptions\n\nformat string\nSets the texture compression used by the VBN file. Can be dxt1, dxt5 or raw.  Default  is\ndxt5.\n"
                    },
                    {
                        "name": "vc2",
                        "content": "SMPTE  VC-2  (previously  BBC  Dirac  Pro).  This  codec  was primarily aimed at professional\nbroadcasting but since it supports yuv420, yuv422 and yuv444 at  8  (limited  range  or  full\nrange),  10 or 12 bits, this makes it suitable for other tasks which require low overhead and\nlow compression (like screen recording).\n\nOptions\n\nb   Sets target video bitrate. Usually that's around 1:6 of the  uncompressed  video  bitrate\n(e.g.  for  1920x1080 50fps yuv422p10 that's around 400Mbps). Higher values (close to the\nuncompressed bitrate) turn on lossless compression mode.\n"
                    },
                    {
                        "name": "field_order",
                        "content": "Enables field coding when set (e.g. to tt -  top  field  first)  for  interlaced  inputs.\nShould  increase  compression with interlaced content as it splits the fields and encodes\neach separately.\n"
                    },
                    {
                        "name": "wavelet_depth",
                        "content": "Sets the total amount of wavelet transforms to apply, between 1 and 5  (default).   Lower\nvalues  reduce  compression  and quality. Less capable decoders may not be able to handle\nvalues of waveletdepth over 3.\n"
                    },
                    {
                        "name": "wavelet_type",
                        "content": "Sets the transform type. Currently only 53  (LeGall)  and  97  (Deslauriers-Dubuc)  are\nimplemented, with 97 being the one with better compression and thus is the default.\n"
                    },
                    {
                        "name": "slice_width",
                        "content": ""
                    },
                    {
                        "name": "slice_height",
                        "content": "Sets  the  slice  size  for  each slice. Larger values result in better compression.  For\ncompatibility with other more limited decoders use slicewidth of 32 and sliceheight  of\n8.\n"
                    },
                    {
                        "name": "tolerance",
                        "content": "Sets  the  undershoot tolerance of the rate control system in percent. This is to prevent\nan expensive search from being run.\n\nqm  Sets the quantization matrix preset to use by default or when waveletdepth is set to 5\n\n-   default Uses the default quantization matrix from the specifications,  extended  with\nvalues  for  the fifth level. This provides a good balance between keeping detail and\nomitting artifacts.\n\n-   flat Use a completely zeroed out quantization matrix. This increases PSNR  but  might\nreduce perception. Use in bogus benchmarks.\n\n-   color Reduces detail but attempts to preserve color at extremely low bitrates.\n"
                    }
                ]
            },
            "SUBTITLES ENCODERS": {
                "content": "",
                "subsections": [
                    {
                        "name": "dvdsub",
                        "content": "This  codec  encodes  the  bitmap  subtitle  format that is used in DVDs.  Typically they are\nstored in VOBSUB file pairs (*.idx + *.sub), and they can also be used in Matroska files.\n\nOptions\n"
                    },
                    {
                        "name": "palette",
                        "content": "Specify the global palette used by the bitmaps.\n\nThe format for this option is a string containing 16 24-bits hexadecimal numbers (without\n0x prefix) separated by commas, for example  \"0d00ee,  ee450d,  101010,  eaeaea,  0ce60b,\nec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b\".\n"
                    },
                    {
                        "name": "even_rows_fix",
                        "content": "When  set  to  1,  enable  a  work-around that makes the number of pixel rows even in all\nsubtitles.  This fixes a problem with some players that cut off the  bottom  row  if  the\nnumber  is  odd.   The  work-around  just  adds  a  fully transparent row if needed.  The\noverhead is low, typically one byte per subtitle on average.\n\nBy default, this work-around is disabled.\n"
                    }
                ]
            },
            "SEE ALSO": {
                "content": "ffmpeg(1), ffplay(1), ffprobe(1), libavcodec(3)\n",
                "subsections": []
            },
            "AUTHORS": {
                "content": "The FFmpeg developers.\n\nFor   details   about   the   authorship,   see   the   Git   history    of    the    project\n(https://git.ffmpeg.org/ffmpeg),  e.g.  by  typing  the  command git log in the FFmpeg source\ndirectory, or browsing the online repository at <https://git.ffmpeg.org/ffmpeg>.\n\nMaintainers for the specific components are listed in the file MAINTAINERS in the source code\ntree.\n\nFFMPEG-CODECS(1)",
                "subsections": []
            }
        }
    }
}