codecs.texi 25 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037
  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 pass1
  39. Use internal 2pass ratecontrol in first pass mode.
  40. @item pass2
  41. Use internal 2pass ratecontrol in second pass mode.
  42. @item gray
  43. Only decode/encode grayscale.
  44. @item psnr
  45. Set error[?] variables during encoding.
  46. @item truncated
  47. Input bitstream might be randomly truncated.
  48. @item drop_changed
  49. Don't output frames whose parameters differ from first decoded frame in stream.
  50. Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
  51. @item ildct
  52. Use interlaced DCT.
  53. @item low_delay
  54. Force low delay.
  55. @item global_header
  56. Place global headers in extradata instead of every keyframe.
  57. @item bitexact
  58. Only write platform-, build- and time-independent data. (except (I)DCT).
  59. This ensures that file and data checksums are reproducible and match between
  60. platforms. Its primary use is for regression testing.
  61. @item aic
  62. Apply H263 advanced intra coding / mpeg4 ac prediction.
  63. @item ilme
  64. Apply interlaced motion estimation.
  65. @item cgop
  66. Use closed gop.
  67. @item output_corrupt
  68. Output even potentially corrupted frames.
  69. @end table
  70. @item time_base @var{rational number}
  71. Set codec time base.
  72. It is the fundamental unit of time (in seconds) in terms of which
  73. frame timestamps are represented. For fixed-fps content, timebase
  74. should be @code{1 / frame_rate} and timestamp increments should be
  75. identically 1.
  76. @item g @var{integer} (@emph{encoding,video})
  77. Set the group of picture (GOP) size. Default value is 12.
  78. @item ar @var{integer} (@emph{decoding/encoding,audio})
  79. Set audio sampling rate (in Hz).
  80. @item ac @var{integer} (@emph{decoding/encoding,audio})
  81. Set number of audio channels.
  82. @item cutoff @var{integer} (@emph{encoding,audio})
  83. Set cutoff bandwidth. (Supported only by selected encoders, see
  84. their respective documentation sections.)
  85. @item frame_size @var{integer} (@emph{encoding,audio})
  86. Set audio frame size.
  87. Each submitted frame except the last must contain exactly frame_size
  88. samples per channel. May be 0 when the codec has
  89. CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
  90. restricted. It is set by some decoders to indicate constant frame
  91. size.
  92. @item frame_number @var{integer}
  93. Set the frame number.
  94. @item delay @var{integer}
  95. @item qcomp @var{float} (@emph{encoding,video})
  96. Set video quantizer scale compression (VBR). It is used as a constant
  97. in the ratecontrol equation. Recommended range for default rc_eq:
  98. 0.0-1.0.
  99. @item qblur @var{float} (@emph{encoding,video})
  100. Set video quantizer scale blur (VBR).
  101. @item qmin @var{integer} (@emph{encoding,video})
  102. Set min video quantizer scale (VBR). Must be included between -1 and
  103. 69, default value is 2.
  104. @item qmax @var{integer} (@emph{encoding,video})
  105. Set max video quantizer scale (VBR). Must be included between -1 and
  106. 1024, default value is 31.
  107. @item qdiff @var{integer} (@emph{encoding,video})
  108. Set max difference between the quantizer scale (VBR).
  109. @item bf @var{integer} (@emph{encoding,video})
  110. Set max number of B frames between non-B-frames.
  111. Must be an integer between -1 and 16. 0 means that B-frames are
  112. disabled. If a value of -1 is used, it will choose an automatic value
  113. depending on the encoder.
  114. Default value is 0.
  115. @item b_qfactor @var{float} (@emph{encoding,video})
  116. Set qp factor between P and B frames.
  117. @item codec_tag @var{integer}
  118. @item bug @var{flags} (@emph{decoding,video})
  119. Workaround not auto detected encoder bugs.
  120. Possible values:
  121. @table @samp
  122. @item autodetect
  123. @item xvid_ilace
  124. Xvid interlacing bug (autodetected if fourcc==XVIX)
  125. @item ump4
  126. (autodetected if fourcc==UMP4)
  127. @item no_padding
  128. padding bug (autodetected)
  129. @item amv
  130. @item qpel_chroma
  131. @item std_qpel
  132. old standard qpel (autodetected per fourcc/version)
  133. @item qpel_chroma2
  134. @item direct_blocksize
  135. direct-qpel-blocksize bug (autodetected per fourcc/version)
  136. @item edge
  137. edge padding bug (autodetected per fourcc/version)
  138. @item hpel_chroma
  139. @item dc_clip
  140. @item ms
  141. Workaround various bugs in microsoft broken decoders.
  142. @item trunc
  143. trancated frames
  144. @end table
  145. @item strict @var{integer} (@emph{decoding/encoding,audio,video})
  146. Specify how strictly to follow the standards.
  147. Possible values:
  148. @table @samp
  149. @item very
  150. strictly conform to an older more strict version of the spec or reference software
  151. @item strict
  152. strictly conform to all the things in the spec no matter what consequences
  153. @item normal
  154. @item unofficial
  155. allow unofficial extensions
  156. @item experimental
  157. allow non standardized experimental things, experimental
  158. (unfinished/work in progress/not well tested) decoders and encoders.
  159. Note: experimental decoders can pose a security risk, do not use this for
  160. decoding untrusted input.
  161. @end table
  162. @item b_qoffset @var{float} (@emph{encoding,video})
  163. Set QP offset between P and B frames.
  164. @item err_detect @var{flags} (@emph{decoding,audio,video})
  165. Set error detection flags.
  166. Possible values:
  167. @table @samp
  168. @item crccheck
  169. verify embedded CRCs
  170. @item bitstream
  171. detect bitstream specification deviations
  172. @item buffer
  173. detect improper bitstream length
  174. @item explode
  175. abort decoding on minor error detection
  176. @item ignore_err
  177. ignore decoding errors, and continue decoding.
  178. This is useful if you want to analyze the content of a video and thus want
  179. everything to be decoded no matter what. This option will not result in a video
  180. that is pleasing to watch in case of errors.
  181. @item careful
  182. consider things that violate the spec and have not been seen in the wild as errors
  183. @item compliant
  184. consider all spec non compliancies as errors
  185. @item aggressive
  186. consider things that a sane encoder should not do as an error
  187. @end table
  188. @item has_b_frames @var{integer}
  189. @item block_align @var{integer}
  190. @item rc_override_count @var{integer}
  191. @item maxrate @var{integer} (@emph{encoding,audio,video})
  192. Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
  193. @item minrate @var{integer} (@emph{encoding,audio,video})
  194. Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
  195. encode. It is of little use elsewise.
  196. @item bufsize @var{integer} (@emph{encoding,audio,video})
  197. Set ratecontrol buffer size (in bits).
  198. @item i_qfactor @var{float} (@emph{encoding,video})
  199. Set QP factor between P and I frames.
  200. @item i_qoffset @var{float} (@emph{encoding,video})
  201. Set QP offset between P and I frames.
  202. @item dct @var{integer} (@emph{encoding,video})
  203. Set DCT algorithm.
  204. Possible values:
  205. @table @samp
  206. @item auto
  207. autoselect a good one (default)
  208. @item fastint
  209. fast integer
  210. @item int
  211. accurate integer
  212. @item mmx
  213. @item altivec
  214. @item faan
  215. floating point AAN DCT
  216. @end table
  217. @item lumi_mask @var{float} (@emph{encoding,video})
  218. Compress bright areas stronger than medium ones.
  219. @item tcplx_mask @var{float} (@emph{encoding,video})
  220. Set temporal complexity masking.
  221. @item scplx_mask @var{float} (@emph{encoding,video})
  222. Set spatial complexity masking.
  223. @item p_mask @var{float} (@emph{encoding,video})
  224. Set inter masking.
  225. @item dark_mask @var{float} (@emph{encoding,video})
  226. Compress dark areas stronger than medium ones.
  227. @item idct @var{integer} (@emph{decoding/encoding,video})
  228. Select IDCT implementation.
  229. Possible values:
  230. @table @samp
  231. @item auto
  232. @item int
  233. @item simple
  234. @item simplemmx
  235. @item simpleauto
  236. Automatically pick a IDCT compatible with the simple one
  237. @item arm
  238. @item altivec
  239. @item sh4
  240. @item simplearm
  241. @item simplearmv5te
  242. @item simplearmv6
  243. @item simpleneon
  244. @item xvid
  245. @item faani
  246. floating point AAN IDCT
  247. @end table
  248. @item slice_count @var{integer}
  249. @item ec @var{flags} (@emph{decoding,video})
  250. Set error concealment strategy.
  251. Possible values:
  252. @table @samp
  253. @item guess_mvs
  254. iterative motion vector (MV) search (slow)
  255. @item deblock
  256. use strong deblock filter for damaged MBs
  257. @item favor_inter
  258. favor predicting from the previous frame instead of the current
  259. @end table
  260. @item bits_per_coded_sample @var{integer}
  261. @item aspect @var{rational number} (@emph{encoding,video})
  262. Set sample aspect ratio.
  263. @item sar @var{rational number} (@emph{encoding,video})
  264. Set sample aspect ratio. Alias to @var{aspect}.
  265. @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  266. Print specific debug info.
  267. Possible values:
  268. @table @samp
  269. @item pict
  270. picture info
  271. @item rc
  272. rate control
  273. @item bitstream
  274. @item mb_type
  275. macroblock (MB) type
  276. @item qp
  277. per-block quantization parameter (QP)
  278. @item dct_coeff
  279. @item green_metadata
  280. display complexity metadata for the upcoming frame, GoP or for a given duration.
  281. @item skip
  282. @item startcode
  283. @item er
  284. error recognition
  285. @item mmco
  286. memory management control operations (H.264)
  287. @item bugs
  288. @item buffers
  289. picture buffer allocations
  290. @item thread_ops
  291. threading operations
  292. @item nomc
  293. skip motion compensation
  294. @end table
  295. @item cmp @var{integer} (@emph{encoding,video})
  296. Set full pel me compare function.
  297. Possible values:
  298. @table @samp
  299. @item sad
  300. sum of absolute differences, fast (default)
  301. @item sse
  302. sum of squared errors
  303. @item satd
  304. sum of absolute Hadamard transformed differences
  305. @item dct
  306. sum of absolute DCT transformed differences
  307. @item psnr
  308. sum of squared quantization errors (avoid, low quality)
  309. @item bit
  310. number of bits needed for the block
  311. @item rd
  312. rate distortion optimal, slow
  313. @item zero
  314. 0
  315. @item vsad
  316. sum of absolute vertical differences
  317. @item vsse
  318. sum of squared vertical differences
  319. @item nsse
  320. noise preserving sum of squared differences
  321. @item w53
  322. 5/3 wavelet, only used in snow
  323. @item w97
  324. 9/7 wavelet, only used in snow
  325. @item dctmax
  326. @item chroma
  327. @end table
  328. @item subcmp @var{integer} (@emph{encoding,video})
  329. Set sub pel me compare function.
  330. Possible values:
  331. @table @samp
  332. @item sad
  333. sum of absolute differences, fast (default)
  334. @item sse
  335. sum of squared errors
  336. @item satd
  337. sum of absolute Hadamard transformed differences
  338. @item dct
  339. sum of absolute DCT transformed differences
  340. @item psnr
  341. sum of squared quantization errors (avoid, low quality)
  342. @item bit
  343. number of bits needed for the block
  344. @item rd
  345. rate distortion optimal, slow
  346. @item zero
  347. 0
  348. @item vsad
  349. sum of absolute vertical differences
  350. @item vsse
  351. sum of squared vertical differences
  352. @item nsse
  353. noise preserving sum of squared differences
  354. @item w53
  355. 5/3 wavelet, only used in snow
  356. @item w97
  357. 9/7 wavelet, only used in snow
  358. @item dctmax
  359. @item chroma
  360. @end table
  361. @item mbcmp @var{integer} (@emph{encoding,video})
  362. Set macroblock compare function.
  363. Possible values:
  364. @table @samp
  365. @item sad
  366. sum of absolute differences, fast (default)
  367. @item sse
  368. sum of squared errors
  369. @item satd
  370. sum of absolute Hadamard transformed differences
  371. @item dct
  372. sum of absolute DCT transformed differences
  373. @item psnr
  374. sum of squared quantization errors (avoid, low quality)
  375. @item bit
  376. number of bits needed for the block
  377. @item rd
  378. rate distortion optimal, slow
  379. @item zero
  380. 0
  381. @item vsad
  382. sum of absolute vertical differences
  383. @item vsse
  384. sum of squared vertical differences
  385. @item nsse
  386. noise preserving sum of squared differences
  387. @item w53
  388. 5/3 wavelet, only used in snow
  389. @item w97
  390. 9/7 wavelet, only used in snow
  391. @item dctmax
  392. @item chroma
  393. @end table
  394. @item ildctcmp @var{integer} (@emph{encoding,video})
  395. Set interlaced dct compare function.
  396. Possible values:
  397. @table @samp
  398. @item sad
  399. sum of absolute differences, fast (default)
  400. @item sse
  401. sum of squared errors
  402. @item satd
  403. sum of absolute Hadamard transformed differences
  404. @item dct
  405. sum of absolute DCT transformed differences
  406. @item psnr
  407. sum of squared quantization errors (avoid, low quality)
  408. @item bit
  409. number of bits needed for the block
  410. @item rd
  411. rate distortion optimal, slow
  412. @item zero
  413. 0
  414. @item vsad
  415. sum of absolute vertical differences
  416. @item vsse
  417. sum of squared vertical differences
  418. @item nsse
  419. noise preserving sum of squared differences
  420. @item w53
  421. 5/3 wavelet, only used in snow
  422. @item w97
  423. 9/7 wavelet, only used in snow
  424. @item dctmax
  425. @item chroma
  426. @end table
  427. @item dia_size @var{integer} (@emph{encoding,video})
  428. Set diamond type & size for motion estimation.
  429. @table @samp
  430. @item (1024, INT_MAX)
  431. full motion estimation(slowest)
  432. @item (768, 1024]
  433. umh motion estimation
  434. @item (512, 768]
  435. hex motion estimation
  436. @item (256, 512]
  437. l2s diamond motion estimation
  438. @item [2,256]
  439. var diamond motion estimation
  440. @item (-1, 2)
  441. small diamond motion estimation
  442. @item -1
  443. funny diamond motion estimation
  444. @item (INT_MIN, -1)
  445. sab diamond motion estimation
  446. @end table
  447. @item last_pred @var{integer} (@emph{encoding,video})
  448. Set amount of motion predictors from the previous frame.
  449. @item precmp @var{integer} (@emph{encoding,video})
  450. Set pre motion estimation compare function.
  451. Possible values:
  452. @table @samp
  453. @item sad
  454. sum of absolute differences, fast (default)
  455. @item sse
  456. sum of squared errors
  457. @item satd
  458. sum of absolute Hadamard transformed differences
  459. @item dct
  460. sum of absolute DCT transformed differences
  461. @item psnr
  462. sum of squared quantization errors (avoid, low quality)
  463. @item bit
  464. number of bits needed for the block
  465. @item rd
  466. rate distortion optimal, slow
  467. @item zero
  468. 0
  469. @item vsad
  470. sum of absolute vertical differences
  471. @item vsse
  472. sum of squared vertical differences
  473. @item nsse
  474. noise preserving sum of squared differences
  475. @item w53
  476. 5/3 wavelet, only used in snow
  477. @item w97
  478. 9/7 wavelet, only used in snow
  479. @item dctmax
  480. @item chroma
  481. @end table
  482. @item pre_dia_size @var{integer} (@emph{encoding,video})
  483. Set diamond type & size for motion estimation pre-pass.
  484. @item subq @var{integer} (@emph{encoding,video})
  485. Set sub pel motion estimation quality.
  486. @item me_range @var{integer} (@emph{encoding,video})
  487. Set limit motion vectors range (1023 for DivX player).
  488. @item global_quality @var{integer} (@emph{encoding,audio,video})
  489. @item slice_flags @var{integer}
  490. @item mbd @var{integer} (@emph{encoding,video})
  491. Set macroblock decision algorithm (high quality mode).
  492. Possible values:
  493. @table @samp
  494. @item simple
  495. use mbcmp (default)
  496. @item bits
  497. use fewest bits
  498. @item rd
  499. use best rate distortion
  500. @end table
  501. @item rc_init_occupancy @var{integer} (@emph{encoding,video})
  502. Set number of bits which should be loaded into the rc buffer before
  503. decoding starts.
  504. @item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  505. Possible values:
  506. @table @samp
  507. @item fast
  508. Allow non spec compliant speedup tricks.
  509. @item noout
  510. Skip bitstream encoding.
  511. @item ignorecrop
  512. Ignore cropping information from sps.
  513. @item local_header
  514. Place global headers at every keyframe instead of in extradata.
  515. @item chunks
  516. Frame data might be split into multiple chunks.
  517. @item showall
  518. Show all frames before the first keyframe.
  519. @item export_mvs
  520. Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
  521. for codecs that support it. See also @file{doc/examples/export_mvs.c}.
  522. @item skip_manual
  523. Do not skip samples and export skip information as frame side data.
  524. @item ass_ro_flush_noop
  525. Do not reset ASS ReadOrder field on flush.
  526. @item icc_profiles
  527. Generate/parse embedded ICC profiles from/to colorimetry tags.
  528. @end table
  529. @item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  530. Possible values:
  531. @table @samp
  532. @item mvs
  533. Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
  534. for codecs that support it. See also @file{doc/examples/export_mvs.c}.
  535. @item prft
  536. Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
  537. for codecs that support it.
  538. @item venc_params
  539. Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS})
  540. for codecs that support it. At present, those are H.264 and VP9.
  541. @item film_grain
  542. Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}).
  543. Supported at present by AV1 decoders.
  544. @end table
  545. @item threads @var{integer} (@emph{decoding/encoding,video})
  546. Set the number of threads to be used, in case the selected codec
  547. implementation supports multi-threading.
  548. Possible values:
  549. @table @samp
  550. @item auto, 0
  551. automatically select the number of threads to set
  552. @end table
  553. Default value is @samp{auto}.
  554. @item dc @var{integer} (@emph{encoding,video})
  555. Set intra_dc_precision.
  556. @item nssew @var{integer} (@emph{encoding,video})
  557. Set nsse weight.
  558. @item skip_top @var{integer} (@emph{decoding,video})
  559. Set number of macroblock rows at the top which are skipped.
  560. @item skip_bottom @var{integer} (@emph{decoding,video})
  561. Set number of macroblock rows at the bottom which are skipped.
  562. @item profile @var{integer} (@emph{encoding,audio,video})
  563. Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
  564. profiles are documented in the relevant encoder documentation.
  565. @item level @var{integer} (@emph{encoding,audio,video})
  566. Set the encoder level. This level depends on the specific codec, and
  567. might correspond to the profile level. It is set by default to
  568. @samp{unknown}.
  569. Possible values:
  570. @table @samp
  571. @item unknown
  572. @end table
  573. @item lowres @var{integer} (@emph{decoding,audio,video})
  574. Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
  575. @item mblmin @var{integer} (@emph{encoding,video})
  576. Set min macroblock lagrange factor (VBR).
  577. @item mblmax @var{integer} (@emph{encoding,video})
  578. Set max macroblock lagrange factor (VBR).
  579. @item skip_loop_filter @var{integer} (@emph{decoding,video})
  580. @item skip_idct @var{integer} (@emph{decoding,video})
  581. @item skip_frame @var{integer} (@emph{decoding,video})
  582. Make decoder discard processing depending on the frame type selected
  583. by the option value.
  584. @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
  585. skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
  586. Possible values:
  587. @table @samp
  588. @item none
  589. Discard no frame.
  590. @item default
  591. Discard useless frames like 0-sized frames.
  592. @item noref
  593. Discard all non-reference frames.
  594. @item bidir
  595. Discard all bidirectional frames.
  596. @item nokey
  597. Discard all frames excepts keyframes.
  598. @item nointra
  599. Discard all frames except I frames.
  600. @item all
  601. Discard all frames.
  602. @end table
  603. Default value is @samp{default}.
  604. @item bidir_refine @var{integer} (@emph{encoding,video})
  605. Refine the two motion vectors used in bidirectional macroblocks.
  606. @item keyint_min @var{integer} (@emph{encoding,video})
  607. Set minimum interval between IDR-frames.
  608. @item refs @var{integer} (@emph{encoding,video})
  609. Set reference frames to consider for motion compensation.
  610. @item trellis @var{integer} (@emph{encoding,audio,video})
  611. Set rate-distortion optimal quantization.
  612. @item mv0_threshold @var{integer} (@emph{encoding,video})
  613. @item compression_level @var{integer} (@emph{encoding,audio,video})
  614. @item bits_per_raw_sample @var{integer}
  615. @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
  616. Possible values:
  617. @table @samp
  618. @end table
  619. @item request_channel_layout @var{integer} (@emph{decoding,audio})
  620. Possible values:
  621. @table @samp
  622. @end table
  623. @item rc_max_vbv_use @var{float} (@emph{encoding,video})
  624. @item rc_min_vbv_use @var{float} (@emph{encoding,video})
  625. @item color_primaries @var{integer} (@emph{decoding/encoding,video})
  626. Possible values:
  627. @table @samp
  628. @item bt709
  629. BT.709
  630. @item bt470m
  631. BT.470 M
  632. @item bt470bg
  633. BT.470 BG
  634. @item smpte170m
  635. SMPTE 170 M
  636. @item smpte240m
  637. SMPTE 240 M
  638. @item film
  639. Film
  640. @item bt2020
  641. BT.2020
  642. @item smpte428
  643. @item smpte428_1
  644. SMPTE ST 428-1
  645. @item smpte431
  646. SMPTE 431-2
  647. @item smpte432
  648. SMPTE 432-1
  649. @item jedec-p22
  650. JEDEC P22
  651. @end table
  652. @item color_trc @var{integer} (@emph{decoding/encoding,video})
  653. Possible values:
  654. @table @samp
  655. @item bt709
  656. BT.709
  657. @item gamma22
  658. BT.470 M
  659. @item gamma28
  660. BT.470 BG
  661. @item smpte170m
  662. SMPTE 170 M
  663. @item smpte240m
  664. SMPTE 240 M
  665. @item linear
  666. Linear
  667. @item log
  668. @item log100
  669. Log
  670. @item log_sqrt
  671. @item log316
  672. Log square root
  673. @item iec61966_2_4
  674. @item iec61966-2-4
  675. IEC 61966-2-4
  676. @item bt1361
  677. @item bt1361e
  678. BT.1361
  679. @item iec61966_2_1
  680. @item iec61966-2-1
  681. IEC 61966-2-1
  682. @item bt2020_10
  683. @item bt2020_10bit
  684. BT.2020 - 10 bit
  685. @item bt2020_12
  686. @item bt2020_12bit
  687. BT.2020 - 12 bit
  688. @item smpte2084
  689. SMPTE ST 2084
  690. @item smpte428
  691. @item smpte428_1
  692. SMPTE ST 428-1
  693. @item arib-std-b67
  694. ARIB STD-B67
  695. @end table
  696. @item colorspace @var{integer} (@emph{decoding/encoding,video})
  697. Possible values:
  698. @table @samp
  699. @item rgb
  700. RGB
  701. @item bt709
  702. BT.709
  703. @item fcc
  704. FCC
  705. @item bt470bg
  706. BT.470 BG
  707. @item smpte170m
  708. SMPTE 170 M
  709. @item smpte240m
  710. SMPTE 240 M
  711. @item ycocg
  712. YCOCG
  713. @item bt2020nc
  714. @item bt2020_ncl
  715. BT.2020 NCL
  716. @item bt2020c
  717. @item bt2020_cl
  718. BT.2020 CL
  719. @item smpte2085
  720. SMPTE 2085
  721. @item chroma-derived-nc
  722. Chroma-derived NCL
  723. @item chroma-derived-c
  724. Chroma-derived CL
  725. @item ictcp
  726. ICtCp
  727. @end table
  728. @item color_range @var{integer} (@emph{decoding/encoding,video})
  729. If used as input parameter, it serves as a hint to the decoder, which
  730. color_range the input has.
  731. Possible values:
  732. @table @samp
  733. @item tv
  734. @item mpeg
  735. @item limited
  736. MPEG (219*2^(n-8))
  737. @item pc
  738. @item jpeg
  739. @item full
  740. JPEG (2^n-1)
  741. @end table
  742. @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
  743. Possible values:
  744. @table @samp
  745. @item left
  746. @item center
  747. @item topleft
  748. @item top
  749. @item bottomleft
  750. @item bottom
  751. @end table
  752. @item log_level_offset @var{integer}
  753. Set the log level offset.
  754. @item slices @var{integer} (@emph{encoding,video})
  755. Number of slices, used in parallelized encoding.
  756. @item thread_type @var{flags} (@emph{decoding/encoding,video})
  757. Select which multithreading methods to use.
  758. Use of @samp{frame} will increase decoding delay by one frame per
  759. thread, so clients which cannot provide future frames should not use
  760. it.
  761. Possible values:
  762. @table @samp
  763. @item slice
  764. Decode more than one part of a single frame at once.
  765. Multithreading using slices works only when the video was encoded with
  766. slices.
  767. @item frame
  768. Decode more than one frame at once.
  769. @end table
  770. Default value is @samp{slice+frame}.
  771. @item audio_service_type @var{integer} (@emph{encoding,audio})
  772. Set audio service type.
  773. Possible values:
  774. @table @samp
  775. @item ma
  776. Main Audio Service
  777. @item ef
  778. Effects
  779. @item vi
  780. Visually Impaired
  781. @item hi
  782. Hearing Impaired
  783. @item di
  784. Dialogue
  785. @item co
  786. Commentary
  787. @item em
  788. Emergency
  789. @item vo
  790. Voice Over
  791. @item ka
  792. Karaoke
  793. @end table
  794. @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
  795. Set sample format audio decoders should prefer. Default value is
  796. @code{none}.
  797. @item pkt_timebase @var{rational number}
  798. @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
  799. Set the input subtitles character encoding.
  800. @item field_order @var{field_order} (@emph{video})
  801. Set/override the field order of the video.
  802. Possible values:
  803. @table @samp
  804. @item progressive
  805. Progressive video
  806. @item tt
  807. Interlaced video, top field coded and displayed first
  808. @item bb
  809. Interlaced video, bottom field coded and displayed first
  810. @item tb
  811. Interlaced video, top coded first, bottom displayed first
  812. @item bt
  813. Interlaced video, bottom coded first, top displayed first
  814. @end table
  815. @item skip_alpha @var{bool} (@emph{decoding,video})
  816. Set to 1 to disable processing alpha (transparency). This works like the
  817. @samp{gray} flag in the @option{flags} option which skips chroma information
  818. instead of alpha. Default is 0.
  819. @item codec_whitelist @var{list} (@emph{input})
  820. "," separated list of allowed decoders. By default all are allowed.
  821. @item dump_separator @var{string} (@emph{input})
  822. Separator used to separate the fields printed on the command line about the
  823. Stream parameters.
  824. For example, to separate the fields with newlines and indentation:
  825. @example
  826. ffprobe -dump_separator "
  827. " -i ~/videos/matrixbench_mpeg2.mpg
  828. @end example
  829. @item max_pixels @var{integer} (@emph{decoding/encoding,video})
  830. Maximum number of pixels per image. This value can be used to avoid out of
  831. memory failures due to large images.
  832. @item apply_cropping @var{bool} (@emph{decoding,video})
  833. Enable cropping if cropping parameters are multiples of the required
  834. alignment for the left and top parameters. If the alignment is not met the
  835. cropping will be partially applied to maintain alignment.
  836. Default is 1 (enabled).
  837. Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
  838. CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
  839. decoders will not apply left/top Cropping.
  840. @end table
  841. @c man end CODEC OPTIONS
  842. @ifclear config-writeonly
  843. @include decoders.texi
  844. @end ifclear
  845. @ifclear config-readonly
  846. @include encoders.texi
  847. @end ifclear