codecs.texi 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249
  1. @anchor{codec-options}
  2. @chapter Codec Options
  3. @c man begin CODEC OPTIONS
  4. libavcodec provides some generic global options, which can be set on
  5. all the encoders and decoders. In addition each codec may support
  6. so-called private options, which are specific for a given codec.
  7. Sometimes, a global option may only affect a specific kind of codec,
  8. and may be nonsensical or ignored by another, so you need to be aware
  9. of the meaning of the specified options. Also some options are
  10. meant only for decoding or encoding.
  11. Options may be set by specifying -@var{option} @var{value} in the
  12. FFmpeg tools, or by setting the value explicitly in the
  13. @code{AVCodecContext} options or using the @file{libavutil/opt.h} API
  14. for programmatic use.
  15. The list of supported options follow:
  16. @table @option
  17. @item b @var{integer} (@emph{encoding,audio,video})
  18. Set bitrate in bits/s. Default value is 200K.
  19. @item ab @var{integer} (@emph{encoding,audio})
  20. Set audio bitrate (in bits/s). Default value is 128K.
  21. @item bt @var{integer} (@emph{encoding,video})
  22. Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
  23. tolerance specifies how far ratecontrol is willing to deviate from the
  24. target average bitrate value. This is not related to min/max
  25. bitrate. Lowering tolerance too much has an adverse effect on quality.
  26. @item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  27. Set generic flags.
  28. Possible values:
  29. @table @samp
  30. @item mv4
  31. Use four motion vector by macroblock (mpeg4).
  32. @item qpel
  33. Use 1/4 pel motion compensation.
  34. @item loop
  35. Use loop filter.
  36. @item qscale
  37. Use fixed qscale.
  38. @item gmc
  39. Use gmc.
  40. @item mv0
  41. Always try a mb with mv=<0,0>.
  42. @item input_preserved
  43. @item pass1
  44. Use internal 2pass ratecontrol in first pass mode.
  45. @item pass2
  46. Use internal 2pass ratecontrol in second pass mode.
  47. @item gray
  48. Only decode/encode grayscale.
  49. @item emu_edge
  50. Do not draw edges.
  51. @item psnr
  52. Set error[?] variables during encoding.
  53. @item truncated
  54. @item naq
  55. Normalize adaptive quantization.
  56. @item ildct
  57. Use interlaced DCT.
  58. @item low_delay
  59. Force low delay.
  60. @item global_header
  61. Place global headers in extradata instead of every keyframe.
  62. @item bitexact
  63. Only write platform-, build- and time-independent data. (except (I)DCT).
  64. This ensures that file and data checksums are reproducible and match between
  65. platforms. Its primary use is for regression testing.
  66. @item aic
  67. Apply H263 advanced intra coding / mpeg4 ac prediction.
  68. @item cbp
  69. Deprecated, use mpegvideo private options instead.
  70. @item qprd
  71. Deprecated, use mpegvideo private options instead.
  72. @item ilme
  73. Apply interlaced motion estimation.
  74. @item cgop
  75. Use closed gop.
  76. @end table
  77. @item me_method @var{integer} (@emph{encoding,video})
  78. Set motion estimation method.
  79. Possible values:
  80. @table @samp
  81. @item zero
  82. zero motion estimation (fastest)
  83. @item full
  84. full motion estimation (slowest)
  85. @item epzs
  86. EPZS motion estimation (default)
  87. @item esa
  88. esa motion estimation (alias for full)
  89. @item tesa
  90. tesa motion estimation
  91. @item dia
  92. dia motion estimation (alias for epzs)
  93. @item log
  94. log motion estimation
  95. @item phods
  96. phods motion estimation
  97. @item x1
  98. X1 motion estimation
  99. @item hex
  100. hex motion estimation
  101. @item umh
  102. umh motion estimation
  103. @item iter
  104. iter motion estimation
  105. @end table
  106. @item extradata_size @var{integer}
  107. Set extradata size.
  108. @item time_base @var{rational number}
  109. Set codec time base.
  110. It is the fundamental unit of time (in seconds) in terms of which
  111. frame timestamps are represented. For fixed-fps content, timebase
  112. should be @code{1 / frame_rate} and timestamp increments should be
  113. identically 1.
  114. @item g @var{integer} (@emph{encoding,video})
  115. Set the group of picture (GOP) size. Default value is 12.
  116. @item ar @var{integer} (@emph{decoding/encoding,audio})
  117. Set audio sampling rate (in Hz).
  118. @item ac @var{integer} (@emph{decoding/encoding,audio})
  119. Set number of audio channels.
  120. @item cutoff @var{integer} (@emph{encoding,audio})
  121. Set cutoff bandwidth.
  122. @item frame_size @var{integer} (@emph{encoding,audio})
  123. Set audio frame size.
  124. Each submitted frame except the last must contain exactly frame_size
  125. samples per channel. May be 0 when the codec has
  126. CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
  127. restricted. It is set by some decoders to indicate constant frame
  128. size.
  129. @item frame_number @var{integer}
  130. Set the frame number.
  131. @item delay @var{integer}
  132. @item qcomp @var{float} (@emph{encoding,video})
  133. Set video quantizer scale compression (VBR). It is used as a constant
  134. in the ratecontrol equation. Recommended range for default rc_eq:
  135. 0.0-1.0.
  136. @item qblur @var{float} (@emph{encoding,video})
  137. Set video quantizer scale blur (VBR).
  138. @item qmin @var{integer} (@emph{encoding,video})
  139. Set min video quantizer scale (VBR). Must be included between -1 and
  140. 69, default value is 2.
  141. @item qmax @var{integer} (@emph{encoding,video})
  142. Set max video quantizer scale (VBR). Must be included between -1 and
  143. 1024, default value is 31.
  144. @item qdiff @var{integer} (@emph{encoding,video})
  145. Set max difference between the quantizer scale (VBR).
  146. @item bf @var{integer} (@emph{encoding,video})
  147. Set max number of B frames between non-B-frames.
  148. Must be an integer between -1 and 16. 0 means that B-frames are
  149. disabled. If a value of -1 is used, it will choose an automatic value
  150. depending on the encoder.
  151. Default value is 0.
  152. @item b_qfactor @var{float} (@emph{encoding,video})
  153. Set qp factor between P and B frames.
  154. @item rc_strategy @var{integer} (@emph{encoding,video})
  155. Set ratecontrol method.
  156. @item b_strategy @var{integer} (@emph{encoding,video})
  157. Set strategy to choose between I/P/B-frames.
  158. @item ps @var{integer} (@emph{encoding,video})
  159. Set RTP payload size in bytes.
  160. @item mv_bits @var{integer}
  161. @item header_bits @var{integer}
  162. @item i_tex_bits @var{integer}
  163. @item p_tex_bits @var{integer}
  164. @item i_count @var{integer}
  165. @item p_count @var{integer}
  166. @item skip_count @var{integer}
  167. @item misc_bits @var{integer}
  168. @item frame_bits @var{integer}
  169. @item codec_tag @var{integer}
  170. @item bug @var{flags} (@emph{decoding,video})
  171. Workaround not auto detected encoder bugs.
  172. Possible values:
  173. @table @samp
  174. @item autodetect
  175. @item old_msmpeg4
  176. some old lavc generated msmpeg4v3 files (no autodetection)
  177. @item xvid_ilace
  178. Xvid interlacing bug (autodetected if fourcc==XVIX)
  179. @item ump4
  180. (autodetected if fourcc==UMP4)
  181. @item no_padding
  182. padding bug (autodetected)
  183. @item amv
  184. @item ac_vlc
  185. illegal vlc bug (autodetected per fourcc)
  186. @item qpel_chroma
  187. @item std_qpel
  188. old standard qpel (autodetected per fourcc/version)
  189. @item qpel_chroma2
  190. @item direct_blocksize
  191. direct-qpel-blocksize bug (autodetected per fourcc/version)
  192. @item edge
  193. edge padding bug (autodetected per fourcc/version)
  194. @item hpel_chroma
  195. @item dc_clip
  196. @item ms
  197. Workaround various bugs in microsoft broken decoders.
  198. @item trunc
  199. trancated frames
  200. @end table
  201. @item lelim @var{integer} (@emph{encoding,video})
  202. Set single coefficient elimination threshold for luminance (negative
  203. values also consider DC coefficient).
  204. @item celim @var{integer} (@emph{encoding,video})
  205. Set single coefficient elimination threshold for chrominance (negative
  206. values also consider dc coefficient)
  207. @item strict @var{integer} (@emph{decoding/encoding,audio,video})
  208. Specify how strictly to follow the standards.
  209. Possible values:
  210. @table @samp
  211. @item very
  212. strictly conform to an older more strict version of the spec or reference software
  213. @item strict
  214. strictly conform to all the things in the spec no matter what consequences
  215. @item normal
  216. @item unofficial
  217. allow unofficial extensions
  218. @item experimental
  219. allow non standardized experimental things, experimental
  220. (unfinished/work in progress/not well tested) decoders and encoders.
  221. Note: experimental decoders can pose a security risk, do not use this for
  222. decoding untrusted input.
  223. @end table
  224. @item b_qoffset @var{float} (@emph{encoding,video})
  225. Set QP offset between P and B frames.
  226. @item err_detect @var{flags} (@emph{decoding,audio,video})
  227. Set error detection flags.
  228. Possible values:
  229. @table @samp
  230. @item crccheck
  231. verify embedded CRCs
  232. @item bitstream
  233. detect bitstream specification deviations
  234. @item buffer
  235. detect improper bitstream length
  236. @item explode
  237. abort decoding on minor error detection
  238. @item ignore_err
  239. ignore decoding errors, and continue decoding.
  240. This is useful if you want to analyze the content of a video and thus want
  241. everything to be decoded no matter what. This option will not result in a video
  242. that is pleasing to watch in case of errors.
  243. @item careful
  244. consider things that violate the spec and have not been seen in the wild as errors
  245. @item compliant
  246. consider all spec non compliancies as errors
  247. @item aggressive
  248. consider things that a sane encoder should not do as an error
  249. @end table
  250. @item has_b_frames @var{integer}
  251. @item block_align @var{integer}
  252. @item mpeg_quant @var{integer} (@emph{encoding,video})
  253. Use MPEG quantizers instead of H.263.
  254. @item qsquish @var{float} (@emph{encoding,video})
  255. How to keep quantizer between qmin and qmax (0 = clip, 1 = use
  256. differentiable function).
  257. @item rc_qmod_amp @var{float} (@emph{encoding,video})
  258. Set experimental quantizer modulation.
  259. @item rc_qmod_freq @var{integer} (@emph{encoding,video})
  260. Set experimental quantizer modulation.
  261. @item rc_override_count @var{integer}
  262. @item rc_eq @var{string} (@emph{encoding,video})
  263. Set rate control equation. When computing the expression, besides the
  264. standard functions defined in the section 'Expression Evaluation', the
  265. following functions are available: bits2qp(bits), qp2bits(qp). Also
  266. the following constants are available: iTex pTex tex mv fCode iCount
  267. mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
  268. avgTex.
  269. @item maxrate @var{integer} (@emph{encoding,audio,video})
  270. Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
  271. @item minrate @var{integer} (@emph{encoding,audio,video})
  272. Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
  273. encode. It is of little use elsewise.
  274. @item bufsize @var{integer} (@emph{encoding,audio,video})
  275. Set ratecontrol buffer size (in bits).
  276. @item rc_buf_aggressivity @var{float} (@emph{encoding,video})
  277. Currently useless.
  278. @item i_qfactor @var{float} (@emph{encoding,video})
  279. Set QP factor between P and I frames.
  280. @item i_qoffset @var{float} (@emph{encoding,video})
  281. Set QP offset between P and I frames.
  282. @item rc_init_cplx @var{float} (@emph{encoding,video})
  283. Set initial complexity for 1-pass encoding.
  284. @item dct @var{integer} (@emph{encoding,video})
  285. Set DCT algorithm.
  286. Possible values:
  287. @table @samp
  288. @item auto
  289. autoselect a good one (default)
  290. @item fastint
  291. fast integer
  292. @item int
  293. accurate integer
  294. @item mmx
  295. @item altivec
  296. @item faan
  297. floating point AAN DCT
  298. @end table
  299. @item lumi_mask @var{float} (@emph{encoding,video})
  300. Compress bright areas stronger than medium ones.
  301. @item tcplx_mask @var{float} (@emph{encoding,video})
  302. Set temporal complexity masking.
  303. @item scplx_mask @var{float} (@emph{encoding,video})
  304. Set spatial complexity masking.
  305. @item p_mask @var{float} (@emph{encoding,video})
  306. Set inter masking.
  307. @item dark_mask @var{float} (@emph{encoding,video})
  308. Compress dark areas stronger than medium ones.
  309. @item idct @var{integer} (@emph{decoding/encoding,video})
  310. Select IDCT implementation.
  311. Possible values:
  312. @table @samp
  313. @item auto
  314. @item int
  315. @item simple
  316. @item simplemmx
  317. @item simpleauto
  318. Automatically pick a IDCT compatible with the simple one
  319. @item arm
  320. @item altivec
  321. @item sh4
  322. @item simplearm
  323. @item simplearmv5te
  324. @item simplearmv6
  325. @item simpleneon
  326. @item simplealpha
  327. @item ipp
  328. @item xvidmmx
  329. @item faani
  330. floating point AAN IDCT
  331. @end table
  332. @item slice_count @var{integer}
  333. @item ec @var{flags} (@emph{decoding,video})
  334. Set error concealment strategy.
  335. Possible values:
  336. @table @samp
  337. @item guess_mvs
  338. iterative motion vector (MV) search (slow)
  339. @item deblock
  340. use strong deblock filter for damaged MBs
  341. @item favor_inter
  342. favor predicting from the previous frame instead of the current
  343. @end table
  344. @item bits_per_coded_sample @var{integer}
  345. @item pred @var{integer} (@emph{encoding,video})
  346. Set prediction method.
  347. Possible values:
  348. @table @samp
  349. @item left
  350. @item plane
  351. @item median
  352. @end table
  353. @item aspect @var{rational number} (@emph{encoding,video})
  354. Set sample aspect ratio.
  355. @item sar @var{rational number} (@emph{encoding,video})
  356. Set sample aspect ratio. Alias to @var{aspect}.
  357. @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  358. Print specific debug info.
  359. Possible values:
  360. @table @samp
  361. @item pict
  362. picture info
  363. @item rc
  364. rate control
  365. @item bitstream
  366. @item mb_type
  367. macroblock (MB) type
  368. @item qp
  369. per-block quantization parameter (QP)
  370. @item mv
  371. motion vector
  372. @item dct_coeff
  373. @item green_metadata
  374. display complexity metadata for the upcoming frame, GoP or for a given duration.
  375. @item skip
  376. @item startcode
  377. @item pts
  378. @item er
  379. error recognition
  380. @item mmco
  381. memory management control operations (H.264)
  382. @item bugs
  383. @item vis_qp
  384. visualize quantization parameter (QP), lower QP are tinted greener
  385. @item vis_mb_type
  386. visualize block types
  387. @item buffers
  388. picture buffer allocations
  389. @item thread_ops
  390. threading operations
  391. @item nomc
  392. skip motion compensation
  393. @end table
  394. @item vismv @var{integer} (@emph{decoding,video})
  395. Visualize motion vectors (MVs).
  396. This option is deprecated, see the codecview filter instead.
  397. Possible values:
  398. @table @samp
  399. @item pf
  400. forward predicted MVs of P-frames
  401. @item bf
  402. forward predicted MVs of B-frames
  403. @item bb
  404. backward predicted MVs of B-frames
  405. @end table
  406. @item cmp @var{integer} (@emph{encoding,video})
  407. Set full pel me compare function.
  408. Possible values:
  409. @table @samp
  410. @item sad
  411. sum of absolute differences, fast (default)
  412. @item sse
  413. sum of squared errors
  414. @item satd
  415. sum of absolute Hadamard transformed differences
  416. @item dct
  417. sum of absolute DCT transformed differences
  418. @item psnr
  419. sum of squared quantization errors (avoid, low quality)
  420. @item bit
  421. number of bits needed for the block
  422. @item rd
  423. rate distortion optimal, slow
  424. @item zero
  425. 0
  426. @item vsad
  427. sum of absolute vertical differences
  428. @item vsse
  429. sum of squared vertical differences
  430. @item nsse
  431. noise preserving sum of squared differences
  432. @item w53
  433. 5/3 wavelet, only used in snow
  434. @item w97
  435. 9/7 wavelet, only used in snow
  436. @item dctmax
  437. @item chroma
  438. @end table
  439. @item subcmp @var{integer} (@emph{encoding,video})
  440. Set sub pel me compare function.
  441. Possible values:
  442. @table @samp
  443. @item sad
  444. sum of absolute differences, fast (default)
  445. @item sse
  446. sum of squared errors
  447. @item satd
  448. sum of absolute Hadamard transformed differences
  449. @item dct
  450. sum of absolute DCT transformed differences
  451. @item psnr
  452. sum of squared quantization errors (avoid, low quality)
  453. @item bit
  454. number of bits needed for the block
  455. @item rd
  456. rate distortion optimal, slow
  457. @item zero
  458. 0
  459. @item vsad
  460. sum of absolute vertical differences
  461. @item vsse
  462. sum of squared vertical differences
  463. @item nsse
  464. noise preserving sum of squared differences
  465. @item w53
  466. 5/3 wavelet, only used in snow
  467. @item w97
  468. 9/7 wavelet, only used in snow
  469. @item dctmax
  470. @item chroma
  471. @end table
  472. @item mbcmp @var{integer} (@emph{encoding,video})
  473. Set macroblock compare function.
  474. Possible values:
  475. @table @samp
  476. @item sad
  477. sum of absolute differences, fast (default)
  478. @item sse
  479. sum of squared errors
  480. @item satd
  481. sum of absolute Hadamard transformed differences
  482. @item dct
  483. sum of absolute DCT transformed differences
  484. @item psnr
  485. sum of squared quantization errors (avoid, low quality)
  486. @item bit
  487. number of bits needed for the block
  488. @item rd
  489. rate distortion optimal, slow
  490. @item zero
  491. 0
  492. @item vsad
  493. sum of absolute vertical differences
  494. @item vsse
  495. sum of squared vertical differences
  496. @item nsse
  497. noise preserving sum of squared differences
  498. @item w53
  499. 5/3 wavelet, only used in snow
  500. @item w97
  501. 9/7 wavelet, only used in snow
  502. @item dctmax
  503. @item chroma
  504. @end table
  505. @item ildctcmp @var{integer} (@emph{encoding,video})
  506. Set interlaced dct compare function.
  507. Possible values:
  508. @table @samp
  509. @item sad
  510. sum of absolute differences, fast (default)
  511. @item sse
  512. sum of squared errors
  513. @item satd
  514. sum of absolute Hadamard transformed differences
  515. @item dct
  516. sum of absolute DCT transformed differences
  517. @item psnr
  518. sum of squared quantization errors (avoid, low quality)
  519. @item bit
  520. number of bits needed for the block
  521. @item rd
  522. rate distortion optimal, slow
  523. @item zero
  524. 0
  525. @item vsad
  526. sum of absolute vertical differences
  527. @item vsse
  528. sum of squared vertical differences
  529. @item nsse
  530. noise preserving sum of squared differences
  531. @item w53
  532. 5/3 wavelet, only used in snow
  533. @item w97
  534. 9/7 wavelet, only used in snow
  535. @item dctmax
  536. @item chroma
  537. @end table
  538. @item dia_size @var{integer} (@emph{encoding,video})
  539. Set diamond type & size for motion estimation.
  540. @item last_pred @var{integer} (@emph{encoding,video})
  541. Set amount of motion predictors from the previous frame.
  542. @item preme @var{integer} (@emph{encoding,video})
  543. Set pre motion estimation.
  544. @item precmp @var{integer} (@emph{encoding,video})
  545. Set pre motion estimation compare function.
  546. Possible values:
  547. @table @samp
  548. @item sad
  549. sum of absolute differences, fast (default)
  550. @item sse
  551. sum of squared errors
  552. @item satd
  553. sum of absolute Hadamard transformed differences
  554. @item dct
  555. sum of absolute DCT transformed differences
  556. @item psnr
  557. sum of squared quantization errors (avoid, low quality)
  558. @item bit
  559. number of bits needed for the block
  560. @item rd
  561. rate distortion optimal, slow
  562. @item zero
  563. 0
  564. @item vsad
  565. sum of absolute vertical differences
  566. @item vsse
  567. sum of squared vertical differences
  568. @item nsse
  569. noise preserving sum of squared differences
  570. @item w53
  571. 5/3 wavelet, only used in snow
  572. @item w97
  573. 9/7 wavelet, only used in snow
  574. @item dctmax
  575. @item chroma
  576. @end table
  577. @item pre_dia_size @var{integer} (@emph{encoding,video})
  578. Set diamond type & size for motion estimation pre-pass.
  579. @item subq @var{integer} (@emph{encoding,video})
  580. Set sub pel motion estimation quality.
  581. @item dtg_active_format @var{integer}
  582. @item me_range @var{integer} (@emph{encoding,video})
  583. Set limit motion vectors range (1023 for DivX player).
  584. @item ibias @var{integer} (@emph{encoding,video})
  585. Set intra quant bias.
  586. @item pbias @var{integer} (@emph{encoding,video})
  587. Set inter quant bias.
  588. @item color_table_id @var{integer}
  589. @item global_quality @var{integer} (@emph{encoding,audio,video})
  590. @item coder @var{integer} (@emph{encoding,video})
  591. Possible values:
  592. @table @samp
  593. @item vlc
  594. variable length coder / huffman coder
  595. @item ac
  596. arithmetic coder
  597. @item raw
  598. raw (no encoding)
  599. @item rle
  600. run-length coder
  601. @item deflate
  602. deflate-based coder
  603. @end table
  604. @item context @var{integer} (@emph{encoding,video})
  605. Set context model.
  606. @item slice_flags @var{integer}
  607. @item xvmc_acceleration @var{integer}
  608. @item mbd @var{integer} (@emph{encoding,video})
  609. Set macroblock decision algorithm (high quality mode).
  610. Possible values:
  611. @table @samp
  612. @item simple
  613. use mbcmp (default)
  614. @item bits
  615. use fewest bits
  616. @item rd
  617. use best rate distortion
  618. @end table
  619. @item stream_codec_tag @var{integer}
  620. @item sc_threshold @var{integer} (@emph{encoding,video})
  621. Set scene change threshold.
  622. @item lmin @var{integer} (@emph{encoding,video})
  623. Set min lagrange factor (VBR).
  624. @item lmax @var{integer} (@emph{encoding,video})
  625. Set max lagrange factor (VBR).
  626. @item nr @var{integer} (@emph{encoding,video})
  627. Set noise reduction.
  628. @item rc_init_occupancy @var{integer} (@emph{encoding,video})
  629. Set number of bits which should be loaded into the rc buffer before
  630. decoding starts.
  631. @item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
  632. Possible values:
  633. @table @samp
  634. @item fast
  635. Allow non spec compliant speedup tricks.
  636. @item sgop
  637. Deprecated, use mpegvideo private options instead.
  638. @item noout
  639. Skip bitstream encoding.
  640. @item ignorecrop
  641. Ignore cropping information from sps.
  642. @item local_header
  643. Place global headers at every keyframe instead of in extradata.
  644. @item chunks
  645. Frame data might be split into multiple chunks.
  646. @item showall
  647. Show all frames before the first keyframe.
  648. @item skiprd
  649. Deprecated, use mpegvideo private options instead.
  650. @item export_mvs
  651. Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
  652. for codecs that support it. See also @file{doc/examples/export_mvs.c}.
  653. @end table
  654. @item error @var{integer} (@emph{encoding,video})
  655. @item qns @var{integer} (@emph{encoding,video})
  656. Deprecated, use mpegvideo private options instead.
  657. @item threads @var{integer} (@emph{decoding/encoding,video})
  658. Set the number of threads to be used, in case the selected codec
  659. implementation supports multi-threading.
  660. Possible values:
  661. @table @samp
  662. @item auto, 0
  663. automatically select the number of threads to set
  664. @end table
  665. Default value is @samp{auto}.
  666. @item me_threshold @var{integer} (@emph{encoding,video})
  667. Set motion estimation threshold.
  668. @item mb_threshold @var{integer} (@emph{encoding,video})
  669. Set macroblock threshold.
  670. @item dc @var{integer} (@emph{encoding,video})
  671. Set intra_dc_precision.
  672. @item nssew @var{integer} (@emph{encoding,video})
  673. Set nsse weight.
  674. @item skip_top @var{integer} (@emph{decoding,video})
  675. Set number of macroblock rows at the top which are skipped.
  676. @item skip_bottom @var{integer} (@emph{decoding,video})
  677. Set number of macroblock rows at the bottom which are skipped.
  678. @item profile @var{integer} (@emph{encoding,audio,video})
  679. Possible values:
  680. @table @samp
  681. @item unknown
  682. @item aac_main
  683. @item aac_low
  684. @item aac_ssr
  685. @item aac_ltp
  686. @item aac_he
  687. @item aac_he_v2
  688. @item aac_ld
  689. @item aac_eld
  690. @item mpeg2_aac_low
  691. @item mpeg2_aac_he
  692. @item mpeg4_sp
  693. @item mpeg4_core
  694. @item mpeg4_main
  695. @item mpeg4_asp
  696. @item dts
  697. @item dts_es
  698. @item dts_96_24
  699. @item dts_hd_hra
  700. @item dts_hd_ma
  701. @end table
  702. @item level @var{integer} (@emph{encoding,audio,video})
  703. Possible values:
  704. @table @samp
  705. @item unknown
  706. @end table
  707. @item lowres @var{integer} (@emph{decoding,audio,video})
  708. Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
  709. @item skip_threshold @var{integer} (@emph{encoding,video})
  710. Set frame skip threshold.
  711. @item skip_factor @var{integer} (@emph{encoding,video})
  712. Set frame skip factor.
  713. @item skip_exp @var{integer} (@emph{encoding,video})
  714. Set frame skip exponent.
  715. Negative values behave identical to the corresponding positive ones, except
  716. that the score is normalized.
  717. Positive values exist primarily for compatibility reasons and are not so useful.
  718. @item skipcmp @var{integer} (@emph{encoding,video})
  719. Set frame skip compare function.
  720. Possible values:
  721. @table @samp
  722. @item sad
  723. sum of absolute differences, fast (default)
  724. @item sse
  725. sum of squared errors
  726. @item satd
  727. sum of absolute Hadamard transformed differences
  728. @item dct
  729. sum of absolute DCT transformed differences
  730. @item psnr
  731. sum of squared quantization errors (avoid, low quality)
  732. @item bit
  733. number of bits needed for the block
  734. @item rd
  735. rate distortion optimal, slow
  736. @item zero
  737. 0
  738. @item vsad
  739. sum of absolute vertical differences
  740. @item vsse
  741. sum of squared vertical differences
  742. @item nsse
  743. noise preserving sum of squared differences
  744. @item w53
  745. 5/3 wavelet, only used in snow
  746. @item w97
  747. 9/7 wavelet, only used in snow
  748. @item dctmax
  749. @item chroma
  750. @end table
  751. @item border_mask @var{float} (@emph{encoding,video})
  752. Increase the quantizer for macroblocks close to borders.
  753. @item mblmin @var{integer} (@emph{encoding,video})
  754. Set min macroblock lagrange factor (VBR).
  755. @item mblmax @var{integer} (@emph{encoding,video})
  756. Set max macroblock lagrange factor (VBR).
  757. @item mepc @var{integer} (@emph{encoding,video})
  758. Set motion estimation bitrate penalty compensation (1.0 = 256).
  759. @item skip_loop_filter @var{integer} (@emph{decoding,video})
  760. @item skip_idct @var{integer} (@emph{decoding,video})
  761. @item skip_frame @var{integer} (@emph{decoding,video})
  762. Make decoder discard processing depending on the frame type selected
  763. by the option value.
  764. @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
  765. skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
  766. Possible values:
  767. @table @samp
  768. @item none
  769. Discard no frame.
  770. @item default
  771. Discard useless frames like 0-sized frames.
  772. @item noref
  773. Discard all non-reference frames.
  774. @item bidir
  775. Discard all bidirectional frames.
  776. @item nokey
  777. Discard all frames excepts keyframes.
  778. @item all
  779. Discard all frames.
  780. @end table
  781. Default value is @samp{default}.
  782. @item bidir_refine @var{integer} (@emph{encoding,video})
  783. Refine the two motion vectors used in bidirectional macroblocks.
  784. @item brd_scale @var{integer} (@emph{encoding,video})
  785. Downscale frames for dynamic B-frame decision.
  786. @item keyint_min @var{integer} (@emph{encoding,video})
  787. Set minimum interval between IDR-frames.
  788. @item refs @var{integer} (@emph{encoding,video})
  789. Set reference frames to consider for motion compensation.
  790. @item chromaoffset @var{integer} (@emph{encoding,video})
  791. Set chroma qp offset from luma.
  792. @item trellis @var{integer} (@emph{encoding,audio,video})
  793. Set rate-distortion optimal quantization.
  794. @item sc_factor @var{integer} (@emph{encoding,video})
  795. Set value multiplied by qscale for each frame and added to
  796. scene_change_score.
  797. @item mv0_threshold @var{integer} (@emph{encoding,video})
  798. @item b_sensitivity @var{integer} (@emph{encoding,video})
  799. Adjust sensitivity of b_frame_strategy 1.
  800. @item compression_level @var{integer} (@emph{encoding,audio,video})
  801. @item min_prediction_order @var{integer} (@emph{encoding,audio})
  802. @item max_prediction_order @var{integer} (@emph{encoding,audio})
  803. @item timecode_frame_start @var{integer} (@emph{encoding,video})
  804. Set GOP timecode frame start number, in non drop frame format.
  805. @item request_channels @var{integer} (@emph{decoding,audio})
  806. Set desired number of audio channels.
  807. @item bits_per_raw_sample @var{integer}
  808. @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
  809. Possible values:
  810. @table @samp
  811. @end table
  812. @item request_channel_layout @var{integer} (@emph{decoding,audio})
  813. Possible values:
  814. @table @samp
  815. @end table
  816. @item rc_max_vbv_use @var{float} (@emph{encoding,video})
  817. @item rc_min_vbv_use @var{float} (@emph{encoding,video})
  818. @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
  819. @item color_primaries @var{integer} (@emph{decoding/encoding,video})
  820. Possible values:
  821. @table @samp
  822. @item bt709
  823. BT.709
  824. @item bt470m
  825. BT.470 M
  826. @item bt470bg
  827. BT.470 BG
  828. @item smpte170m
  829. SMPTE 170 M
  830. @item smpte240m
  831. SMPTE 240 M
  832. @item film
  833. Film
  834. @item bt2020
  835. BT.2020
  836. @item smpte428_1
  837. SMPTE ST 428-1
  838. @item smpte431
  839. SMPTE 431-2
  840. @item smpte432
  841. SMPTE 432-1
  842. @end table
  843. @item color_trc @var{integer} (@emph{decoding/encoding,video})
  844. Possible values:
  845. @table @samp
  846. @item bt709
  847. BT.709
  848. @item gamma22
  849. BT.470 M
  850. @item gamma28
  851. BT.470 BG
  852. @item smpte170m
  853. SMPTE 170 M
  854. @item smpte240m
  855. SMPTE 240 M
  856. @item linear
  857. Linear
  858. @item log
  859. Log
  860. @item log_sqrt
  861. Log square root
  862. @item iec61966_2_4
  863. IEC 61966-2-4
  864. @item bt1361
  865. BT.1361
  866. @item iec61966_2_1
  867. IEC 61966-2-1
  868. @item bt2020_10bit
  869. BT.2020 - 10 bit
  870. @item bt2020_12bit
  871. BT.2020 - 12 bit
  872. @item smpte2084
  873. SMPTE ST 2084
  874. @item smpte428_1
  875. SMPTE ST 428-1
  876. @item arib-std-b67
  877. ARIB STD-B67
  878. @end table
  879. @item colorspace @var{integer} (@emph{decoding/encoding,video})
  880. Possible values:
  881. @table @samp
  882. @item rgb
  883. RGB
  884. @item bt709
  885. BT.709
  886. @item fcc
  887. FCC
  888. @item bt470bg
  889. BT.470 BG
  890. @item smpte170m
  891. SMPTE 170 M
  892. @item smpte240m
  893. SMPTE 240 M
  894. @item ycocg
  895. YCOCG
  896. @item bt2020_ncl
  897. BT.2020 NCL
  898. @item bt2020_cl
  899. BT.2020 CL
  900. @item smpte2085
  901. SMPTE 2085
  902. @end table
  903. @item color_range @var{integer} (@emph{decoding/encoding,video})
  904. If used as input parameter, it serves as a hint to the decoder, which
  905. color_range the input has.
  906. @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
  907. @item log_level_offset @var{integer}
  908. Set the log level offset.
  909. @item slices @var{integer} (@emph{encoding,video})
  910. Number of slices, used in parallelized encoding.
  911. @item thread_type @var{flags} (@emph{decoding/encoding,video})
  912. Select which multithreading methods to use.
  913. Use of @samp{frame} will increase decoding delay by one frame per
  914. thread, so clients which cannot provide future frames should not use
  915. it.
  916. Possible values:
  917. @table @samp
  918. @item slice
  919. Decode more than one part of a single frame at once.
  920. Multithreading using slices works only when the video was encoded with
  921. slices.
  922. @item frame
  923. Decode more than one frame at once.
  924. @end table
  925. Default value is @samp{slice+frame}.
  926. @item audio_service_type @var{integer} (@emph{encoding,audio})
  927. Set audio service type.
  928. Possible values:
  929. @table @samp
  930. @item ma
  931. Main Audio Service
  932. @item ef
  933. Effects
  934. @item vi
  935. Visually Impaired
  936. @item hi
  937. Hearing Impaired
  938. @item di
  939. Dialogue
  940. @item co
  941. Commentary
  942. @item em
  943. Emergency
  944. @item vo
  945. Voice Over
  946. @item ka
  947. Karaoke
  948. @end table
  949. @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
  950. Set sample format audio decoders should prefer. Default value is
  951. @code{none}.
  952. @item pkt_timebase @var{rational number}
  953. @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
  954. Set the input subtitles character encoding.
  955. @item field_order @var{field_order} (@emph{video})
  956. Set/override the field order of the video.
  957. Possible values:
  958. @table @samp
  959. @item progressive
  960. Progressive video
  961. @item tt
  962. Interlaced video, top field coded and displayed first
  963. @item bb
  964. Interlaced video, bottom field coded and displayed first
  965. @item tb
  966. Interlaced video, top coded first, bottom displayed first
  967. @item bt
  968. Interlaced video, bottom coded first, top displayed first
  969. @end table
  970. @item skip_alpha @var{integer} (@emph{decoding,video})
  971. Set to 1 to disable processing alpha (transparency). This works like the
  972. @samp{gray} flag in the @option{flags} option which skips chroma information
  973. instead of alpha. Default is 0.
  974. @item codec_whitelist @var{list} (@emph{input})
  975. "," separated list of allowed decoders. By default all are allowed.
  976. @item dump_separator @var{string} (@emph{input})
  977. Separator used to separate the fields printed on the command line about the
  978. Stream parameters.
  979. For example to separate the fields with newlines and indention:
  980. @example
  981. ffprobe -dump_separator "
  982. " -i ~/videos/matrixbench_mpeg2.mpg
  983. @end example
  984. @end table
  985. @c man end CODEC OPTIONS
  986. @ifclear config-writeonly
  987. @include decoders.texi
  988. @end ifclear
  989. @ifclear config-readonly
  990. @include encoders.texi
  991. @end ifclear