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.

1155 lines
28KB

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