X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=doc%2Fcodecs.texi;h=5e10020900159f770c3c280a9a44048d2f07d7a7;hb=d07534b5f5f20b4f780f5b0284aca6354da00695;hp=3770f4f53bdad6174fa4be7d64063b5f78b132a4;hpb=50ae1f7e0ff1fa00236622415039f7e28d919a25;p=ffmpeg diff --git a/doc/codecs.texi b/doc/codecs.texi index 3770f4f53bd..5e100209001 100644 --- a/doc/codecs.texi +++ b/doc/codecs.texi @@ -50,11 +50,13 @@ Use internal 2pass ratecontrol in first pass mode. Use internal 2pass ratecontrol in second pass mode. @item gray Only decode/encode grayscale. -@item emu_edge -Do not draw edges. @item psnr Set error[?] variables during encoding. @item truncated +Input bitstream might be randomly truncated. +@item drop_changed +Don't output frames whose parameters differ from first decoded frame in stream. +Error AVERROR_INPUT_CHANGED is returned when a frame is dropped. @item ildct Use interlaced DCT. @@ -68,50 +70,14 @@ This ensures that file and data checksums are reproducible and match between platforms. Its primary use is for regression testing. @item aic Apply H263 advanced intra coding / mpeg4 ac prediction. -@item cbp -Deprecated, use mpegvideo private options instead. -@item qprd -Deprecated, use mpegvideo private options instead. @item ilme Apply interlaced motion estimation. @item cgop Use closed gop. +@item output_corrupt +Output even potentially corrupted frames. @end table -@item me_method @var{integer} (@emph{encoding,video}) -Set motion estimation method. - -Possible values: -@table @samp -@item zero -zero motion estimation (fastest) -@item full -full motion estimation (slowest) -@item epzs -EPZS motion estimation (default) -@item esa -esa motion estimation (alias for full) -@item tesa -tesa motion estimation -@item dia -dia motion estimation (alias for epzs) -@item log -log motion estimation -@item phods -phods motion estimation -@item x1 -X1 motion estimation -@item hex -hex motion estimation -@item umh -umh motion estimation -@item iter -iter motion estimation -@end table - -@item extradata_size @var{integer} -Set extradata size. - @item time_base @var{rational number} Set codec time base. @@ -178,24 +144,6 @@ Default value is 0. @item b_qfactor @var{float} (@emph{encoding,video}) Set qp factor between P and B frames. -@item rc_strategy @var{integer} (@emph{encoding,video}) -Set ratecontrol method. - -@item b_strategy @var{integer} (@emph{encoding,video}) -Set strategy to choose between I/P/B-frames. - -@item ps @var{integer} (@emph{encoding,video}) -Set RTP payload size in bytes. - -@item mv_bits @var{integer} -@item header_bits @var{integer} -@item i_tex_bits @var{integer} -@item p_tex_bits @var{integer} -@item i_count @var{integer} -@item p_count @var{integer} -@item skip_count @var{integer} -@item misc_bits @var{integer} -@item frame_bits @var{integer} @item codec_tag @var{integer} @item bug @var{flags} (@emph{decoding,video}) Workaround not auto detected encoder bugs. @@ -204,8 +152,6 @@ Possible values: @table @samp @item autodetect -@item old_msmpeg4 -some old lavc generated msmpeg4v3 files (no autodetection) @item xvid_ilace Xvid interlacing bug (autodetected if fourcc==XVIX) @item ump4 @@ -214,8 +160,6 @@ Xvid interlacing bug (autodetected if fourcc==XVIX) padding bug (autodetected) @item amv -@item ac_vlc -illegal vlc bug (autodetected per fourcc) @item qpel_chroma @item std_qpel @@ -236,14 +180,6 @@ Workaround various bugs in microsoft broken decoders. trancated frames @end table -@item lelim @var{integer} (@emph{encoding,video}) -Set single coefficient elimination threshold for luminance (negative -values also consider DC coefficient). - -@item celim @var{integer} (@emph{encoding,video}) -Set single coefficient elimination threshold for chrominance (negative -values also consider dc coefficient) - @item strict @var{integer} (@emph{decoding/encoding,audio,video}) Specify how strictly to follow the standards. @@ -297,29 +233,8 @@ consider things that a sane encoder should not do as an error @item block_align @var{integer} -@item mpeg_quant @var{integer} (@emph{encoding,video}) -Use MPEG quantizers instead of H.263. - -@item qsquish @var{float} (@emph{encoding,video}) -How to keep quantizer between qmin and qmax (0 = clip, 1 = use -differentiable function). - -@item rc_qmod_amp @var{float} (@emph{encoding,video}) -Set experimental quantizer modulation. - -@item rc_qmod_freq @var{integer} (@emph{encoding,video}) -Set experimental quantizer modulation. - @item rc_override_count @var{integer} -@item rc_eq @var{string} (@emph{encoding,video}) -Set rate control equation. When computing the expression, besides the -standard functions defined in the section 'Expression Evaluation', the -following functions are available: bits2qp(bits), qp2bits(qp). Also -the following constants are available: iTex pTex tex mv fCode iCount -mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex -avgTex. - @item maxrate @var{integer} (@emph{encoding,audio,video}) Set max bitrate tolerance (in bits/s). Requires bufsize to be set. @@ -330,18 +245,12 @@ encode. It is of little use elsewise. @item bufsize @var{integer} (@emph{encoding,audio,video}) Set ratecontrol buffer size (in bits). -@item rc_buf_aggressivity @var{float} (@emph{encoding,video}) -Currently useless. - @item i_qfactor @var{float} (@emph{encoding,video}) Set QP factor between P and I frames. @item i_qoffset @var{float} (@emph{encoding,video}) Set QP offset between P and I frames. -@item rc_init_cplx @var{float} (@emph{encoding,video}) -Set initial complexity for 1-pass encoding. - @item dct @var{integer} (@emph{encoding,video}) Set DCT algorithm. @@ -406,11 +315,7 @@ Automatically pick a IDCT compatible with the simple one @item simpleneon -@item simplealpha - -@item ipp - -@item xvidmmx +@item xvid @item faani floating point AAN IDCT @@ -433,19 +338,6 @@ favor predicting from the previous frame instead of the current @item bits_per_coded_sample @var{integer} -@item pred @var{integer} (@emph{encoding,video}) -Set prediction method. - -Possible values: -@table @samp -@item left - -@item plane - -@item median - -@end table - @item aspect @var{rational number} (@emph{encoding,video}) Set sample aspect ratio. @@ -640,13 +532,28 @@ noise preserving sum of squared differences @item dia_size @var{integer} (@emph{encoding,video}) Set diamond type & size for motion estimation. +@table @samp +@item (1024, INT_MAX) +full motion estimation(slowest) +@item (768, 1024] +umh motion estimation +@item (512, 768] +hex motion estimation +@item (256, 512] +l2s diamond motion estimation +@item [2,256] +var diamond motion estimation +@item (-1, 2) +small diamond motion estimation +@item -1 +funny diamond motion estimation +@item (INT_MIN, -1) +sab diamond motion estimation +@end table @item last_pred @var{integer} (@emph{encoding,video}) Set amount of motion predictors from the previous frame. -@item preme @var{integer} (@emph{encoding,video}) -Set pre motion estimation. - @item precmp @var{integer} (@emph{encoding,video}) Set pre motion estimation compare function. @@ -690,40 +597,11 @@ Set diamond type & size for motion estimation pre-pass. @item subq @var{integer} (@emph{encoding,video}) Set sub pel motion estimation quality. -@item dtg_active_format @var{integer} - @item me_range @var{integer} (@emph{encoding,video}) Set limit motion vectors range (1023 for DivX player). -@item ibias @var{integer} (@emph{encoding,video}) -Set intra quant bias. - -@item pbias @var{integer} (@emph{encoding,video}) -Set inter quant bias. - -@item color_table_id @var{integer} - @item global_quality @var{integer} (@emph{encoding,audio,video}) -@item coder @var{integer} (@emph{encoding,video}) - -Possible values: -@table @samp -@item vlc -variable length coder / huffman coder -@item ac -arithmetic coder -@item raw -raw (no encoding) -@item rle -run-length coder -@item deflate -deflate-based coder -@end table - -@item context @var{integer} (@emph{encoding,video}) -Set context model. - @item slice_flags @var{integer} @item mbd @var{integer} (@emph{encoding,video}) @@ -739,32 +617,16 @@ use fewest bits use best rate distortion @end table -@item stream_codec_tag @var{integer} - -@item sc_threshold @var{integer} (@emph{encoding,video}) -Set scene change threshold. - -@item lmin @var{integer} (@emph{encoding,video}) -Set min lagrange factor (VBR). - -@item lmax @var{integer} (@emph{encoding,video}) -Set max lagrange factor (VBR). - -@item nr @var{integer} (@emph{encoding,video}) -Set noise reduction. - @item rc_init_occupancy @var{integer} (@emph{encoding,video}) Set number of bits which should be loaded into the rc buffer before decoding starts. -@item flags2 @var{flags} (@emph{decoding/encoding,audio,video}) +@item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles}) Possible values: @table @samp @item fast Allow non spec compliant speedup tricks. -@item sgop -Deprecated, use mpegvideo private options instead. @item noout Skip bitstream encoding. @item ignorecrop @@ -775,17 +637,32 @@ Place global headers at every keyframe instead of in extradata. Frame data might be split into multiple chunks. @item showall Show all frames before the first keyframe. -@item skiprd -Deprecated, use mpegvideo private options instead. @item export_mvs Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS}) for codecs that support it. See also @file{doc/examples/export_mvs.c}. +@item skip_manual +Do not skip samples and export skip information as frame side data. +@item ass_ro_flush_noop +Do not reset ASS ReadOrder field on flush. @end table -@item error @var{integer} (@emph{encoding,video}) +@item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles}) -@item qns @var{integer} (@emph{encoding,video}) -Deprecated, use mpegvideo private options instead. +Possible values: +@table @samp +@item mvs +Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS}) +for codecs that support it. See also @file{doc/examples/export_mvs.c}. +@item prft +Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT}) +for codecs that support it. +@item venc_params +Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS}) +for codecs that support it. At present, those are H.264 and VP9. +@item film_grain +Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}). +Supported at present by AV1 decoders. +@end table @item threads @var{integer} (@emph{decoding/encoding,video}) Set the number of threads to be used, in case the selected codec @@ -799,12 +676,6 @@ automatically select the number of threads to set Default value is @samp{auto}. -@item me_threshold @var{integer} (@emph{encoding,video}) -Set motion estimation threshold. - -@item mb_threshold @var{integer} (@emph{encoding,video}) -Set macroblock threshold. - @item dc @var{integer} (@emph{encoding,video}) Set intra_dc_precision. @@ -819,49 +690,8 @@ Set number of macroblock rows at the bottom which are skipped. @item profile @var{integer} (@emph{encoding,audio,video}) -Possible values: -@table @samp -@item unknown - -@item aac_main - -@item aac_low - -@item aac_ssr - -@item aac_ltp - -@item aac_he - -@item aac_he_v2 - -@item aac_ld - -@item aac_eld - -@item mpeg2_aac_low - -@item mpeg2_aac_he - -@item mpeg4_sp - -@item mpeg4_core - -@item mpeg4_main - -@item mpeg4_asp - -@item dts - -@item dts_es - -@item dts_96_24 - -@item dts_hd_hra - -@item dts_hd_ma - -@end table +Set encoder codec profile. Default value is @samp{unknown}. Encoder specific +profiles are documented in the relevant encoder documentation. @item level @var{integer} (@emph{encoding,audio,video}) @@ -874,67 +704,12 @@ Possible values: @item lowres @var{integer} (@emph{decoding,audio,video}) Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. -@item skip_threshold @var{integer} (@emph{encoding,video}) -Set frame skip threshold. - -@item skip_factor @var{integer} (@emph{encoding,video}) -Set frame skip factor. - -@item skip_exp @var{integer} (@emph{encoding,video}) -Set frame skip exponent. -Negative values behave identical to the corresponding positive ones, except -that the score is normalized. -Positive values exist primarily for compatibility reasons and are not so useful. - -@item skipcmp @var{integer} (@emph{encoding,video}) -Set frame skip compare function. - -Possible values: -@table @samp -@item sad -sum of absolute differences, fast (default) -@item sse -sum of squared errors -@item satd -sum of absolute Hadamard transformed differences -@item dct -sum of absolute DCT transformed differences -@item psnr -sum of squared quantization errors (avoid, low quality) -@item bit -number of bits needed for the block -@item rd -rate distortion optimal, slow -@item zero -0 -@item vsad -sum of absolute vertical differences -@item vsse -sum of squared vertical differences -@item nsse -noise preserving sum of squared differences -@item w53 -5/3 wavelet, only used in snow -@item w97 -9/7 wavelet, only used in snow -@item dctmax - -@item chroma - -@end table - -@item border_mask @var{float} (@emph{encoding,video}) -Increase the quantizer for macroblocks close to borders. - @item mblmin @var{integer} (@emph{encoding,video}) Set min macroblock lagrange factor (VBR). @item mblmax @var{integer} (@emph{encoding,video}) Set max macroblock lagrange factor (VBR). -@item mepc @var{integer} (@emph{encoding,video}) -Set motion estimation bitrate penalty compensation (1.0 = 256). - @item skip_loop_filter @var{integer} (@emph{decoding,video}) @item skip_idct @var{integer} (@emph{decoding,video}) @item skip_frame @var{integer} (@emph{decoding,video}) @@ -962,6 +737,9 @@ Discard all bidirectional frames. @item nokey Discard all frames excepts keyframes. +@item nointra +Discard all frames except I frames. + @item all Discard all frames. @end table @@ -971,34 +749,17 @@ Default value is @samp{default}. @item bidir_refine @var{integer} (@emph{encoding,video}) Refine the two motion vectors used in bidirectional macroblocks. -@item brd_scale @var{integer} (@emph{encoding,video}) -Downscale frames for dynamic B-frame decision. - @item keyint_min @var{integer} (@emph{encoding,video}) Set minimum interval between IDR-frames. @item refs @var{integer} (@emph{encoding,video}) Set reference frames to consider for motion compensation. -@item chromaoffset @var{integer} (@emph{encoding,video}) -Set chroma qp offset from luma. - @item trellis @var{integer} (@emph{encoding,audio,video}) Set rate-distortion optimal quantization. @item mv0_threshold @var{integer} (@emph{encoding,video}) -@item b_sensitivity @var{integer} (@emph{encoding,video}) -Adjust sensitivity of b_frame_strategy 1. - @item compression_level @var{integer} (@emph{encoding,audio,video}) -@item min_prediction_order @var{integer} (@emph{encoding,audio}) -@item max_prediction_order @var{integer} (@emph{encoding,audio}) -@item timecode_frame_start @var{integer} (@emph{encoding,video}) -Set GOP timecode frame start number, in non drop frame format. - -@item request_channels @var{integer} (@emph{decoding,audio}) -Set desired number of audio channels. - @item bits_per_raw_sample @var{integer} @item channel_layout @var{integer} (@emph{decoding/encoding,audio}) @@ -1112,6 +873,12 @@ BT.2020 NCL BT.2020 CL @item smpte2085 SMPTE 2085 +@item chroma-derived-nc +Chroma-derived NCL +@item chroma-derived-c +Chroma-derived CL +@item ictcp +ICtCp @end table @item color_range @var{integer} (@emph{decoding/encoding,video}) @@ -1232,7 +999,7 @@ instead of alpha. Default is 0. @item dump_separator @var{string} (@emph{input}) Separator used to separate the fields printed on the command line about the Stream parameters. -For example to separate the fields with newlines and indention: +For example, to separate the fields with newlines and indentation: @example ffprobe -dump_separator " " -i ~/videos/matrixbench_mpeg2.mpg