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.

1152 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 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 size. Default value is 12.
  116. @item ar @var{integer} (@emph{decoding/encoding,audio})
  117. Set audio sampling rate (in Hz).
  118. @item ac @var{integer} (@emph{decoding/encoding,audio})
  119. Set number of audio channels.
  120. @item cutoff @var{integer} (@emph{encoding,audio})
  121. Set cutoff bandwidth.
  122. @item frame_size @var{integer} (@emph{encoding,audio})
  123. Set audio frame size.
  124. Each submitted frame except the last must contain exactly frame_size
  125. samples per channel. May be 0 when the codec has
  126. CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
  127. restricted. It is set by some decoders to indicate constant frame
  128. size.
  129. @item frame_number @var{integer}
  130. Set the frame number.
  131. @item delay @var{integer}
  132. @item qcomp @var{float} (@emph{encoding,video})
  133. Set video quantizer scale compression (VBR). It is used as a constant
  134. in the ratecontrol equation. Recommended range for default rc_eq:
  135. 0.0-1.0.
  136. @item qblur @var{float} (@emph{encoding,video})
  137. Set video quantizer scale blur (VBR).
  138. @item qmin @var{integer} (@emph{encoding,video})
  139. Set min video quantizer scale (VBR). Must be included between -1 and
  140. 69, default value is 2.
  141. @item qmax @var{integer} (@emph{encoding,video})
  142. Set max video quantizer scale (VBR). Must be included between -1 and
  143. 1024, default value is 31.
  144. @item qdiff @var{integer} (@emph{encoding,video})
  145. Set max difference between the quantizer scale (VBR).
  146. @item bf @var{integer} (@emph{encoding,video})
  147. Set max number of B frames between non-B-frames.
  148. Must be an integer between -1 and 16. 0 means that B-frames are
  149. disabled. If a value of -1 is used, it will choose an automatic value
  150. depending on the encoder.
  151. Default value is 0.
  152. @item b_qfactor @var{float} (@emph{encoding,video})
  153. Set qp factor between P and B frames.
  154. @item rc_strategy @var{integer} (@emph{encoding,video})
  155. Set ratecontrol method.
  156. @item b_strategy @var{integer} (@emph{encoding,video})
  157. Set strategy to choose between I/P/B-frames.
  158. @item ps @var{integer} (@emph{encoding,video})
  159. Set RTP payload size in bytes.
  160. @item mv_bits @var{integer}
  161. @item header_bits @var{integer}
  162. @item i_tex_bits @var{integer}
  163. @item p_tex_bits @var{integer}
  164. @item i_count @var{integer}
  165. @item p_count @var{integer}
  166. @item skip_count @var{integer}
  167. @item misc_bits @var{integer}
  168. @item frame_bits @var{integer}
  169. @item codec_tag @var{integer}
  170. @item bug @var{flags} (@emph{decoding,video})
  171. Workaround not auto detected encoder bugs.
  172. Possible values:
  173. @table @samp
  174. @item autodetect
  175. @item old_msmpeg4
  176. some old lavc generated msmpeg4v3 files (no autodetection)
  177. @item xvid_ilace
  178. Xvid interlacing bug (autodetected if fourcc==XVIX)
  179. @item ump4
  180. (autodetected if fourcc==UMP4)
  181. @item no_padding
  182. padding bug (autodetected)
  183. @item amv
  184. @item ac_vlc
  185. illegal vlc bug (autodetected per fourcc)
  186. @item qpel_chroma
  187. @item std_qpel
  188. old standard qpel (autodetected per fourcc/version)
  189. @item qpel_chroma2
  190. @item direct_blocksize
  191. direct-qpel-blocksize bug (autodetected per fourcc/version)
  192. @item edge
  193. edge padding bug (autodetected per fourcc/version)
  194. @item hpel_chroma
  195. @item dc_clip
  196. @item ms
  197. Workaround various bugs in microsoft broken decoders.
  198. @item trunc
  199. trancated frames
  200. @end table
  201. @item lelim @var{integer} (@emph{encoding,video})
  202. Set single coefficient elimination threshold for luminance (negative
  203. values also consider DC coefficient).
  204. @item celim @var{integer} (@emph{encoding,video})
  205. Set single coefficient elimination threshold for chrominance (negative
  206. values also consider dc coefficient)
  207. @item strict @var{integer} (@emph{decoding/encoding,audio,video})
  208. Specify how strictly to follow the standards.
  209. Possible values:
  210. @table @samp
  211. @item very
  212. strictly conform to a 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 debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
  356. Print specific debug info.
  357. Possible values:
  358. @table @samp
  359. @item pict
  360. picture info
  361. @item rc
  362. rate control
  363. @item bitstream
  364. @item mb_type
  365. macroblock (MB) type
  366. @item qp
  367. per-block quantization parameter (QP)
  368. @item mv
  369. motion vector
  370. @item dct_coeff
  371. @item skip
  372. @item startcode
  373. @item pts
  374. @item er
  375. error recognition
  376. @item mmco
  377. memory management control operations (H.264)
  378. @item bugs
  379. @item vis_qp
  380. visualize quantization parameter (QP), lower QP are tinted greener
  381. @item vis_mb_type
  382. visualize block types
  383. @item buffers
  384. picture buffer allocations
  385. @item thread_ops
  386. threading operations
  387. @item nomc
  388. skip motion compensation
  389. @end table
  390. @item vismv @var{integer} (@emph{decoding,video})
  391. Visualize motion vectors (MVs).
  392. This option is deprecated, see the codecview filter instead.
  393. Possible values:
  394. @table @samp
  395. @item pf
  396. forward predicted MVs of P-frames
  397. @item bf
  398. forward predicted MVs of B-frames
  399. @item bb
  400. backward predicted MVs of B-frames
  401. @end table
  402. @item cmp @var{integer} (@emph{encoding,video})
  403. Set full pel me compare function.
  404. Possible values:
  405. @table @samp
  406. @item sad
  407. sum of absolute differences, fast (default)
  408. @item sse
  409. sum of squared errors
  410. @item satd
  411. sum of absolute Hadamard transformed differences
  412. @item dct
  413. sum of absolute DCT transformed differences
  414. @item psnr
  415. sum of squared quantization errors (avoid, low quality)
  416. @item bit
  417. number of bits needed for the block
  418. @item rd
  419. rate distortion optimal, slow
  420. @item zero
  421. 0
  422. @item vsad
  423. sum of absolute vertical differences
  424. @item vsse
  425. sum of squared vertical differences
  426. @item nsse
  427. noise preserving sum of squared differences
  428. @item w53
  429. 5/3 wavelet, only used in snow
  430. @item w97
  431. 9/7 wavelet, only used in snow
  432. @item dctmax
  433. @item chroma
  434. @end table
  435. @item subcmp @var{integer} (@emph{encoding,video})
  436. Set sub pel me compare function.
  437. Possible values:
  438. @table @samp
  439. @item sad
  440. sum of absolute differences, fast (default)
  441. @item sse
  442. sum of squared errors
  443. @item satd
  444. sum of absolute Hadamard transformed differences
  445. @item dct
  446. sum of absolute DCT transformed differences
  447. @item psnr
  448. sum of squared quantization errors (avoid, low quality)
  449. @item bit
  450. number of bits needed for the block
  451. @item rd
  452. rate distortion optimal, slow
  453. @item zero
  454. 0
  455. @item vsad
  456. sum of absolute vertical differences
  457. @item vsse
  458. sum of squared vertical differences
  459. @item nsse
  460. noise preserving sum of squared differences
  461. @item w53
  462. 5/3 wavelet, only used in snow
  463. @item w97
  464. 9/7 wavelet, only used in snow
  465. @item dctmax
  466. @item chroma
  467. @end table
  468. @item mbcmp @var{integer} (@emph{encoding,video})
  469. Set macroblock compare function.
  470. Possible values:
  471. @table @samp
  472. @item sad
  473. sum of absolute differences, fast (default)
  474. @item sse
  475. sum of squared errors
  476. @item satd
  477. sum of absolute Hadamard transformed differences
  478. @item dct
  479. sum of absolute DCT transformed differences
  480. @item psnr
  481. sum of squared quantization errors (avoid, low quality)
  482. @item bit
  483. number of bits needed for the block
  484. @item rd
  485. rate distortion optimal, slow
  486. @item zero
  487. 0
  488. @item vsad
  489. sum of absolute vertical differences
  490. @item vsse
  491. sum of squared vertical differences
  492. @item nsse
  493. noise preserving sum of squared differences
  494. @item w53
  495. 5/3 wavelet, only used in snow
  496. @item w97
  497. 9/7 wavelet, only used in snow
  498. @item dctmax
  499. @item chroma
  500. @end table
  501. @item ildctcmp @var{integer} (@emph{encoding,video})
  502. Set interlaced dct compare function.
  503. Possible values:
  504. @table @samp
  505. @item sad
  506. sum of absolute differences, fast (default)
  507. @item sse
  508. sum of squared errors
  509. @item satd
  510. sum of absolute Hadamard transformed differences
  511. @item dct
  512. sum of absolute DCT transformed differences
  513. @item psnr
  514. sum of squared quantization errors (avoid, low quality)
  515. @item bit
  516. number of bits needed for the block
  517. @item rd
  518. rate distortion optimal, slow
  519. @item zero
  520. 0
  521. @item vsad
  522. sum of absolute vertical differences
  523. @item vsse
  524. sum of squared vertical differences
  525. @item nsse
  526. noise preserving sum of squared differences
  527. @item w53
  528. 5/3 wavelet, only used in snow
  529. @item w97
  530. 9/7 wavelet, only used in snow
  531. @item dctmax
  532. @item chroma
  533. @end table
  534. @item dia_size @var{integer} (@emph{encoding,video})
  535. Set diamond type & size for motion estimation.
  536. @item last_pred @var{integer} (@emph{encoding,video})
  537. Set amount of motion predictors from the previous frame.
  538. @item preme @var{integer} (@emph{encoding,video})
  539. Set pre motion estimation.
  540. @item precmp @var{integer} (@emph{encoding,video})
  541. Set pre motion estimation compare function.
  542. Possible values:
  543. @table @samp
  544. @item sad
  545. sum of absolute differences, fast (default)
  546. @item sse
  547. sum of squared errors
  548. @item satd
  549. sum of absolute Hadamard transformed differences
  550. @item dct
  551. sum of absolute DCT transformed differences
  552. @item psnr
  553. sum of squared quantization errors (avoid, low quality)
  554. @item bit
  555. number of bits needed for the block
  556. @item rd
  557. rate distortion optimal, slow
  558. @item zero
  559. 0
  560. @item vsad
  561. sum of absolute vertical differences
  562. @item vsse
  563. sum of squared vertical differences
  564. @item nsse
  565. noise preserving sum of squared differences
  566. @item w53
  567. 5/3 wavelet, only used in snow
  568. @item w97
  569. 9/7 wavelet, only used in snow
  570. @item dctmax
  571. @item chroma
  572. @end table
  573. @item pre_dia_size @var{integer} (@emph{encoding,video})
  574. Set diamond type & size for motion estimation pre-pass.
  575. @item subq @var{integer} (@emph{encoding,video})
  576. Set sub pel motion estimation quality.
  577. @item dtg_active_format @var{integer}
  578. @item me_range @var{integer} (@emph{encoding,video})
  579. Set limit motion vectors range (1023 for DivX player).
  580. @item ibias @var{integer} (@emph{encoding,video})
  581. Set intra quant bias.
  582. @item pbias @var{integer} (@emph{encoding,video})
  583. Set inter quant bias.
  584. @item color_table_id @var{integer}
  585. @item global_quality @var{integer} (@emph{encoding,audio,video})
  586. @item coder @var{integer} (@emph{encoding,video})
  587. Possible values:
  588. @table @samp
  589. @item vlc
  590. variable length coder / huffman coder
  591. @item ac
  592. arithmetic coder
  593. @item raw
  594. raw (no encoding)
  595. @item rle
  596. run-length coder
  597. @item deflate
  598. deflate-based coder
  599. @end table
  600. @item context @var{integer} (@emph{encoding,video})
  601. Set context model.
  602. @item slice_flags @var{integer}
  603. @item xvmc_acceleration @var{integer}
  604. @item mbd @var{integer} (@emph{encoding,video})
  605. Set macroblock decision algorithm (high quality mode).
  606. Possible values:
  607. @table @samp
  608. @item simple
  609. use mbcmp (default)
  610. @item bits
  611. use fewest bits
  612. @item rd
  613. use best rate distortion
  614. @end table
  615. @item stream_codec_tag @var{integer}
  616. @item sc_threshold @var{integer} (@emph{encoding,video})
  617. Set scene change threshold.
  618. @item lmin @var{integer} (@emph{encoding,video})
  619. Set min lagrange factor (VBR).
  620. @item lmax @var{integer} (@emph{encoding,video})
  621. Set max lagrange factor (VBR).
  622. @item nr @var{integer} (@emph{encoding,video})
  623. Set noise reduction.
  624. @item rc_init_occupancy @var{integer} (@emph{encoding,video})
  625. Set number of bits which should be loaded into the rc buffer before
  626. decoding starts.
  627. @item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
  628. Possible values:
  629. @table @samp
  630. @item fast
  631. Allow non spec compliant speedup tricks.
  632. @item sgop
  633. Deprecated, use mpegvideo private options instead.
  634. @item noout
  635. Skip bitstream encoding.
  636. @item ignorecrop
  637. Ignore cropping information from sps.
  638. @item local_header
  639. Place global headers at every keyframe instead of in extradata.
  640. @item chunks
  641. Frame data might be split into multiple chunks.
  642. @item showall
  643. Show all frames before the first keyframe.
  644. @item skiprd
  645. Deprecated, use mpegvideo private options instead.
  646. @item export_mvs
  647. Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
  648. for codecs that support it. See also @file{doc/examples/export_mvs.c}.
  649. @end table
  650. @item error @var{integer} (@emph{encoding,video})
  651. @item qns @var{integer} (@emph{encoding,video})
  652. Deprecated, use mpegvideo private options instead.
  653. @item threads @var{integer} (@emph{decoding/encoding,video})
  654. Possible values:
  655. @table @samp
  656. @item auto
  657. detect a good number of threads
  658. @end table
  659. @item me_threshold @var{integer} (@emph{encoding,video})
  660. Set motion estimation threshold.
  661. @item mb_threshold @var{integer} (@emph{encoding,video})
  662. Set macroblock threshold.
  663. @item dc @var{integer} (@emph{encoding,video})
  664. Set intra_dc_precision.
  665. @item nssew @var{integer} (@emph{encoding,video})
  666. Set nsse weight.
  667. @item skip_top @var{integer} (@emph{decoding,video})
  668. Set number of macroblock rows at the top which are skipped.
  669. @item skip_bottom @var{integer} (@emph{decoding,video})
  670. Set number of macroblock rows at the bottom which are skipped.
  671. @item profile @var{integer} (@emph{encoding,audio,video})
  672. Possible values:
  673. @table @samp
  674. @item unknown
  675. @item aac_main
  676. @item aac_low
  677. @item aac_ssr
  678. @item aac_ltp
  679. @item aac_he
  680. @item aac_he_v2
  681. @item aac_ld
  682. @item aac_eld
  683. @item mpeg2_aac_low
  684. @item mpeg2_aac_he
  685. @item mpeg4_sp
  686. @item mpeg4_core
  687. @item mpeg4_main
  688. @item mpeg4_asp
  689. @item dts
  690. @item dts_es
  691. @item dts_96_24
  692. @item dts_hd_hra
  693. @item dts_hd_ma
  694. @end table
  695. @item level @var{integer} (@emph{encoding,audio,video})
  696. Possible values:
  697. @table @samp
  698. @item unknown
  699. @end table
  700. @item lowres @var{integer} (@emph{decoding,audio,video})
  701. Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
  702. @item skip_threshold @var{integer} (@emph{encoding,video})
  703. Set frame skip threshold.
  704. @item skip_factor @var{integer} (@emph{encoding,video})
  705. Set frame skip factor.
  706. @item skip_exp @var{integer} (@emph{encoding,video})
  707. Set frame skip exponent.
  708. Negative values behave identical to the corresponding positive ones, except
  709. that the score is normalized.
  710. Positive values exist primarily for compatibility reasons and are not so useful.
  711. @item skipcmp @var{integer} (@emph{encoding,video})
  712. Set frame skip compare function.
  713. Possible values:
  714. @table @samp
  715. @item sad
  716. sum of absolute differences, fast (default)
  717. @item sse
  718. sum of squared errors
  719. @item satd
  720. sum of absolute Hadamard transformed differences
  721. @item dct
  722. sum of absolute DCT transformed differences
  723. @item psnr
  724. sum of squared quantization errors (avoid, low quality)
  725. @item bit
  726. number of bits needed for the block
  727. @item rd
  728. rate distortion optimal, slow
  729. @item zero
  730. 0
  731. @item vsad
  732. sum of absolute vertical differences
  733. @item vsse
  734. sum of squared vertical differences
  735. @item nsse
  736. noise preserving sum of squared differences
  737. @item w53
  738. 5/3 wavelet, only used in snow
  739. @item w97
  740. 9/7 wavelet, only used in snow
  741. @item dctmax
  742. @item chroma
  743. @end table
  744. @item border_mask @var{float} (@emph{encoding,video})
  745. Increase the quantizer for macroblocks close to borders.
  746. @item mblmin @var{integer} (@emph{encoding,video})
  747. Set min macroblock lagrange factor (VBR).
  748. @item mblmax @var{integer} (@emph{encoding,video})
  749. Set max macroblock lagrange factor (VBR).
  750. @item mepc @var{integer} (@emph{encoding,video})
  751. Set motion estimation bitrate penalty compensation (1.0 = 256).
  752. @item skip_loop_filter @var{integer} (@emph{decoding,video})
  753. @item skip_idct @var{integer} (@emph{decoding,video})
  754. @item skip_frame @var{integer} (@emph{decoding,video})
  755. Make decoder discard processing depending on the frame type selected
  756. by the option value.
  757. @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
  758. skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
  759. Possible values:
  760. @table @samp
  761. @item none
  762. Discard no frame.
  763. @item default
  764. Discard useless frames like 0-sized frames.
  765. @item noref
  766. Discard all non-reference frames.
  767. @item bidir
  768. Discard all bidirectional frames.
  769. @item nokey
  770. Discard all frames excepts keyframes.
  771. @item all
  772. Discard all frames.
  773. @end table
  774. Default value is @samp{default}.
  775. @item bidir_refine @var{integer} (@emph{encoding,video})
  776. Refine the two motion vectors used in bidirectional macroblocks.
  777. @item brd_scale @var{integer} (@emph{encoding,video})
  778. Downscale frames for dynamic B-frame decision.
  779. @item keyint_min @var{integer} (@emph{encoding,video})
  780. Set minimum interval between IDR-frames.
  781. @item refs @var{integer} (@emph{encoding,video})
  782. Set reference frames to consider for motion compensation.
  783. @item chromaoffset @var{integer} (@emph{encoding,video})
  784. Set chroma qp offset from luma.
  785. @item trellis @var{integer} (@emph{encoding,audio,video})
  786. Set rate-distortion optimal quantization.
  787. @item sc_factor @var{integer} (@emph{encoding,video})
  788. Set value multiplied by qscale for each frame and added to
  789. scene_change_score.
  790. @item mv0_threshold @var{integer} (@emph{encoding,video})
  791. @item b_sensitivity @var{integer} (@emph{encoding,video})
  792. Adjust sensitivity of b_frame_strategy 1.
  793. @item compression_level @var{integer} (@emph{encoding,audio,video})
  794. @item min_prediction_order @var{integer} (@emph{encoding,audio})
  795. @item max_prediction_order @var{integer} (@emph{encoding,audio})
  796. @item timecode_frame_start @var{integer} (@emph{encoding,video})
  797. Set GOP timecode frame start number, in non drop frame format.
  798. @item request_channels @var{integer} (@emph{decoding,audio})
  799. Set desired number of audio channels.
  800. @item bits_per_raw_sample @var{integer}
  801. @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
  802. Possible values:
  803. @table @samp
  804. @end table
  805. @item request_channel_layout @var{integer} (@emph{decoding,audio})
  806. Possible values:
  807. @table @samp
  808. @end table
  809. @item rc_max_vbv_use @var{float} (@emph{encoding,video})
  810. @item rc_min_vbv_use @var{float} (@emph{encoding,video})
  811. @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
  812. @item color_primaries @var{integer} (@emph{decoding/encoding,video})
  813. @item color_trc @var{integer} (@emph{decoding/encoding,video})
  814. @item colorspace @var{integer} (@emph{decoding/encoding,video})
  815. @item color_range @var{integer} (@emph{decoding/encoding,video})
  816. @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
  817. @item log_level_offset @var{integer}
  818. Set the log level offset.
  819. @item slices @var{integer} (@emph{encoding,video})
  820. Number of slices, used in parallelized encoding.
  821. @item thread_type @var{flags} (@emph{decoding/encoding,video})
  822. Select which multithreading methods to use.
  823. Use of @samp{frame} will increase decoding delay by one frame per
  824. thread, so clients which cannot provide future frames should not use
  825. it.
  826. Possible values:
  827. @table @samp
  828. @item slice
  829. Decode more than one part of a single frame at once.
  830. Multithreading using slices works only when the video was encoded with
  831. slices.
  832. @item frame
  833. Decode more than one frame at once.
  834. @end table
  835. Default value is @samp{slice+frame}.
  836. @item audio_service_type @var{integer} (@emph{encoding,audio})
  837. Set audio service type.
  838. Possible values:
  839. @table @samp
  840. @item ma
  841. Main Audio Service
  842. @item ef
  843. Effects
  844. @item vi
  845. Visually Impaired
  846. @item hi
  847. Hearing Impaired
  848. @item di
  849. Dialogue
  850. @item co
  851. Commentary
  852. @item em
  853. Emergency
  854. @item vo
  855. Voice Over
  856. @item ka
  857. Karaoke
  858. @end table
  859. @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
  860. Set sample format audio decoders should prefer. Default value is
  861. @code{none}.
  862. @item pkt_timebase @var{rational number}
  863. @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
  864. Set the input subtitles character encoding.
  865. @item field_order @var{field_order} (@emph{video})
  866. Set/override the field order of the video.
  867. Possible values:
  868. @table @samp
  869. @item progressive
  870. Progressive video
  871. @item tt
  872. Interlaced video, top field coded and displayed first
  873. @item bb
  874. Interlaced video, bottom field coded and displayed first
  875. @item tb
  876. Interlaced video, top coded first, bottom displayed first
  877. @item bt
  878. Interlaced video, bottom coded first, top displayed first
  879. @end table
  880. @item skip_alpha @var{integer} (@emph{decoding,video})
  881. Set to 1 to disable processing alpha (transparency). This works like the
  882. @samp{gray} flag in the @option{flags} option which skips chroma information
  883. instead of alpha. Default is 0.
  884. @item codec_whitelist @var{list} (@emph{input})
  885. "," separated List of allowed decoders. By default all are allowed.
  886. @item dump_separator @var{string} (@emph{input})
  887. Separator used to separate the fields printed on the command line about the
  888. Stream parameters.
  889. For example to separate the fields with newlines and indention:
  890. @example
  891. ffprobe -dump_separator "
  892. " -i ~/videos/matrixbench_mpeg2.mpg
  893. @end example
  894. @end table
  895. @c man end CODEC OPTIONS
  896. @ifclear config-writeonly
  897. @include decoders.texi
  898. @end ifclear
  899. @ifclear config-readonly
  900. @include encoders.texi
  901. @end ifclear