]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
avcodec/options: deprecate avcodec_get_frame_class()
[ffmpeg] / doc / codecs.texi
1 @anchor{codec-options}
2 @chapter Codec Options
3 @c man begin CODEC OPTIONS
4
5 libavcodec provides some generic global options, which can be set on
6 all the encoders and decoders. In addition each codec may support
7 so-called private options, which are specific for a given codec.
8
9 Sometimes, a global option may only affect a specific kind of codec,
10 and may be nonsensical or ignored by another, so you need to be aware
11 of the meaning of the specified options. Also some options are
12 meant only for decoding or encoding.
13
14 Options may be set by specifying -@var{option} @var{value} in the
15 FFmpeg tools, or by setting the value explicitly in the
16 @code{AVCodecContext} options or using the @file{libavutil/opt.h} API
17 for programmatic use.
18
19 The list of supported options follow:
20
21 @table @option
22 @item b @var{integer} (@emph{encoding,audio,video})
23 Set bitrate in bits/s. Default value is 200K.
24
25 @item ab @var{integer} (@emph{encoding,audio})
26 Set audio bitrate (in bits/s). Default value is 128K.
27
28 @item bt @var{integer} (@emph{encoding,video})
29 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
30 tolerance specifies how far ratecontrol is willing to deviate from the
31 target average bitrate value. This is not related to min/max
32 bitrate. Lowering tolerance too much has an adverse effect on quality.
33
34 @item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
35 Set generic flags.
36
37 Possible values:
38 @table @samp
39 @item mv4
40 Use four motion vector by macroblock (mpeg4).
41 @item qpel
42 Use 1/4 pel motion compensation.
43 @item loop
44 Use loop filter.
45 @item qscale
46 Use fixed qscale.
47 @item pass1
48 Use internal 2pass ratecontrol in first pass mode.
49 @item pass2
50 Use internal 2pass ratecontrol in second pass mode.
51 @item gray
52 Only decode/encode grayscale.
53 @item emu_edge
54 Do not draw edges.
55 @item psnr
56 Set error[?] variables during encoding.
57 @item truncated
58 Input bitstream might be randomly truncated.
59 @item drop_changed
60 Don't output frames whose parameters differ from first decoded frame in stream.
61 Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
62
63 @item ildct
64 Use interlaced DCT.
65 @item low_delay
66 Force low delay.
67 @item global_header
68 Place global headers in extradata instead of every keyframe.
69 @item bitexact
70 Only write platform-, build- and time-independent data. (except (I)DCT).
71 This ensures that file and data checksums are reproducible and match between
72 platforms. Its primary use is for regression testing.
73 @item aic
74 Apply H263 advanced intra coding / mpeg4 ac prediction.
75 @item cbp
76 Deprecated, use mpegvideo private options instead.
77 @item qprd
78 Deprecated, use mpegvideo private options instead.
79 @item ilme
80 Apply interlaced motion estimation.
81 @item cgop
82 Use closed gop.
83 @item output_corrupt
84 Output even potentially corrupted frames.
85 @end table
86
87 @item me_method @var{integer} (@emph{encoding,video})
88 Set motion estimation method.
89
90 Possible values:
91 @table @samp
92 @item zero
93 zero motion estimation (fastest)
94 @item full
95 full motion estimation (slowest)
96 @item epzs
97 EPZS motion estimation (default)
98 @item esa
99 esa motion estimation (alias for full)
100 @item tesa
101 tesa motion estimation
102 @item dia
103 dia motion estimation (alias for epzs)
104 @item log
105 log motion estimation
106 @item phods
107 phods motion estimation
108 @item x1
109 X1 motion estimation
110 @item hex
111 hex motion estimation
112 @item umh
113 umh motion estimation
114 @item iter
115 iter motion estimation
116 @end table
117
118 @item extradata_size @var{integer}
119 Set extradata size.
120
121 @item time_base @var{rational number}
122 Set codec time base.
123
124 It is the fundamental unit of time (in seconds) in terms of which
125 frame timestamps are represented. For fixed-fps content, timebase
126 should be @code{1 / frame_rate} and timestamp increments should be
127 identically 1.
128
129 @item g @var{integer} (@emph{encoding,video})
130 Set the group of picture (GOP) size. Default value is 12.
131
132 @item ar @var{integer} (@emph{decoding/encoding,audio})
133 Set audio sampling rate (in Hz).
134
135 @item ac @var{integer} (@emph{decoding/encoding,audio})
136 Set number of audio channels.
137
138 @item cutoff @var{integer} (@emph{encoding,audio})
139 Set cutoff bandwidth. (Supported only by selected encoders, see
140 their respective documentation sections.)
141
142 @item frame_size @var{integer} (@emph{encoding,audio})
143 Set audio frame size.
144
145 Each submitted frame except the last must contain exactly frame_size
146 samples per channel. May be 0 when the codec has
147 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
148 restricted. It is set by some decoders to indicate constant frame
149 size.
150
151 @item frame_number @var{integer}
152 Set the frame number.
153
154 @item delay @var{integer}
155
156 @item qcomp @var{float} (@emph{encoding,video})
157 Set video quantizer scale compression (VBR). It is used as a constant
158 in the ratecontrol equation. Recommended range for default rc_eq:
159 0.0-1.0.
160
161 @item qblur @var{float} (@emph{encoding,video})
162 Set video quantizer scale blur (VBR).
163
164 @item qmin @var{integer} (@emph{encoding,video})
165 Set min video quantizer scale (VBR). Must be included between -1 and
166 69, default value is 2.
167
168 @item qmax @var{integer} (@emph{encoding,video})
169 Set max video quantizer scale (VBR). Must be included between -1 and
170 1024, default value is 31.
171
172 @item qdiff @var{integer} (@emph{encoding,video})
173 Set max difference between the quantizer scale (VBR).
174
175 @item bf @var{integer} (@emph{encoding,video})
176 Set max number of B frames between non-B-frames.
177
178 Must be an integer between -1 and 16. 0 means that B-frames are
179 disabled. If a value of -1 is used, it will choose an automatic value
180 depending on the encoder.
181
182 Default value is 0.
183
184 @item b_qfactor @var{float} (@emph{encoding,video})
185 Set qp factor between P and B frames.
186
187 @item rc_strategy @var{integer} (@emph{encoding,video})
188 Set ratecontrol method.
189
190 @item b_strategy @var{integer} (@emph{encoding,video})
191 Set strategy to choose between I/P/B-frames.
192
193 @item ps @var{integer} (@emph{encoding,video})
194 Set RTP payload size in bytes.
195
196 @item mv_bits @var{integer}
197 @item header_bits @var{integer}
198 @item i_tex_bits @var{integer}
199 @item p_tex_bits @var{integer}
200 @item i_count @var{integer}
201 @item p_count @var{integer}
202 @item skip_count @var{integer}
203 @item misc_bits @var{integer}
204 @item frame_bits @var{integer}
205 @item codec_tag @var{integer}
206 @item bug @var{flags} (@emph{decoding,video})
207 Workaround not auto detected encoder bugs.
208
209 Possible values:
210 @table @samp
211 @item autodetect
212
213 @item old_msmpeg4
214 some old lavc generated msmpeg4v3 files (no autodetection)
215 @item xvid_ilace
216 Xvid interlacing bug (autodetected if fourcc==XVIX)
217 @item ump4
218 (autodetected if fourcc==UMP4)
219 @item no_padding
220 padding bug (autodetected)
221 @item amv
222
223 @item ac_vlc
224 illegal vlc bug (autodetected per fourcc)
225 @item qpel_chroma
226
227 @item std_qpel
228 old standard qpel (autodetected per fourcc/version)
229 @item qpel_chroma2
230
231 @item direct_blocksize
232 direct-qpel-blocksize bug (autodetected per fourcc/version)
233 @item edge
234 edge padding bug (autodetected per fourcc/version)
235 @item hpel_chroma
236
237 @item dc_clip
238
239 @item ms
240 Workaround various bugs in microsoft broken decoders.
241 @item trunc
242 trancated frames
243 @end table
244
245 @item lelim @var{integer} (@emph{encoding,video})
246 Set single coefficient elimination threshold for luminance (negative
247 values also consider DC coefficient).
248
249 @item celim @var{integer} (@emph{encoding,video})
250 Set single coefficient elimination threshold for chrominance (negative
251 values also consider dc coefficient)
252
253 @item strict @var{integer} (@emph{decoding/encoding,audio,video})
254 Specify how strictly to follow the standards.
255
256 Possible values:
257 @table @samp
258 @item very
259 strictly conform to an older more strict version of the spec or reference software
260 @item strict
261 strictly conform to all the things in the spec no matter what consequences
262 @item normal
263
264 @item unofficial
265 allow unofficial extensions
266 @item experimental
267 allow non standardized experimental things, experimental
268 (unfinished/work in progress/not well tested) decoders and encoders.
269 Note: experimental decoders can pose a security risk, do not use this for
270 decoding untrusted input.
271 @end table
272
273 @item b_qoffset @var{float} (@emph{encoding,video})
274 Set QP offset between P and B frames.
275
276 @item err_detect @var{flags} (@emph{decoding,audio,video})
277 Set error detection flags.
278
279 Possible values:
280 @table @samp
281 @item crccheck
282 verify embedded CRCs
283 @item bitstream
284 detect bitstream specification deviations
285 @item buffer
286 detect improper bitstream length
287 @item explode
288 abort decoding on minor error detection
289 @item ignore_err
290 ignore decoding errors, and continue decoding.
291 This is useful if you want to analyze the content of a video and thus want
292 everything to be decoded no matter what. This option will not result in a video
293 that is pleasing to watch in case of errors.
294 @item careful
295 consider things that violate the spec and have not been seen in the wild as errors
296 @item compliant
297 consider all spec non compliancies as errors
298 @item aggressive
299 consider things that a sane encoder should not do as an error
300 @end table
301
302 @item has_b_frames @var{integer}
303
304 @item block_align @var{integer}
305
306 @item mpeg_quant @var{integer} (@emph{encoding,video})
307 Use MPEG quantizers instead of H.263.
308
309 @item qsquish @var{float} (@emph{encoding,video})
310 How to keep quantizer between qmin and qmax (0 = clip, 1 = use
311 differentiable function).
312
313 @item rc_qmod_amp @var{float} (@emph{encoding,video})
314 Set experimental quantizer modulation.
315
316 @item rc_qmod_freq @var{integer} (@emph{encoding,video})
317 Set experimental quantizer modulation.
318
319 @item rc_override_count @var{integer}
320
321 @item rc_eq @var{string} (@emph{encoding,video})
322 Set rate control equation. When computing the expression, besides the
323 standard functions defined in the section 'Expression Evaluation', the
324 following functions are available: bits2qp(bits), qp2bits(qp). Also
325 the following constants are available: iTex pTex tex mv fCode iCount
326 mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
327 avgTex.
328
329 @item maxrate @var{integer} (@emph{encoding,audio,video})
330 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
331
332 @item minrate @var{integer} (@emph{encoding,audio,video})
333 Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
334 encode. It is of little use elsewise.
335
336 @item bufsize @var{integer} (@emph{encoding,audio,video})
337 Set ratecontrol buffer size (in bits).
338
339 @item rc_buf_aggressivity @var{float} (@emph{encoding,video})
340 Currently useless.
341
342 @item i_qfactor @var{float} (@emph{encoding,video})
343 Set QP factor between P and I frames.
344
345 @item i_qoffset @var{float} (@emph{encoding,video})
346 Set QP offset between P and I frames.
347
348 @item rc_init_cplx @var{float} (@emph{encoding,video})
349 Set initial complexity for 1-pass encoding.
350
351 @item dct @var{integer} (@emph{encoding,video})
352 Set DCT algorithm.
353
354 Possible values:
355 @table @samp
356 @item auto
357 autoselect a good one (default)
358 @item fastint
359 fast integer
360 @item int
361 accurate integer
362 @item mmx
363
364 @item altivec
365
366 @item faan
367 floating point AAN DCT
368 @end table
369
370 @item lumi_mask @var{float} (@emph{encoding,video})
371 Compress bright areas stronger than medium ones.
372
373 @item tcplx_mask @var{float} (@emph{encoding,video})
374 Set temporal complexity masking.
375
376 @item scplx_mask @var{float} (@emph{encoding,video})
377 Set spatial complexity masking.
378
379 @item p_mask @var{float} (@emph{encoding,video})
380 Set inter masking.
381
382 @item dark_mask @var{float} (@emph{encoding,video})
383 Compress dark areas stronger than medium ones.
384
385 @item idct @var{integer} (@emph{decoding/encoding,video})
386 Select IDCT implementation.
387
388 Possible values:
389 @table @samp
390 @item auto
391
392 @item int
393
394 @item simple
395
396 @item simplemmx
397
398 @item simpleauto
399 Automatically pick a IDCT compatible with the simple one
400
401 @item arm
402
403 @item altivec
404
405 @item sh4
406
407 @item simplearm
408
409 @item simplearmv5te
410
411 @item simplearmv6
412
413 @item simpleneon
414
415 @item simplealpha
416
417 @item ipp
418
419 @item xvidmmx
420
421 @item faani
422 floating point AAN IDCT
423 @end table
424
425 @item slice_count @var{integer}
426
427 @item ec @var{flags} (@emph{decoding,video})
428 Set error concealment strategy.
429
430 Possible values:
431 @table @samp
432 @item guess_mvs
433 iterative motion vector (MV) search (slow)
434 @item deblock
435 use strong deblock filter for damaged MBs
436 @item favor_inter
437 favor predicting from the previous frame instead of the current
438 @end table
439
440 @item bits_per_coded_sample @var{integer}
441
442 @item pred @var{integer} (@emph{encoding,video})
443 Set prediction method.
444
445 Possible values:
446 @table @samp
447 @item left
448
449 @item plane
450
451 @item median
452
453 @end table
454
455 @item aspect @var{rational number} (@emph{encoding,video})
456 Set sample aspect ratio.
457
458 @item sar @var{rational number} (@emph{encoding,video})
459 Set sample aspect ratio. Alias to @var{aspect}.
460
461 @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
462 Print specific debug info.
463
464 Possible values:
465 @table @samp
466 @item pict
467 picture info
468 @item rc
469 rate control
470 @item bitstream
471
472 @item mb_type
473 macroblock (MB) type
474 @item qp
475 per-block quantization parameter (QP)
476 @item dct_coeff
477
478 @item green_metadata
479 display complexity metadata for the upcoming frame, GoP or for a given duration.
480
481 @item skip
482
483 @item startcode
484
485 @item er
486 error recognition
487 @item mmco
488 memory management control operations (H.264)
489 @item bugs
490
491 @item buffers
492 picture buffer allocations
493 @item thread_ops
494 threading operations
495 @item nomc
496 skip motion compensation
497 @end table
498
499 @item cmp @var{integer} (@emph{encoding,video})
500 Set full pel me compare function.
501
502 Possible values:
503 @table @samp
504 @item sad
505 sum of absolute differences, fast (default)
506 @item sse
507 sum of squared errors
508 @item satd
509 sum of absolute Hadamard transformed differences
510 @item dct
511 sum of absolute DCT transformed differences
512 @item psnr
513 sum of squared quantization errors (avoid, low quality)
514 @item bit
515 number of bits needed for the block
516 @item rd
517 rate distortion optimal, slow
518 @item zero
519 0
520 @item vsad
521 sum of absolute vertical differences
522 @item vsse
523 sum of squared vertical differences
524 @item nsse
525 noise preserving sum of squared differences
526 @item w53
527 5/3 wavelet, only used in snow
528 @item w97
529 9/7 wavelet, only used in snow
530 @item dctmax
531
532 @item chroma
533
534 @end table
535
536 @item subcmp @var{integer} (@emph{encoding,video})
537 Set sub pel me compare function.
538
539 Possible values:
540 @table @samp
541 @item sad
542 sum of absolute differences, fast (default)
543 @item sse
544 sum of squared errors
545 @item satd
546 sum of absolute Hadamard transformed differences
547 @item dct
548 sum of absolute DCT transformed differences
549 @item psnr
550 sum of squared quantization errors (avoid, low quality)
551 @item bit
552 number of bits needed for the block
553 @item rd
554 rate distortion optimal, slow
555 @item zero
556 0
557 @item vsad
558 sum of absolute vertical differences
559 @item vsse
560 sum of squared vertical differences
561 @item nsse
562 noise preserving sum of squared differences
563 @item w53
564 5/3 wavelet, only used in snow
565 @item w97
566 9/7 wavelet, only used in snow
567 @item dctmax
568
569 @item chroma
570
571 @end table
572
573 @item mbcmp @var{integer} (@emph{encoding,video})
574 Set macroblock compare function.
575
576 Possible values:
577 @table @samp
578 @item sad
579 sum of absolute differences, fast (default)
580 @item sse
581 sum of squared errors
582 @item satd
583 sum of absolute Hadamard transformed differences
584 @item dct
585 sum of absolute DCT transformed differences
586 @item psnr
587 sum of squared quantization errors (avoid, low quality)
588 @item bit
589 number of bits needed for the block
590 @item rd
591 rate distortion optimal, slow
592 @item zero
593 0
594 @item vsad
595 sum of absolute vertical differences
596 @item vsse
597 sum of squared vertical differences
598 @item nsse
599 noise preserving sum of squared differences
600 @item w53
601 5/3 wavelet, only used in snow
602 @item w97
603 9/7 wavelet, only used in snow
604 @item dctmax
605
606 @item chroma
607
608 @end table
609
610 @item ildctcmp @var{integer} (@emph{encoding,video})
611 Set interlaced dct compare function.
612
613 Possible values:
614 @table @samp
615 @item sad
616 sum of absolute differences, fast (default)
617 @item sse
618 sum of squared errors
619 @item satd
620 sum of absolute Hadamard transformed differences
621 @item dct
622 sum of absolute DCT transformed differences
623 @item psnr
624 sum of squared quantization errors (avoid, low quality)
625 @item bit
626 number of bits needed for the block
627 @item rd
628 rate distortion optimal, slow
629 @item zero
630 0
631 @item vsad
632 sum of absolute vertical differences
633 @item vsse
634 sum of squared vertical differences
635 @item nsse
636 noise preserving sum of squared differences
637 @item w53
638 5/3 wavelet, only used in snow
639 @item w97
640 9/7 wavelet, only used in snow
641 @item dctmax
642
643 @item chroma
644
645 @end table
646
647 @item dia_size @var{integer} (@emph{encoding,video})
648 Set diamond type & size for motion estimation.
649 @table @samp
650 @item (1024, INT_MAX)
651 full motion estimation(slowest)
652 @item (768, 1024]
653 umh motion estimation
654 @item (512, 768]
655 hex motion estimation
656 @item (256, 512]
657 l2s diamond motion estimation
658 @item [2,256]
659 var diamond motion estimation
660 @item (-1,  2)
661 small diamond motion estimation
662 @item -1
663 funny diamond motion estimation
664 @item (INT_MIN, -1)
665 sab diamond motion estimation
666 @end table
667
668 @item last_pred @var{integer} (@emph{encoding,video})
669 Set amount of motion predictors from the previous frame.
670
671 @item preme @var{integer} (@emph{encoding,video})
672 Set pre motion estimation.
673
674 @item precmp @var{integer} (@emph{encoding,video})
675 Set pre motion estimation compare function.
676
677 Possible values:
678 @table @samp
679 @item sad
680 sum of absolute differences, fast (default)
681 @item sse
682 sum of squared errors
683 @item satd
684 sum of absolute Hadamard transformed differences
685 @item dct
686 sum of absolute DCT transformed differences
687 @item psnr
688 sum of squared quantization errors (avoid, low quality)
689 @item bit
690 number of bits needed for the block
691 @item rd
692 rate distortion optimal, slow
693 @item zero
694 0
695 @item vsad
696 sum of absolute vertical differences
697 @item vsse
698 sum of squared vertical differences
699 @item nsse
700 noise preserving sum of squared differences
701 @item w53
702 5/3 wavelet, only used in snow
703 @item w97
704 9/7 wavelet, only used in snow
705 @item dctmax
706
707 @item chroma
708
709 @end table
710
711 @item pre_dia_size @var{integer} (@emph{encoding,video})
712 Set diamond type & size for motion estimation pre-pass.
713
714 @item subq @var{integer} (@emph{encoding,video})
715 Set sub pel motion estimation quality.
716
717 @item dtg_active_format @var{integer}
718
719 @item me_range @var{integer} (@emph{encoding,video})
720 Set limit motion vectors range (1023 for DivX player).
721
722 @item ibias @var{integer} (@emph{encoding,video})
723 Set intra quant bias.
724
725 @item pbias @var{integer} (@emph{encoding,video})
726 Set inter quant bias.
727
728 @item color_table_id @var{integer}
729
730 @item global_quality @var{integer} (@emph{encoding,audio,video})
731
732 @item coder @var{integer} (@emph{encoding,video})
733
734 Possible values:
735 @table @samp
736 @item vlc
737 variable length coder / huffman coder
738 @item ac
739 arithmetic coder
740 @item raw
741 raw (no encoding)
742 @item rle
743 run-length coder
744 @item deflate
745 deflate-based coder
746 @end table
747
748 @item context @var{integer} (@emph{encoding,video})
749 Set context model.
750
751 @item slice_flags @var{integer}
752
753 @item mbd @var{integer} (@emph{encoding,video})
754 Set macroblock decision algorithm (high quality mode).
755
756 Possible values:
757 @table @samp
758 @item simple
759 use mbcmp (default)
760 @item bits
761 use fewest bits
762 @item rd
763 use best rate distortion
764 @end table
765
766 @item stream_codec_tag @var{integer}
767
768 @item sc_threshold @var{integer} (@emph{encoding,video})
769 Set scene change threshold.
770
771 @item lmin @var{integer} (@emph{encoding,video})
772 Set min lagrange factor (VBR).
773
774 @item lmax @var{integer} (@emph{encoding,video})
775 Set max lagrange factor (VBR).
776
777 @item nr @var{integer} (@emph{encoding,video})
778 Set noise reduction.
779
780 @item rc_init_occupancy @var{integer} (@emph{encoding,video})
781 Set number of bits which should be loaded into the rc buffer before
782 decoding starts.
783
784 @item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
785
786 Possible values:
787 @table @samp
788 @item fast
789 Allow non spec compliant speedup tricks.
790 @item noout
791 Skip bitstream encoding.
792 @item ignorecrop
793 Ignore cropping information from sps.
794 @item local_header
795 Place global headers at every keyframe instead of in extradata.
796 @item chunks
797 Frame data might be split into multiple chunks.
798 @item showall
799 Show all frames before the first keyframe.
800 @item export_mvs
801 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
802 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
803 @item skip_manual
804 Do not skip samples and export skip information as frame side data.
805 @item ass_ro_flush_noop
806 Do not reset ASS ReadOrder field on flush.
807 @end table
808
809 @item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
810
811 Possible values:
812 @table @samp
813 @item mvs
814 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
815 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
816 @item prft
817 Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
818 for codecs that support it.
819 @item venc_params
820 Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS})
821 for codecs that support it. At present, those are H.264 and VP9.
822 @item film_grain
823 Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}).
824 Supported at present by AV1 decoders.
825 @end table
826
827 @item error @var{integer} (@emph{encoding,video})
828
829 @item qns @var{integer} (@emph{encoding,video})
830 Deprecated, use mpegvideo private options instead.
831
832 @item threads @var{integer} (@emph{decoding/encoding,video})
833 Set the number of threads to be used, in case the selected codec
834 implementation supports multi-threading.
835
836 Possible values:
837 @table @samp
838 @item auto, 0
839 automatically select the number of threads to set
840 @end table
841
842 Default value is @samp{auto}.
843
844 @item me_threshold @var{integer} (@emph{encoding,video})
845 Set motion estimation threshold.
846
847 @item mb_threshold @var{integer} (@emph{encoding,video})
848 Set macroblock threshold.
849
850 @item dc @var{integer} (@emph{encoding,video})
851 Set intra_dc_precision.
852
853 @item nssew @var{integer} (@emph{encoding,video})
854 Set nsse weight.
855
856 @item skip_top @var{integer} (@emph{decoding,video})
857 Set number of macroblock rows at the top which are skipped.
858
859 @item skip_bottom @var{integer} (@emph{decoding,video})
860 Set number of macroblock rows at the bottom which are skipped.
861
862 @item profile @var{integer} (@emph{encoding,audio,video})
863
864 Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
865 profiles are documented in the relevant encoder documentation.
866
867 @item level @var{integer} (@emph{encoding,audio,video})
868
869 Possible values:
870 @table @samp
871 @item unknown
872
873 @end table
874
875 @item lowres @var{integer} (@emph{decoding,audio,video})
876 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
877
878 @item skip_threshold @var{integer} (@emph{encoding,video})
879 Set frame skip threshold.
880
881 @item skip_factor @var{integer} (@emph{encoding,video})
882 Set frame skip factor.
883
884 @item skip_exp @var{integer} (@emph{encoding,video})
885 Set frame skip exponent.
886 Negative values behave identical to the corresponding positive ones, except
887 that the score is normalized.
888 Positive values exist primarily for compatibility reasons and are not so useful.
889
890 @item skipcmp @var{integer} (@emph{encoding,video})
891 Set frame skip compare function.
892
893 Possible values:
894 @table @samp
895 @item sad
896 sum of absolute differences, fast (default)
897 @item sse
898 sum of squared errors
899 @item satd
900 sum of absolute Hadamard transformed differences
901 @item dct
902 sum of absolute DCT transformed differences
903 @item psnr
904 sum of squared quantization errors (avoid, low quality)
905 @item bit
906 number of bits needed for the block
907 @item rd
908 rate distortion optimal, slow
909 @item zero
910 0
911 @item vsad
912 sum of absolute vertical differences
913 @item vsse
914 sum of squared vertical differences
915 @item nsse
916 noise preserving sum of squared differences
917 @item w53
918 5/3 wavelet, only used in snow
919 @item w97
920 9/7 wavelet, only used in snow
921 @item dctmax
922
923 @item chroma
924
925 @end table
926
927 @item border_mask @var{float} (@emph{encoding,video})
928 Increase the quantizer for macroblocks close to borders.
929
930 @item mblmin @var{integer} (@emph{encoding,video})
931 Set min macroblock lagrange factor (VBR).
932
933 @item mblmax @var{integer} (@emph{encoding,video})
934 Set max macroblock lagrange factor (VBR).
935
936 @item mepc @var{integer} (@emph{encoding,video})
937 Set motion estimation bitrate penalty compensation (1.0 = 256).
938
939 @item skip_loop_filter @var{integer} (@emph{decoding,video})
940 @item skip_idct        @var{integer} (@emph{decoding,video})
941 @item skip_frame       @var{integer} (@emph{decoding,video})
942
943 Make decoder discard processing depending on the frame type selected
944 by the option value.
945
946 @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
947 skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
948
949 Possible values:
950 @table @samp
951 @item none
952 Discard no frame.
953
954 @item default
955 Discard useless frames like 0-sized frames.
956
957 @item noref
958 Discard all non-reference frames.
959
960 @item bidir
961 Discard all bidirectional frames.
962
963 @item nokey
964 Discard all frames excepts keyframes.
965
966 @item nointra
967 Discard all frames except I frames.
968
969 @item all
970 Discard all frames.
971 @end table
972
973 Default value is @samp{default}.
974
975 @item bidir_refine @var{integer} (@emph{encoding,video})
976 Refine the two motion vectors used in bidirectional macroblocks.
977
978 @item brd_scale @var{integer} (@emph{encoding,video})
979 Downscale frames for dynamic B-frame decision.
980
981 @item keyint_min @var{integer} (@emph{encoding,video})
982 Set minimum interval between IDR-frames.
983
984 @item refs @var{integer} (@emph{encoding,video})
985 Set reference frames to consider for motion compensation.
986
987 @item chromaoffset @var{integer} (@emph{encoding,video})
988 Set chroma qp offset from luma.
989
990 @item trellis @var{integer} (@emph{encoding,audio,video})
991 Set rate-distortion optimal quantization.
992
993 @item mv0_threshold @var{integer} (@emph{encoding,video})
994 @item b_sensitivity @var{integer} (@emph{encoding,video})
995 Adjust sensitivity of b_frame_strategy 1.
996
997 @item compression_level @var{integer} (@emph{encoding,audio,video})
998 @item min_prediction_order @var{integer} (@emph{encoding,audio})
999 @item max_prediction_order @var{integer} (@emph{encoding,audio})
1000 @item timecode_frame_start @var{integer} (@emph{encoding,video})
1001 Set GOP timecode frame start number, in non drop frame format.
1002
1003 @item request_channels @var{integer} (@emph{decoding,audio})
1004 Set desired number of audio channels.
1005
1006 @item bits_per_raw_sample @var{integer}
1007 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
1008
1009 Possible values:
1010 @table @samp
1011 @end table
1012 @item request_channel_layout @var{integer} (@emph{decoding,audio})
1013
1014 Possible values:
1015 @table @samp
1016 @end table
1017 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
1018 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
1019 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
1020
1021 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
1022 Possible values:
1023 @table @samp
1024 @item bt709
1025 BT.709
1026 @item bt470m
1027 BT.470 M
1028 @item bt470bg
1029 BT.470 BG
1030 @item smpte170m
1031 SMPTE 170 M
1032 @item smpte240m
1033 SMPTE 240 M
1034 @item film
1035 Film
1036 @item bt2020
1037 BT.2020
1038 @item smpte428
1039 @item smpte428_1
1040 SMPTE ST 428-1
1041 @item smpte431
1042 SMPTE 431-2
1043 @item smpte432
1044 SMPTE 432-1
1045 @item jedec-p22
1046 JEDEC P22
1047 @end table
1048
1049 @item color_trc @var{integer} (@emph{decoding/encoding,video})
1050 Possible values:
1051 @table @samp
1052 @item bt709
1053 BT.709
1054 @item gamma22
1055 BT.470 M
1056 @item gamma28
1057 BT.470 BG
1058 @item smpte170m
1059 SMPTE 170 M
1060 @item smpte240m
1061 SMPTE 240 M
1062 @item linear
1063 Linear
1064 @item log
1065 @item log100
1066 Log
1067 @item log_sqrt
1068 @item log316
1069 Log square root
1070 @item iec61966_2_4
1071 @item iec61966-2-4
1072 IEC 61966-2-4
1073 @item bt1361
1074 @item bt1361e
1075 BT.1361
1076 @item iec61966_2_1
1077 @item iec61966-2-1
1078 IEC 61966-2-1
1079 @item bt2020_10
1080 @item bt2020_10bit
1081 BT.2020 - 10 bit
1082 @item bt2020_12
1083 @item bt2020_12bit
1084 BT.2020 - 12 bit
1085 @item smpte2084
1086 SMPTE ST 2084
1087 @item smpte428
1088 @item smpte428_1
1089 SMPTE ST 428-1
1090 @item arib-std-b67
1091 ARIB STD-B67
1092 @end table
1093
1094 @item colorspace @var{integer} (@emph{decoding/encoding,video})
1095 Possible values:
1096 @table @samp
1097 @item rgb
1098 RGB
1099 @item bt709
1100 BT.709
1101 @item fcc
1102 FCC
1103 @item bt470bg
1104 BT.470 BG
1105 @item smpte170m
1106 SMPTE 170 M
1107 @item smpte240m
1108 SMPTE 240 M
1109 @item ycocg
1110 YCOCG
1111 @item bt2020nc
1112 @item bt2020_ncl
1113 BT.2020 NCL
1114 @item bt2020c
1115 @item bt2020_cl
1116 BT.2020 CL
1117 @item smpte2085
1118 SMPTE 2085
1119 @item chroma-derived-nc
1120 Chroma-derived NCL
1121 @item chroma-derived-c
1122 Chroma-derived CL
1123 @item ictcp
1124 ICtCp
1125 @end table
1126
1127 @item color_range @var{integer} (@emph{decoding/encoding,video})
1128 If used as input parameter, it serves as a hint to the decoder, which
1129 color_range the input has.
1130 Possible values:
1131 @table @samp
1132 @item tv
1133 @item mpeg
1134 MPEG (219*2^(n-8))
1135 @item pc
1136 @item jpeg
1137 JPEG (2^n-1)
1138 @end table
1139
1140 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1141 Possible values:
1142 @table @samp
1143 @item left
1144
1145 @item center
1146
1147 @item topleft
1148
1149 @item top
1150
1151 @item bottomleft
1152
1153 @item bottom
1154
1155 @end table
1156
1157 @item log_level_offset @var{integer}
1158 Set the log level offset.
1159
1160 @item slices @var{integer} (@emph{encoding,video})
1161 Number of slices, used in parallelized encoding.
1162
1163 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1164 Select which multithreading methods to use.
1165
1166 Use of @samp{frame} will increase decoding delay by one frame per
1167 thread, so clients which cannot provide future frames should not use
1168 it.
1169
1170 Possible values:
1171 @table @samp
1172 @item slice
1173 Decode more than one part of a single frame at once.
1174
1175 Multithreading using slices works only when the video was encoded with
1176 slices.
1177
1178 @item frame
1179 Decode more than one frame at once.
1180 @end table
1181
1182 Default value is @samp{slice+frame}.
1183
1184 @item audio_service_type @var{integer} (@emph{encoding,audio})
1185 Set audio service type.
1186
1187 Possible values:
1188 @table @samp
1189 @item ma
1190 Main Audio Service
1191 @item ef
1192 Effects
1193 @item vi
1194 Visually Impaired
1195 @item hi
1196 Hearing Impaired
1197 @item di
1198 Dialogue
1199 @item co
1200 Commentary
1201 @item em
1202 Emergency
1203 @item vo
1204 Voice Over
1205 @item ka
1206 Karaoke
1207 @end table
1208
1209 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1210 Set sample format audio decoders should prefer. Default value is
1211 @code{none}.
1212
1213 @item pkt_timebase @var{rational number}
1214
1215 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1216 Set the input subtitles character encoding.
1217
1218 @item field_order  @var{field_order} (@emph{video})
1219 Set/override the field order of the video.
1220 Possible values:
1221 @table @samp
1222 @item progressive
1223 Progressive video
1224 @item tt
1225 Interlaced video, top field coded and displayed first
1226 @item bb
1227 Interlaced video, bottom field coded and displayed first
1228 @item tb
1229 Interlaced video, top coded first, bottom displayed first
1230 @item bt
1231 Interlaced video, bottom coded first, top displayed first
1232 @end table
1233
1234 @item skip_alpha @var{bool} (@emph{decoding,video})
1235 Set to 1 to disable processing alpha (transparency). This works like the
1236 @samp{gray} flag in the @option{flags} option which skips chroma information
1237 instead of alpha. Default is 0.
1238
1239 @item codec_whitelist @var{list} (@emph{input})
1240 "," separated list of allowed decoders. By default all are allowed.
1241
1242 @item dump_separator @var{string} (@emph{input})
1243 Separator used to separate the fields printed on the command line about the
1244 Stream parameters.
1245 For example, to separate the fields with newlines and indentation:
1246 @example
1247 ffprobe -dump_separator "
1248                           "  -i ~/videos/matrixbench_mpeg2.mpg
1249 @end example
1250
1251 @item max_pixels @var{integer} (@emph{decoding/encoding,video})
1252 Maximum number of pixels per image. This value can be used to avoid out of
1253 memory failures due to large images.
1254
1255 @item apply_cropping @var{bool} (@emph{decoding,video})
1256 Enable cropping if cropping parameters are multiples of the required
1257 alignment for the left and top parameters. If the alignment is not met the
1258 cropping will be partially applied to maintain alignment.
1259 Default is 1 (enabled).
1260 Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
1261 CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
1262 decoders will not apply left/top Cropping.
1263
1264
1265 @end table
1266
1267 @c man end CODEC OPTIONS
1268
1269 @ifclear config-writeonly
1270 @include decoders.texi
1271 @end ifclear
1272 @ifclear config-readonly
1273 @include encoders.texi
1274 @end ifclear