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.

1286 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 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 emu_edge
  45. Do not draw edges.
  46. @item psnr
  47. Set error[?] variables during encoding.
  48. @item truncated
  49. Input bitstream might be randomly truncated.
  50. @item drop_changed
  51. Don't output frames whose parameters differ from first decoded frame in stream.
  52. Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
  53. @item ildct
  54. Use interlaced DCT.
  55. @item low_delay
  56. Force low delay.
  57. @item global_header
  58. Place global headers in extradata instead of every keyframe.
  59. @item bitexact
  60. Only write platform-, build- and time-independent data. (except (I)DCT).
  61. This ensures that file and data checksums are reproducible and match between
  62. platforms. Its primary use is for regression testing.
  63. @item aic
  64. Apply H263 advanced intra coding / mpeg4 ac prediction.
  65. @item cbp
  66. Deprecated, use mpegvideo private options instead.
  67. @item qprd
  68. Deprecated, use mpegvideo private options instead.
  69. @item ilme
  70. Apply interlaced motion estimation.
  71. @item cgop
  72. Use closed gop.
  73. @item output_corrupt
  74. Output even potentially corrupted frames.
  75. @end table
  76. @item me_method @var{integer} (@emph{encoding,video})
  77. Set motion estimation method.
  78. Possible values:
  79. @table @samp
  80. @item zero
  81. zero motion estimation (fastest)
  82. @item full
  83. full motion estimation (slowest)
  84. @item epzs
  85. EPZS motion estimation (default)
  86. @item esa
  87. esa motion estimation (alias for full)
  88. @item tesa
  89. tesa motion estimation
  90. @item dia
  91. dia motion estimation (alias for epzs)
  92. @item log
  93. log motion estimation
  94. @item phods
  95. phods motion estimation
  96. @item x1
  97. X1 motion estimation
  98. @item hex
  99. hex motion estimation
  100. @item umh
  101. umh motion estimation
  102. @item iter
  103. iter motion estimation
  104. @end table
  105. @item extradata_size @var{integer}
  106. Set extradata size.
  107. @item time_base @var{rational number}
  108. Set codec time base.
  109. It is the fundamental unit of time (in seconds) in terms of which
  110. frame timestamps are represented. For fixed-fps content, timebase
  111. should be @code{1 / frame_rate} and timestamp increments should be
  112. identically 1.
  113. @item g @var{integer} (@emph{encoding,video})
  114. Set the group of picture (GOP) size. Default value is 12.
  115. @item ar @var{integer} (@emph{decoding/encoding,audio})
  116. Set audio sampling rate (in Hz).
  117. @item ac @var{integer} (@emph{decoding/encoding,audio})
  118. Set number of audio channels.
  119. @item cutoff @var{integer} (@emph{encoding,audio})
  120. Set cutoff bandwidth. (Supported only by selected encoders, see
  121. their respective documentation sections.)
  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 dct_coeff
  371. @item green_metadata
  372. display complexity metadata for the upcoming frame, GoP or for a given duration.
  373. @item skip
  374. @item startcode
  375. @item er
  376. error recognition
  377. @item mmco
  378. memory management control operations (H.264)
  379. @item bugs
  380. @item buffers
  381. picture buffer allocations
  382. @item thread_ops
  383. threading operations
  384. @item nomc
  385. skip motion compensation
  386. @end table
  387. @item cmp @var{integer} (@emph{encoding,video})
  388. Set full pel me compare function.
  389. Possible values:
  390. @table @samp
  391. @item sad
  392. sum of absolute differences, fast (default)
  393. @item sse
  394. sum of squared errors
  395. @item satd
  396. sum of absolute Hadamard transformed differences
  397. @item dct
  398. sum of absolute DCT transformed differences
  399. @item psnr
  400. sum of squared quantization errors (avoid, low quality)
  401. @item bit
  402. number of bits needed for the block
  403. @item rd
  404. rate distortion optimal, slow
  405. @item zero
  406. 0
  407. @item vsad
  408. sum of absolute vertical differences
  409. @item vsse
  410. sum of squared vertical differences
  411. @item nsse
  412. noise preserving sum of squared differences
  413. @item w53
  414. 5/3 wavelet, only used in snow
  415. @item w97
  416. 9/7 wavelet, only used in snow
  417. @item dctmax
  418. @item chroma
  419. @end table
  420. @item subcmp @var{integer} (@emph{encoding,video})
  421. Set sub pel me compare function.
  422. Possible values:
  423. @table @samp
  424. @item sad
  425. sum of absolute differences, fast (default)
  426. @item sse
  427. sum of squared errors
  428. @item satd
  429. sum of absolute Hadamard transformed differences
  430. @item dct
  431. sum of absolute DCT transformed differences
  432. @item psnr
  433. sum of squared quantization errors (avoid, low quality)
  434. @item bit
  435. number of bits needed for the block
  436. @item rd
  437. rate distortion optimal, slow
  438. @item zero
  439. 0
  440. @item vsad
  441. sum of absolute vertical differences
  442. @item vsse
  443. sum of squared vertical differences
  444. @item nsse
  445. noise preserving sum of squared differences
  446. @item w53
  447. 5/3 wavelet, only used in snow
  448. @item w97
  449. 9/7 wavelet, only used in snow
  450. @item dctmax
  451. @item chroma
  452. @end table
  453. @item mbcmp @var{integer} (@emph{encoding,video})
  454. Set macroblock compare function.
  455. Possible values:
  456. @table @samp
  457. @item sad
  458. sum of absolute differences, fast (default)
  459. @item sse
  460. sum of squared errors
  461. @item satd
  462. sum of absolute Hadamard transformed differences
  463. @item dct
  464. sum of absolute DCT transformed differences
  465. @item psnr
  466. sum of squared quantization errors (avoid, low quality)
  467. @item bit
  468. number of bits needed for the block
  469. @item rd
  470. rate distortion optimal, slow
  471. @item zero
  472. 0
  473. @item vsad
  474. sum of absolute vertical differences
  475. @item vsse
  476. sum of squared vertical differences
  477. @item nsse
  478. noise preserving sum of squared differences
  479. @item w53
  480. 5/3 wavelet, only used in snow
  481. @item w97
  482. 9/7 wavelet, only used in snow
  483. @item dctmax
  484. @item chroma
  485. @end table
  486. @item ildctcmp @var{integer} (@emph{encoding,video})
  487. Set interlaced dct compare function.
  488. Possible values:
  489. @table @samp
  490. @item sad
  491. sum of absolute differences, fast (default)
  492. @item sse
  493. sum of squared errors
  494. @item satd
  495. sum of absolute Hadamard transformed differences
  496. @item dct
  497. sum of absolute DCT transformed differences
  498. @item psnr
  499. sum of squared quantization errors (avoid, low quality)
  500. @item bit
  501. number of bits needed for the block
  502. @item rd
  503. rate distortion optimal, slow
  504. @item zero
  505. 0
  506. @item vsad
  507. sum of absolute vertical differences
  508. @item vsse
  509. sum of squared vertical differences
  510. @item nsse
  511. noise preserving sum of squared differences
  512. @item w53
  513. 5/3 wavelet, only used in snow
  514. @item w97
  515. 9/7 wavelet, only used in snow
  516. @item dctmax
  517. @item chroma
  518. @end table
  519. @item dia_size @var{integer} (@emph{encoding,video})
  520. Set diamond type & size for motion estimation.
  521. @item last_pred @var{integer} (@emph{encoding,video})
  522. Set amount of motion predictors from the previous frame.
  523. @item preme @var{integer} (@emph{encoding,video})
  524. Set pre motion estimation.
  525. @item precmp @var{integer} (@emph{encoding,video})
  526. Set pre motion estimation compare function.
  527. Possible values:
  528. @table @samp
  529. @item sad
  530. sum of absolute differences, fast (default)
  531. @item sse
  532. sum of squared errors
  533. @item satd
  534. sum of absolute Hadamard transformed differences
  535. @item dct
  536. sum of absolute DCT transformed differences
  537. @item psnr
  538. sum of squared quantization errors (avoid, low quality)
  539. @item bit
  540. number of bits needed for the block
  541. @item rd
  542. rate distortion optimal, slow
  543. @item zero
  544. 0
  545. @item vsad
  546. sum of absolute vertical differences
  547. @item vsse
  548. sum of squared vertical differences
  549. @item nsse
  550. noise preserving sum of squared differences
  551. @item w53
  552. 5/3 wavelet, only used in snow
  553. @item w97
  554. 9/7 wavelet, only used in snow
  555. @item dctmax
  556. @item chroma
  557. @end table
  558. @item pre_dia_size @var{integer} (@emph{encoding,video})
  559. Set diamond type & size for motion estimation pre-pass.
  560. @item subq @var{integer} (@emph{encoding,video})
  561. Set sub pel motion estimation quality.
  562. @item dtg_active_format @var{integer}
  563. @item me_range @var{integer} (@emph{encoding,video})
  564. Set limit motion vectors range (1023 for DivX player).
  565. @item ibias @var{integer} (@emph{encoding,video})
  566. Set intra quant bias.
  567. @item pbias @var{integer} (@emph{encoding,video})
  568. Set inter quant bias.
  569. @item color_table_id @var{integer}
  570. @item global_quality @var{integer} (@emph{encoding,audio,video})
  571. @item coder @var{integer} (@emph{encoding,video})
  572. Possible values:
  573. @table @samp
  574. @item vlc
  575. variable length coder / huffman coder
  576. @item ac
  577. arithmetic coder
  578. @item raw
  579. raw (no encoding)
  580. @item rle
  581. run-length coder
  582. @item deflate
  583. deflate-based coder
  584. @end table
  585. @item context @var{integer} (@emph{encoding,video})
  586. Set context model.
  587. @item slice_flags @var{integer}
  588. @item mbd @var{integer} (@emph{encoding,video})
  589. Set macroblock decision algorithm (high quality mode).
  590. Possible values:
  591. @table @samp
  592. @item simple
  593. use mbcmp (default)
  594. @item bits
  595. use fewest bits
  596. @item rd
  597. use best rate distortion
  598. @end table
  599. @item stream_codec_tag @var{integer}
  600. @item sc_threshold @var{integer} (@emph{encoding,video})
  601. Set scene change threshold.
  602. @item lmin @var{integer} (@emph{encoding,video})
  603. Set min lagrange factor (VBR).
  604. @item lmax @var{integer} (@emph{encoding,video})
  605. Set max lagrange factor (VBR).
  606. @item nr @var{integer} (@emph{encoding,video})
  607. Set noise reduction.
  608. @item rc_init_occupancy @var{integer} (@emph{encoding,video})
  609. Set number of bits which should be loaded into the rc buffer before
  610. decoding starts.
  611. @item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  612. Possible values:
  613. @table @samp
  614. @item fast
  615. Allow non spec compliant speedup tricks.
  616. @item noout
  617. Skip bitstream encoding.
  618. @item ignorecrop
  619. Ignore cropping information from sps.
  620. @item local_header
  621. Place global headers at every keyframe instead of in extradata.
  622. @item chunks
  623. Frame data might be split into multiple chunks.
  624. @item showall
  625. Show all frames before the first keyframe.
  626. @item export_mvs
  627. Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
  628. for codecs that support it. See also @file{doc/examples/export_mvs.c}.
  629. @item skip_manual
  630. Do not skip samples and export skip information as frame side data.
  631. @item ass_ro_flush_noop
  632. Do not reset ASS ReadOrder field on flush.
  633. @end table
  634. @item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  635. Possible values:
  636. @table @samp
  637. @item mvs
  638. Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
  639. for codecs that support it. See also @file{doc/examples/export_mvs.c}.
  640. @item prft
  641. Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
  642. for codecs that support it.
  643. @end table
  644. @item error @var{integer} (@emph{encoding,video})
  645. @item qns @var{integer} (@emph{encoding,video})
  646. Deprecated, use mpegvideo private options instead.
  647. @item threads @var{integer} (@emph{decoding/encoding,video})
  648. Set the number of threads to be used, in case the selected codec
  649. implementation supports multi-threading.
  650. Possible values:
  651. @table @samp
  652. @item auto, 0
  653. automatically select the number of threads to set
  654. @end table
  655. Default value is @samp{auto}.
  656. @item me_threshold @var{integer} (@emph{encoding,video})
  657. Set motion estimation threshold.
  658. @item mb_threshold @var{integer} (@emph{encoding,video})
  659. Set macroblock threshold.
  660. @item dc @var{integer} (@emph{encoding,video})
  661. Set intra_dc_precision.
  662. @item nssew @var{integer} (@emph{encoding,video})
  663. Set nsse weight.
  664. @item skip_top @var{integer} (@emph{decoding,video})
  665. Set number of macroblock rows at the top which are skipped.
  666. @item skip_bottom @var{integer} (@emph{decoding,video})
  667. Set number of macroblock rows at the bottom which are skipped.
  668. @item profile @var{integer} (@emph{encoding,audio,video})
  669. Possible values:
  670. @table @samp
  671. @item unknown
  672. @item aac_main
  673. @item aac_low
  674. @item aac_ssr
  675. @item aac_ltp
  676. @item aac_he
  677. @item aac_he_v2
  678. @item aac_ld
  679. @item aac_eld
  680. @item mpeg2_aac_low
  681. @item mpeg2_aac_he
  682. @item mpeg4_sp
  683. @item mpeg4_core
  684. @item mpeg4_main
  685. @item mpeg4_asp
  686. @item dts
  687. @item dts_es
  688. @item dts_96_24
  689. @item dts_hd_hra
  690. @item dts_hd_ma
  691. @end table
  692. @item level @var{integer} (@emph{encoding,audio,video})
  693. Possible values:
  694. @table @samp
  695. @item unknown
  696. @end table
  697. @item lowres @var{integer} (@emph{decoding,audio,video})
  698. Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
  699. @item skip_threshold @var{integer} (@emph{encoding,video})
  700. Set frame skip threshold.
  701. @item skip_factor @var{integer} (@emph{encoding,video})
  702. Set frame skip factor.
  703. @item skip_exp @var{integer} (@emph{encoding,video})
  704. Set frame skip exponent.
  705. Negative values behave identical to the corresponding positive ones, except
  706. that the score is normalized.
  707. Positive values exist primarily for compatibility reasons and are not so useful.
  708. @item skipcmp @var{integer} (@emph{encoding,video})
  709. Set frame skip compare function.
  710. Possible values:
  711. @table @samp
  712. @item sad
  713. sum of absolute differences, fast (default)
  714. @item sse
  715. sum of squared errors
  716. @item satd
  717. sum of absolute Hadamard transformed differences
  718. @item dct
  719. sum of absolute DCT transformed differences
  720. @item psnr
  721. sum of squared quantization errors (avoid, low quality)
  722. @item bit
  723. number of bits needed for the block
  724. @item rd
  725. rate distortion optimal, slow
  726. @item zero
  727. 0
  728. @item vsad
  729. sum of absolute vertical differences
  730. @item vsse
  731. sum of squared vertical differences
  732. @item nsse
  733. noise preserving sum of squared differences
  734. @item w53
  735. 5/3 wavelet, only used in snow
  736. @item w97
  737. 9/7 wavelet, only used in snow
  738. @item dctmax
  739. @item chroma
  740. @end table
  741. @item border_mask @var{float} (@emph{encoding,video})
  742. Increase the quantizer for macroblocks close to borders.
  743. @item mblmin @var{integer} (@emph{encoding,video})
  744. Set min macroblock lagrange factor (VBR).
  745. @item mblmax @var{integer} (@emph{encoding,video})
  746. Set max macroblock lagrange factor (VBR).
  747. @item mepc @var{integer} (@emph{encoding,video})
  748. Set motion estimation bitrate penalty compensation (1.0 = 256).
  749. @item skip_loop_filter @var{integer} (@emph{decoding,video})
  750. @item skip_idct @var{integer} (@emph{decoding,video})
  751. @item skip_frame @var{integer} (@emph{decoding,video})
  752. Make decoder discard processing depending on the frame type selected
  753. by the option value.
  754. @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
  755. skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
  756. Possible values:
  757. @table @samp
  758. @item none
  759. Discard no frame.
  760. @item default
  761. Discard useless frames like 0-sized frames.
  762. @item noref
  763. Discard all non-reference frames.
  764. @item bidir
  765. Discard all bidirectional frames.
  766. @item nokey
  767. Discard all frames excepts keyframes.
  768. @item nointra
  769. Discard all frames except I frames.
  770. @item all
  771. Discard all frames.
  772. @end table
  773. Default value is @samp{default}.
  774. @item bidir_refine @var{integer} (@emph{encoding,video})
  775. Refine the two motion vectors used in bidirectional macroblocks.
  776. @item brd_scale @var{integer} (@emph{encoding,video})
  777. Downscale frames for dynamic B-frame decision.
  778. @item keyint_min @var{integer} (@emph{encoding,video})
  779. Set minimum interval between IDR-frames.
  780. @item refs @var{integer} (@emph{encoding,video})
  781. Set reference frames to consider for motion compensation.
  782. @item chromaoffset @var{integer} (@emph{encoding,video})
  783. Set chroma qp offset from luma.
  784. @item trellis @var{integer} (@emph{encoding,audio,video})
  785. Set rate-distortion optimal quantization.
  786. @item mv0_threshold @var{integer} (@emph{encoding,video})
  787. @item b_sensitivity @var{integer} (@emph{encoding,video})
  788. Adjust sensitivity of b_frame_strategy 1.
  789. @item compression_level @var{integer} (@emph{encoding,audio,video})
  790. @item min_prediction_order @var{integer} (@emph{encoding,audio})
  791. @item max_prediction_order @var{integer} (@emph{encoding,audio})
  792. @item timecode_frame_start @var{integer} (@emph{encoding,video})
  793. Set GOP timecode frame start number, in non drop frame format.
  794. @item request_channels @var{integer} (@emph{decoding,audio})
  795. Set desired number of audio channels.
  796. @item bits_per_raw_sample @var{integer}
  797. @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
  798. Possible values:
  799. @table @samp
  800. @end table
  801. @item request_channel_layout @var{integer} (@emph{decoding,audio})
  802. Possible values:
  803. @table @samp
  804. @end table
  805. @item rc_max_vbv_use @var{float} (@emph{encoding,video})
  806. @item rc_min_vbv_use @var{float} (@emph{encoding,video})
  807. @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
  808. @item color_primaries @var{integer} (@emph{decoding/encoding,video})
  809. Possible values:
  810. @table @samp
  811. @item bt709
  812. BT.709
  813. @item bt470m
  814. BT.470 M
  815. @item bt470bg
  816. BT.470 BG
  817. @item smpte170m
  818. SMPTE 170 M
  819. @item smpte240m
  820. SMPTE 240 M
  821. @item film
  822. Film
  823. @item bt2020
  824. BT.2020
  825. @item smpte428
  826. @item smpte428_1
  827. SMPTE ST 428-1
  828. @item smpte431
  829. SMPTE 431-2
  830. @item smpte432
  831. SMPTE 432-1
  832. @item jedec-p22
  833. JEDEC P22
  834. @end table
  835. @item color_trc @var{integer} (@emph{decoding/encoding,video})
  836. Possible values:
  837. @table @samp
  838. @item bt709
  839. BT.709
  840. @item gamma22
  841. BT.470 M
  842. @item gamma28
  843. BT.470 BG
  844. @item smpte170m
  845. SMPTE 170 M
  846. @item smpte240m
  847. SMPTE 240 M
  848. @item linear
  849. Linear
  850. @item log
  851. @item log100
  852. Log
  853. @item log_sqrt
  854. @item log316
  855. Log square root
  856. @item iec61966_2_4
  857. @item iec61966-2-4
  858. IEC 61966-2-4
  859. @item bt1361
  860. @item bt1361e
  861. BT.1361
  862. @item iec61966_2_1
  863. @item iec61966-2-1
  864. IEC 61966-2-1
  865. @item bt2020_10
  866. @item bt2020_10bit
  867. BT.2020 - 10 bit
  868. @item bt2020_12
  869. @item bt2020_12bit
  870. BT.2020 - 12 bit
  871. @item smpte2084
  872. SMPTE ST 2084
  873. @item smpte428
  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 bt2020nc
  897. @item bt2020_ncl
  898. BT.2020 NCL
  899. @item bt2020c
  900. @item bt2020_cl
  901. BT.2020 CL
  902. @item smpte2085
  903. SMPTE 2085
  904. @end table
  905. @item color_range @var{integer} (@emph{decoding/encoding,video})
  906. If used as input parameter, it serves as a hint to the decoder, which
  907. color_range the input has.
  908. Possible values:
  909. @table @samp
  910. @item tv
  911. @item mpeg
  912. MPEG (219*2^(n-8))
  913. @item pc
  914. @item jpeg
  915. JPEG (2^n-1)
  916. @end table
  917. @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
  918. Possible values:
  919. @table @samp
  920. @item left
  921. @item center
  922. @item topleft
  923. @item top
  924. @item bottomleft
  925. @item bottom
  926. @end table
  927. @item log_level_offset @var{integer}
  928. Set the log level offset.
  929. @item slices @var{integer} (@emph{encoding,video})
  930. Number of slices, used in parallelized encoding.
  931. @item thread_type @var{flags} (@emph{decoding/encoding,video})
  932. Select which multithreading methods to use.
  933. Use of @samp{frame} will increase decoding delay by one frame per
  934. thread, so clients which cannot provide future frames should not use
  935. it.
  936. Possible values:
  937. @table @samp
  938. @item slice
  939. Decode more than one part of a single frame at once.
  940. Multithreading using slices works only when the video was encoded with
  941. slices.
  942. @item frame
  943. Decode more than one frame at once.
  944. @end table
  945. Default value is @samp{slice+frame}.
  946. @item audio_service_type @var{integer} (@emph{encoding,audio})
  947. Set audio service type.
  948. Possible values:
  949. @table @samp
  950. @item ma
  951. Main Audio Service
  952. @item ef
  953. Effects
  954. @item vi
  955. Visually Impaired
  956. @item hi
  957. Hearing Impaired
  958. @item di
  959. Dialogue
  960. @item co
  961. Commentary
  962. @item em
  963. Emergency
  964. @item vo
  965. Voice Over
  966. @item ka
  967. Karaoke
  968. @end table
  969. @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
  970. Set sample format audio decoders should prefer. Default value is
  971. @code{none}.
  972. @item pkt_timebase @var{rational number}
  973. @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
  974. Set the input subtitles character encoding.
  975. @item field_order @var{field_order} (@emph{video})
  976. Set/override the field order of the video.
  977. Possible values:
  978. @table @samp
  979. @item progressive
  980. Progressive video
  981. @item tt
  982. Interlaced video, top field coded and displayed first
  983. @item bb
  984. Interlaced video, bottom field coded and displayed first
  985. @item tb
  986. Interlaced video, top coded first, bottom displayed first
  987. @item bt
  988. Interlaced video, bottom coded first, top displayed first
  989. @end table
  990. @item skip_alpha @var{bool} (@emph{decoding,video})
  991. Set to 1 to disable processing alpha (transparency). This works like the
  992. @samp{gray} flag in the @option{flags} option which skips chroma information
  993. instead of alpha. Default is 0.
  994. @item codec_whitelist @var{list} (@emph{input})
  995. "," separated list of allowed decoders. By default all are allowed.
  996. @item dump_separator @var{string} (@emph{input})
  997. Separator used to separate the fields printed on the command line about the
  998. Stream parameters.
  999. For example, to separate the fields with newlines and indentation:
  1000. @example
  1001. ffprobe -dump_separator "
  1002. " -i ~/videos/matrixbench_mpeg2.mpg
  1003. @end example
  1004. @item max_pixels @var{integer} (@emph{decoding/encoding,video})
  1005. Maximum number of pixels per image. This value can be used to avoid out of
  1006. memory failures due to large images.
  1007. @item apply_cropping @var{bool} (@emph{decoding,video})
  1008. Enable cropping if cropping parameters are multiples of the required
  1009. alignment for the left and top parameters. If the alignment is not met the
  1010. cropping will be partially applied to maintain alignment.
  1011. Default is 1 (enabled).
  1012. Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
  1013. CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
  1014. decoders will not apply left/top Cropping.
  1015. @end table
  1016. @c man end CODEC OPTIONS
  1017. @ifclear config-writeonly
  1018. @include decoders.texi
  1019. @end ifclear
  1020. @ifclear config-readonly
  1021. @include encoders.texi
  1022. @end ifclear