You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Deprecated in 67747c89ad.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
		
	
		
			
				
	
	
		
			273 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			273 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @chapter Format Options
 | |
| @c man begin FORMAT OPTIONS
 | |
| 
 | |
| The libavformat library provides some generic global options, which
 | |
| can be set on all the muxers and demuxers. In addition each muxer or
 | |
| demuxer may support so-called private options, which are specific for
 | |
| that component.
 | |
| 
 | |
| Options may be set by specifying -@var{option} @var{value} in the
 | |
| FFmpeg tools, or by setting the value explicitly in the
 | |
| @code{AVFormatContext} options or using the @file{libavutil/opt.h} API
 | |
| for programmatic use.
 | |
| 
 | |
| The list of supported options follows:
 | |
| 
 | |
| @table @option
 | |
| @item avioflags @var{flags} (@emph{input/output})
 | |
| Possible values:
 | |
| @table @samp
 | |
| @item direct
 | |
| Reduce buffering.
 | |
| @end table
 | |
| 
 | |
| @item probesize @var{integer} (@emph{input})
 | |
| Set probing size in bytes, i.e. the size of the data to analyze to get
 | |
| stream information. A higher value will enable detecting more
 | |
| information in case it is dispersed into the stream, but will increase
 | |
| latency. Must be an integer not lesser than 32. It is 5000000 by default.
 | |
| 
 | |
| @item max_probe_packets @var{integer} (@emph{input})
 | |
| Set the maximum number of buffered packets when probing a codec.
 | |
| Default is 2500 packets.
 | |
| 
 | |
| @item packetsize @var{integer} (@emph{output})
 | |
| Set packet size.
 | |
| 
 | |
| @item fflags @var{flags}
 | |
| Set format flags. Some are implemented for a limited number of formats.
 | |
| 
 | |
| Possible values for input files:
 | |
| @table @samp
 | |
| @item discardcorrupt
 | |
| Discard corrupted packets.
 | |
| @item fastseek
 | |
| Enable fast, but inaccurate seeks for some formats.
 | |
| @item genpts
 | |
| Generate missing PTS if DTS is present.
 | |
| @item igndts
 | |
| Ignore DTS if PTS is set. Inert when nofillin is set.
 | |
| @item ignidx
 | |
| Ignore index.
 | |
| @item nobuffer
 | |
| Reduce the latency introduced by buffering during initial input streams analysis.
 | |
| @item nofillin
 | |
| Do not fill in missing values in packet fields that can be exactly calculated.
 | |
| @item noparse
 | |
| Disable AVParsers, this needs @code{+nofillin} too.
 | |
| @item sortdts
 | |
| Try to interleave output packets by DTS. At present, available only for AVIs with an index.
 | |
| @end table
 | |
| 
 | |
| Possible values for output files:
 | |
| @table @samp
 | |
| @item autobsf
 | |
| Automatically apply bitstream filters as required by the output format. Enabled by default.
 | |
| @item bitexact
 | |
| Only write platform-, build- and time-independent data.
 | |
| This ensures that file and data checksums are reproducible and match between
 | |
| platforms. Its primary use is for regression testing.
 | |
| @item flush_packets
 | |
| Write out packets immediately.
 | |
| @item shortest
 | |
| Stop muxing at the end of the shortest stream.
 | |
| It may be needed to increase max_interleave_delta to avoid flushing the longer
 | |
| streams before EOF.
 | |
| @end table
 | |
| 
 | |
| @item seek2any @var{integer} (@emph{input})
 | |
| Allow seeking to non-keyframes on demuxer level when supported if set to 1.
 | |
| Default is 0.
 | |
| 
 | |
| @item analyzeduration @var{integer} (@emph{input})
 | |
| Specify how many microseconds are analyzed to probe the input. A
 | |
| higher value will enable detecting more accurate information, but will
 | |
| increase latency. It defaults to 5,000,000 microseconds = 5 seconds.
 | |
| 
 | |
| @item cryptokey @var{hexadecimal string} (@emph{input})
 | |
| Set decryption key.
 | |
| 
 | |
| @item indexmem @var{integer} (@emph{input})
 | |
| Set max memory used for timestamp index (per stream).
 | |
| 
 | |
| @item rtbufsize @var{integer} (@emph{input})
 | |
| Set max memory used for buffering real-time frames.
 | |
| 
 | |
| @item fdebug @var{flags} (@emph{input/output})
 | |
| Print specific debug info.
 | |
| 
 | |
| Possible values:
 | |
| @table @samp
 | |
| @item ts
 | |
| @end table
 | |
| 
 | |
| @item max_delay @var{integer} (@emph{input/output})
 | |
| Set maximum muxing or demuxing delay in microseconds.
 | |
| 
 | |
| @item fpsprobesize @var{integer} (@emph{input})
 | |
| Set number of frames used to probe fps.
 | |
| 
 | |
| @item audio_preload @var{integer} (@emph{output})
 | |
| Set microseconds by which audio packets should be interleaved earlier.
 | |
| 
 | |
| @item chunk_duration @var{integer} (@emph{output})
 | |
| Set microseconds for each chunk.
 | |
| 
 | |
| @item chunk_size @var{integer} (@emph{output})
 | |
| Set size in bytes for each chunk.
 | |
| 
 | |
| @item err_detect, f_err_detect @var{flags} (@emph{input})
 | |
| Set error detection flags. @code{f_err_detect} is deprecated and
 | |
| should be used only via the @command{ffmpeg} tool.
 | |
| 
 | |
| Possible values:
 | |
| @table @samp
 | |
| @item crccheck
 | |
| Verify embedded CRCs.
 | |
| @item bitstream
 | |
| Detect bitstream specification deviations.
 | |
| @item buffer
 | |
| Detect improper bitstream length.
 | |
| @item explode
 | |
| Abort decoding on minor error detection.
 | |
| @item careful
 | |
| Consider things that violate the spec and have not been seen in the
 | |
| wild as errors.
 | |
| @item compliant
 | |
| Consider all spec non compliancies as errors.
 | |
| @item aggressive
 | |
| Consider things that a sane encoder should not do as an error.
 | |
| @end table
 | |
| 
 | |
| @item max_interleave_delta @var{integer} (@emph{output})
 | |
| Set maximum buffering duration for interleaving. The duration is
 | |
| expressed in microseconds, and defaults to 10000000 (10 seconds).
 | |
| 
 | |
| To ensure all the streams are interleaved correctly, libavformat will
 | |
| wait until it has at least one packet for each stream before actually
 | |
| writing any packets to the output file. When some streams are
 | |
| "sparse" (i.e. there are large gaps between successive packets), this
 | |
| can result in excessive buffering.
 | |
| 
 | |
| This field specifies the maximum difference between the timestamps of the
 | |
| first and the last packet in the muxing queue, above which libavformat
 | |
| will output a packet regardless of whether it has queued a packet for all
 | |
| the streams.
 | |
| 
 | |
| If set to 0, libavformat will continue buffering packets until it has
 | |
| a packet for each stream, regardless of the maximum timestamp
 | |
| difference between the buffered packets.
 | |
| 
 | |
| @item use_wallclock_as_timestamps @var{integer} (@emph{input})
 | |
| Use wallclock as timestamps if set to 1. Default is 0.
 | |
| 
 | |
| @item avoid_negative_ts @var{integer} (@emph{output})
 | |
| 
 | |
| Possible values:
 | |
| @table @samp
 | |
| @item make_non_negative
 | |
| Shift timestamps to make them non-negative.
 | |
| Also note that this affects only leading negative timestamps, and not
 | |
| non-monotonic negative timestamps.
 | |
| @item make_zero
 | |
| Shift timestamps so that the first timestamp is 0.
 | |
| @item auto (default)
 | |
| Enables shifting when required by the target format.
 | |
| @item disabled
 | |
| Disables shifting of timestamp.
 | |
| @end table
 | |
| 
 | |
| When shifting is enabled, all output timestamps are shifted by the
 | |
| same amount. Audio, video, and subtitles desynching and relative
 | |
| timestamp differences are preserved compared to how they would have
 | |
| been without shifting.
 | |
| 
 | |
| @item skip_initial_bytes @var{integer} (@emph{input})
 | |
| Set number of bytes to skip before reading header and frames if set to 1.
 | |
| Default is 0.
 | |
| 
 | |
| @item correct_ts_overflow @var{integer} (@emph{input})
 | |
| Correct single timestamp overflows if set to 1. Default is 1.
 | |
| 
 | |
| @item flush_packets @var{integer} (@emph{output})
 | |
| Flush the underlying I/O stream after each packet. Default is -1 (auto), which
 | |
| means that the underlying protocol will decide, 1 enables it, and has the
 | |
| effect of reducing the latency, 0 disables it and may increase IO throughput in
 | |
| some cases.
 | |
| 
 | |
| @item output_ts_offset @var{offset} (@emph{output})
 | |
| Set the output time offset.
 | |
| 
 | |
| @var{offset} must be a time duration specification,
 | |
| see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
 | |
| 
 | |
| The offset is added by the muxer to the output timestamps.
 | |
| 
 | |
| Specifying a positive offset means that the corresponding streams are
 | |
| delayed bt the time duration specified in @var{offset}. Default value
 | |
| is @code{0} (meaning that no offset is applied).
 | |
| 
 | |
| @item format_whitelist @var{list} (@emph{input})
 | |
| "," separated list of allowed demuxers. By default all are allowed.
 | |
| 
 | |
| @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 indentation:
 | |
| @example
 | |
| ffprobe -dump_separator "
 | |
|                           "  -i ~/videos/matrixbench_mpeg2.mpg
 | |
| @end example
 | |
| 
 | |
| @item max_streams @var{integer} (@emph{input})
 | |
| Specifies the maximum number of streams. This can be used to reject files that
 | |
| would require too many resources due to a large number of streams.
 | |
| 
 | |
| @item skip_estimate_duration_from_pts @var{bool} (@emph{input})
 | |
| Skip estimation of input duration when calculated using PTS.
 | |
| At present, applicable for MPEG-PS and MPEG-TS.
 | |
| 
 | |
| @item strict, f_strict @var{integer} (@emph{input/output})
 | |
| Specify how strictly to follow the standards. @code{f_strict} is deprecated and
 | |
| should be used only via the @command{ffmpeg} tool.
 | |
| 
 | |
| Possible values:
 | |
| @table @samp
 | |
| @item very
 | |
| strictly conform to an older more strict version of the spec or reference software
 | |
| @item strict
 | |
| strictly conform to all the things in the spec no matter what consequences
 | |
| @item normal
 | |
| 
 | |
| @item unofficial
 | |
| allow unofficial extensions
 | |
| @item experimental
 | |
| allow non standardized experimental things, experimental
 | |
| (unfinished/work in progress/not well tested) decoders and encoders.
 | |
| Note: experimental decoders can pose a security risk, do not use this for
 | |
| decoding untrusted input.
 | |
| @end table
 | |
| 
 | |
| @end table
 | |
| 
 | |
| @c man end FORMAT OPTIONS
 | |
| 
 | |
| @anchor{Format stream specifiers}
 | |
| @section Format stream specifiers
 | |
| 
 | |
| Format stream specifiers allow selection of one or more streams that
 | |
| match specific properties.
 | |
| 
 | |
| The exact semantics of stream specifiers is defined by the
 | |
| @code{avformat_match_stream_specifier()} function declared in the
 | |
| @file{libavformat/avformat.h} header and documented in the
 | |
| @ref{Stream specifiers,,Stream specifiers section in the ffmpeg(1) manual,ffmpeg}.
 | |
| 
 | |
| @ifclear config-writeonly
 | |
| @include demuxers.texi
 | |
| @end ifclear
 | |
| @ifclear config-readonly
 | |
| @include muxers.texi
 | |
| @end ifclear
 | |
| @include metadata.texi
 |