mirror of https://github.com/FFmpeg/FFmpeg.git
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.
188 lines
5.8 KiB
188 lines
5.8 KiB
@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 allow to detect 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 packetsize @var{integer} (@emph{output}) |
|
Set packet size. |
|
|
|
@item fflags @var{flags} (@emph{input/output}) |
|
Set format flags. |
|
|
|
Possible values: |
|
@table @samp |
|
@item ignidx |
|
Ignore index. |
|
@item genpts |
|
Generate PTS. |
|
@item nofillin |
|
Do not fill in missing values that can be exactly calculated. |
|
@item noparse |
|
Disable AVParsers, this needs @code{+nofillin} too. |
|
@item igndts |
|
Ignore DTS. |
|
@item discardcorrupt |
|
Discard corrupted frames. |
|
@item sortdts |
|
Try to interleave output packets by DTS. |
|
@item keepside |
|
Do not merge side data. |
|
@item latm |
|
Enable RTP MP4A-LATM payload. |
|
@item nobuffer |
|
Reduce the latency introduced by optional buffering |
|
@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 allow to detect 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 use_wallclock_as_timestamps @var{integer} (@emph{input}) |
|
Use wallclock as timestamps. |
|
|
|
@item avoid_negative_ts @var{integer} (@emph{output}) |
|
Shift timestamps to make them non-negative. A value of 1 enables shifting, |
|
a value of 0 disables it, the default value of -1 enables shifting |
|
when required by the target format. |
|
|
|
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. |
|
|
|
Also note that this affects only leading negative timestamps, and not |
|
non-monotonic negative timestamps. |
|
|
|
@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 1 enables it, and |
|
has the effect of reducing the latency; 0 disables it and may slightly |
|
increase performance in some cases. |
|
@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. |
|
|
|
Possible forms of stream specifiers are: |
|
@table @option |
|
@item @var{stream_index} |
|
Matches the stream with this index. |
|
|
|
@item @var{stream_type}[:@var{stream_index}] |
|
@var{stream_type} is one of following: 'v' for video, 'a' for audio, |
|
's' for subtitle, 'd' for data, and 't' for attachments. If |
|
@var{stream_index} is given, then it matches the stream number |
|
@var{stream_index} of this type. Otherwise, it matches all streams of |
|
this type. |
|
|
|
@item p:@var{program_id}[:@var{stream_index}] |
|
If @var{stream_index} is given, then it matches the stream with number |
|
@var{stream_index} in the program with the id |
|
@var{program_id}. Otherwise, it matches all streams in the program. |
|
|
|
@item #@var{stream_id} |
|
Matches the stream by a format-specific ID. |
|
@end table |
|
|
|
The exact semantics of stream specifiers is defined by the |
|
@code{avformat_match_stream_specifier()} function declared in the |
|
@file{libavformat/avformat.h} header. |
|
|
|
@include demuxers.texi |
|
@include muxers.texi |
|
@include metadata.texi
|
|
|