{
    "mode": "man",
    "parameter": "ffmpeg-codecs",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/ffmpeg-codecs/1/json",
    "generated": "2026-06-13T16:50:26Z",
    "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\nbstrategy integer (encoding,video)\nSet strategy to choose between I/P/B-frames.\n\nps integer (encoding,video)\nSet RTP payload size in bytes.\n\nmvbits integer\nheaderbits integer\nitexbits integer\nptexbits integer\nicount integer\npcount integer\nskipcount integer\nmiscbits integer\nframebits integer\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\nmpegquant integer (encoding,video)\nUse MPEG quantizers instead of H.263.\n\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\npred integer (encoding,video)\nSet prediction method.\n\nPossible values:\n\nleft\nplane\nmedian\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\npreme integer (encoding,video)\nSet pre motion estimation.\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)\ncoder integer (encoding,video)\nPossible values:\n\nvlc variable length coder / huffman coder\n\nac  arithmetic coder\n\nraw raw (no encoding)\n\nrle run-length coder\n\ncontext integer (encoding,video)\nSet context model.\n\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\nscthreshold integer (encoding,video)\nSet scene change threshold.\n\nnr integer (encoding,video)\nSet noise reduction.\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\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)\nPossible values:\n\nunknown\nlowres integer (decoding,audio,video)\nDecode at 1= 1/2, 2=1/4, 3=1/8 resolutions.\n\nskipthreshold integer (encoding,video)\nSet frame skip threshold.\n\nskipfactor integer (encoding,video)\nSet frame skip factor.\n\nskipexp integer (encoding,video)\nSet frame skip exponent.  Negative values behave identical to the corresponding positive\nones, except that the score is normalized.  Positive values exist primarily for\ncompatibility reasons and are not so useful.\n\nskipcmp integer (encoding,video)\nSet frame skip 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\nmblmin integer (encoding,video)\nSet min macroblock lagrange factor (VBR).\n\nmblmax integer (encoding,video)\nSet max macroblock lagrange factor (VBR).\n\nmepc integer (encoding,video)\nSet motion estimation bitrate penalty compensation (1.0 = 256).\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\nbrdscale integer (encoding,video)\nDownscale frames for dynamic B-frame decision.\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\nchromaoffset integer (encoding,video)\nSet chroma qp offset from luma.\n\ntrellis integer (encoding,audio,video)\nSet rate-distortion optimal quantization.\n\nmv0threshold integer (encoding,video)\nbsensitivity integer (encoding,video)\nAdjust sensitivity of bframestrategy 1.\n\ncompressionlevel integer (encoding,audio,video)\nminpredictionorder integer (encoding,audio)\nmaxpredictionorder integer (encoding,audio)\ntimecodeframestart integer (encoding,video)\nSet GOP timecode frame start number, in non drop frame format.\n\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)\nticksperframe integer (decoding/encoding,audio,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\nMPEG (219*2^(n-8))\n\npc\njpeg\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\noperatingpoint\nSelect 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).\n"
                },
                {
                    "name": "tilethreads",
                    "content": "Set amount of tile threads to use during decoding. The default value is 0 (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.\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\nframethreads\nSet amount of frame threads to use during decoding. The default value is 0 (autodetect).\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",
                    "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",
                    "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": "dvbsub",
                    "content": "Options\n\ncomputeclut\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\ndvbsubstream\nSelects 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\nifopalette\nSpecify the IFO file from which the global palette is obtained.  (experimental)\n\nforcedsubsonly\nOnly 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\ntxtpage\nList 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\ntxtdefaultregion\nSet 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\ntxtchoptop\nDiscards the top teletext line. Default value is 1.\n\ntxtformat\nSpecifies 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\ntxtleft\nX offset of generated bitmaps, default is 0.\n\ntxttop\nY offset of generated bitmaps, default is 0.\n\ntxtchopspaces\nChops 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\ntxtduration\nSets 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\ntxttransparent\nForce transparent background of the generated teletext bitmaps. Default value is 0 which\nmeans an opaque background.\n\ntxtopacity\nSets 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\naaccoder\nSet AAC encoder coding method. Possible values:\n\ntwoloop\nTwo loop searching (TLS) 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.  This is the default choice for a coder\n\naacms\nSets 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\naacis\nSets 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\naacpns\nUses 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\naactns\nEnables 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\naacltp\nEnables 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\naacpred\nEnables 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\nac3 and ac3fixed\nAC-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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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",
                    "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\ncompressionlevel\nSets 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\nframesize\nSets the size of the frames in samples per channel.\n\nlpccoeffprecision\nSets the LPC coefficient precision, valid values are from 1 to 15, 15 is the default.\n\nlpctype\nSets the first stage LPC algorithm\n\nnone\nLPC is not used\n\nfixed\nfixed LPC coefficients\n\nlevinson\ncholesky\nlpcpasses\nNumber of passes to use for Cholesky factorization during LPC analysis\n\nminpartitionorder\nThe minimum partition order\n\nmaxpartitionorder\nThe maximum partition order\n\npredictionordermethod\nestimation\n2level\n4level\n8level\nsearch\nBruteforce search\n\nlog\nchmode\nChannel mode\n\nauto\nThe mode is chosen automatically for each frame\n\nindep\nChannels are independently coded\n\nleftside\nrightside\nmidside\nexactriceparameters\nChooses 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\nmultidimquant\nMulti 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\nopusdelay\nSets the maximum delay in milliseconds. Lower delays than 20ms will very quickly decrease\nquality.\n\nlibfdkaac\nlibfdk-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\neldsbr\nEnable SBR (Spectral Band Replication) for ELD if set to 1, disabled if set to 0.\n\nDefault value is 0.\n\neldv2\nEnable 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\nheaderperiod\nSet 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\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"
                },
                {
                    "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.\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).\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\napplyphaseinv (N.A.) (requires libopus >= 1.2)\nIf 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\noptimizemono\nSet 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\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",
            "subsections": [
                {
                    "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\ng keyintmin\nSet 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\nminrate maxrate bufsize rcinitoccupancy\nSet 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"
                },
                {
                    "name": "level",
                    "content": "Set the operating point level.\n"
                },
                {
                    "name": "tier",
                    "content": "Set the operating point tier.\n\nrc  Set the rate control mode to use.\n\nPossible modes:\n\ncqp Constant quantizer: use fixed values of qindex (dependent on the frame type)\nthroughout the stream.  This mode is the default.\n\nvbr Variable bitrate: use a target bitrate for the whole stream.\n\ncvbr\nConstrained variable bitrate: use a target bitrate for each GOP.\n"
                },
                {
                    "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\nqp  Set the quantizer used in cqp rate control mode (0-63).\n\nscdetection\nEnable scene change detection.\n\nladepth\nSet number of frames to look ahead (0-120).\n"
                },
                {
                    "name": "preset",
                    "content": "Set the quality-speed tradeoff, in the range 0 to 8.  Higher values are faster but lower\nquality.  Defaults to 8 (highest speed).\n\ntilerows\nSet log2 of the number of rows of tiles to use (0-6).\n\ntilecolumns\nSet log2 of the number of columns of tiles to use (0-4).\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\nflags +globalheader\nSet 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\nslicemode\nSet slice mode. Can assume one of the following possible values:\n\nfixed\na fixed number of slices\n\nrowmb\none slice per row of macroblocks\n\nauto\nautomatic number of slices according to number of threads\n\ndyn dynamic slicing\n\nDefault value is auto.\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\nmaxnalsize\nSet maximum NAL size in bytes.\n\nallowskipframes\nAllow 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\nglobalquality\nSet 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)\nqmax (max-q)\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\nforcekeyframes\n\"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"
                },
                {
                    "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\nexample, 4 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 ssRRGGBB\nbt709 bbtt770099\nunspecified uunnkknnoowwnn\nbt470bg bbtt660011\nsmpte170m ssmmppttee117700\nsmpte240m ssmmppttee224400\nbt2020ncl bbtt22002200\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",
                    "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": "-qscale",
                    "content": "For lossy encoding, this controls image quality, 0 to 100. For lossless encoding, this\ncontrols the effort and time spent at compressing more. The default value is 75. Note\nthat for usage via libavcodec, this option is called globalquality and must be\nmultiplied by FFQP2LAMBDA.\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\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\nthreadtype\nSet 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"
                },
                {
                    "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\nkeyintmin\nMinimum 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\niqfactor\nbqfactor"
                },
                {
                    "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"
                },
                {
                    "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\nlcurowthreads\nSet the number of parallel threads for rows from 1 to 8 (default 5).\n\ninitialqp\nSet 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\nmaxqp\nSet the max qp for rate control from 1 to 63 (default 55).\n\nminqp\nSet the min qp for rate control from 1 to 63 (default 20).\n\nspeedlevel\nSet the Speed level from 0 to 9 (default 0). Higher is better but slower.\n\nloglevel\nSet 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": "mpegquant"
                },
                {
                    "name": "threads",
                    "content": "bf\nbqfactor\nbqoffset"
                },
                {
                    "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": "memethod\nSet motion estimation method. Possible values in decreasing order of speed and increasing\norder of quality:\n\nzero\nUse no motion estimation (default).\n\nphods\nx1\nlog Enable advanced diamond zonal search for 16x16 blocks and half-pixel refinement for\n16x16 blocks. x1 and log are aliases for phods.\n\nepzs\nEnable all of the things described above, plus advanced diamond zonal search for 8x8\nblocks, half-pixel refinement for 8x8 blocks, and motion estimation on chroma planes.\n\nfull\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\nlumiaq\nEnable lumi masking adaptive quantization when set to 1. Default is 0 (disabled).\n\nvarianceaq\nEnable 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\nssimacc\nSet 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": "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 and VP9)\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.\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. This mode is further\nconfigured by the avbraccuracy and avbrconvergence options.\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\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"
                },
                {
                    "name": "snow",
                    "content": "Options\n\niterativediasize\ndia 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\nlowpower\nSome 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\nidrinterval\nSet 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\nbdepth\nSet 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\nrcmode\nSet 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\nh264vaapi\nprofile 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\nhevcvaapi\nprofile 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\nmjpegvaapi\nOnly 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\nmpeg2vaapi\nprofile and level set the value of profileandlevelindication.\n\nvp8vaapi\nB-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\nvp9vaapi\nglobalquality 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": "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\nfieldorder\nEnables 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\nwaveletdepth\nSets 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\nwavelettype\nSets 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\nslicewidth\nsliceheight\nSets 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\nevenrowsfix\nWhen 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(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in the FFmpeg source\ndirectory, or browsing the online repository at <http://source.ffmpeg.org>.\n\nMaintainers for the specific components are listed in the file MAINTAINERS in the source code\ntree.\n\n\n\nFFMPEG-CODECS(1)",
            "subsections": []
        }
    },
    "summary": "ffmpeg-codecs - FFmpeg codecs",
    "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"
        }
    ]
}