You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1292 lines
30KB

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