New file |
| | |
| | | .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) |
| | | .\" |
| | | .\" Standard preamble: |
| | | .\" ======================================================================== |
| | | .de Sp \" Vertical space (when we can't use .PP) |
| | | .if t .sp .5v |
| | | .if n .sp |
| | | .. |
| | | .de Vb \" Begin verbatim text |
| | | .ft CW |
| | | .nf |
| | | .ne \\$1 |
| | | .. |
| | | .de Ve \" End verbatim text |
| | | .ft R |
| | | .fi |
| | | .. |
| | | .\" Set up some character translations and predefined strings. \*(-- will |
| | | .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left |
| | | .\" double quote, and \*(R" will give a right double quote. \*(C+ will |
| | | .\" give a nicer C++. Capital omega is used to do unbreakable dashes and |
| | | .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, |
| | | .\" nothing in troff, for use with C<>. |
| | | .tr \(*W- |
| | | .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' |
| | | .ie n \{\ |
| | | . ds -- \(*W- |
| | | . ds PI pi |
| | | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
| | | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
| | | . ds L" "" |
| | | . ds R" "" |
| | | . ds C` "" |
| | | . ds C' "" |
| | | 'br\} |
| | | .el\{\ |
| | | . ds -- \|\(em\| |
| | | . ds PI \(*p |
| | | . ds L" `` |
| | | . ds R" '' |
| | | 'br\} |
| | | .\" |
| | | .\" Escape single quotes in literal strings from groff's Unicode transform. |
| | | .ie \n(.g .ds Aq \(aq |
| | | .el .ds Aq ' |
| | | .\" |
| | | .\" If the F register is turned on, we'll generate index entries on stderr for |
| | | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index |
| | | .\" entries marked with X<> in POD. Of course, you'll have to process the |
| | | .\" output yourself in some meaningful fashion. |
| | | .ie \nF \{\ |
| | | . de IX |
| | | . tm Index:\\$1\t\\n%\t"\\$2" |
| | | .. |
| | | . nr % 0 |
| | | . rr F |
| | | .\} |
| | | .el \{\ |
| | | . de IX |
| | | .. |
| | | .\} |
| | | .\" |
| | | .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). |
| | | .\" Fear. Run. Save yourself. No user-serviceable parts. |
| | | . \" fudge factors for nroff and troff |
| | | .if n \{\ |
| | | . ds #H 0 |
| | | . ds #V .8m |
| | | . ds #F .3m |
| | | . ds #[ \f1 |
| | | . ds #] \fP |
| | | .\} |
| | | .if t \{\ |
| | | . ds #H ((1u-(\\\\n(.fu%2u))*.13m) |
| | | . ds #V .6m |
| | | . ds #F 0 |
| | | . ds #[ \& |
| | | . ds #] \& |
| | | .\} |
| | | . \" simple accents for nroff and troff |
| | | .if n \{\ |
| | | . ds ' \& |
| | | . ds ` \& |
| | | . ds ^ \& |
| | | . ds , \& |
| | | . ds ~ ~ |
| | | . ds / |
| | | .\} |
| | | .if t \{\ |
| | | . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" |
| | | . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' |
| | | . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' |
| | | . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' |
| | | . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' |
| | | . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' |
| | | .\} |
| | | . \" troff and (daisy-wheel) nroff accents |
| | | .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' |
| | | .ds 8 \h'\*(#H'\(*b\h'-\*(#H' |
| | | .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] |
| | | .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' |
| | | .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' |
| | | .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] |
| | | .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] |
| | | .ds ae a\h'-(\w'a'u*4/10)'e |
| | | .ds Ae A\h'-(\w'A'u*4/10)'E |
| | | . \" corrections for vroff |
| | | .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' |
| | | .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' |
| | | . \" for low resolution devices (crt and lpr) |
| | | .if \n(.H>23 .if \n(.V>19 \ |
| | | \{\ |
| | | . ds : e |
| | | . ds 8 ss |
| | | . ds o a |
| | | . ds d- d\h'-1'\(ga |
| | | . ds D- D\h'-1'\(hy |
| | | . ds th \o'bp' |
| | | . ds Th \o'LP' |
| | | . ds ae ae |
| | | . ds Ae AE |
| | | .\} |
| | | .rm #[ #] #H #V #F C |
| | | .\" ======================================================================== |
| | | .\" |
| | | .IX Title "FFPROBE 1" |
| | | .TH FFPROBE 1 " " " " " " |
| | | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
| | | .\" way too many mistakes in technical documents. |
| | | .if n .ad l |
| | | .nh |
| | | .SH "NAME" |
| | | ffprobe \- ffprobe media prober |
| | | .SH "SYNOPSIS" |
| | | .IX Header "SYNOPSIS" |
| | | ffprobe [\fIoptions\fR] [\fIinput_url\fR] |
| | | .SH "DESCRIPTION" |
| | | .IX Header "DESCRIPTION" |
| | | ffprobe gathers information from multimedia streams and prints it in |
| | | human\- and machine-readable fashion. |
| | | .PP |
| | | For example it can be used to check the format of the container used |
| | | by a multimedia stream and the format and type of each media stream |
| | | contained in it. |
| | | .PP |
| | | If a url is specified in input, ffprobe will try to open and |
| | | probe the url content. If the url cannot be opened or recognized as |
| | | a multimedia file, a positive exit code is returned. |
| | | .PP |
| | | ffprobe may be employed both as a standalone application or in |
| | | combination with a textual filter, which may perform more |
| | | sophisticated processing, e.g. statistical processing or plotting. |
| | | .PP |
| | | Options are used to list some of the formats supported by ffprobe or |
| | | for specifying which information to display, and for setting how |
| | | ffprobe will show it. |
| | | .PP |
| | | ffprobe output is designed to be easily parsable by a textual filter, |
| | | and consists of one or more sections of a form defined by the selected |
| | | writer, which is specified by the \fBprint_format\fR option. |
| | | .PP |
| | | Sections may contain other nested sections, and are identified by a |
| | | name (which may be shared by other sections), and an unique |
| | | name. See the output of \fBsections\fR. |
| | | .PP |
| | | Metadata tags stored in the container or in the streams are recognized |
| | | and printed in the corresponding \*(L"\s-1FORMAT\s0\*(R", \*(L"\s-1STREAM\s0\*(R" or \*(L"\s-1PROGRAM_STREAM\s0\*(R" |
| | | section. |
| | | .SH "OPTIONS" |
| | | .IX Header "OPTIONS" |
| | | All the numerical options, if not specified otherwise, accept a string |
| | | representing a number as input, which may be followed by one of the \s-1SI\s0 |
| | | unit prefixes, for example: 'K', 'M', or 'G'. |
| | | .PP |
| | | If 'i' is appended to the \s-1SI\s0 unit prefix, the complete prefix will be |
| | | interpreted as a unit prefix for binary multiples, which are based on |
| | | powers of 1024 instead of powers of 1000. Appending 'B' to the \s-1SI\s0 unit |
| | | prefix multiplies the value by 8. This allows using, for example: |
| | | \&'\s-1KB\s0', 'MiB', 'G' and 'B' as number suffixes. |
| | | .PP |
| | | Options which do not take arguments are boolean options, and set the |
| | | corresponding value to true. They can be set to false by prefixing |
| | | the option name with \*(L"no\*(R". For example using \*(L"\-nofoo\*(R" |
| | | will set the boolean option with name \*(L"foo\*(R" to false. |
| | | .SS "Stream specifiers" |
| | | .IX Subsection "Stream specifiers" |
| | | Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers |
| | | are used to precisely specify which stream(s) a given option belongs to. |
| | | .PP |
| | | A stream specifier is a string generally appended to the option name and |
| | | separated from it by a colon. E.g. \f(CW\*(C`\-codec:a:1 ac3\*(C'\fR contains the |
| | | \&\f(CW\*(C`a:1\*(C'\fR stream specifier, which matches the second audio stream. Therefore, it |
| | | would select the ac3 codec for the second audio stream. |
| | | .PP |
| | | A stream specifier can match several streams, so that the option is applied to all |
| | | of them. E.g. the stream specifier in \f(CW\*(C`\-b:a 128k\*(C'\fR matches all audio |
| | | streams. |
| | | .PP |
| | | An empty stream specifier matches all streams. For example, \f(CW\*(C`\-codec copy\*(C'\fR |
| | | or \f(CW\*(C`\-codec: copy\*(C'\fR would copy all the streams without reencoding. |
| | | .PP |
| | | Possible forms of stream specifiers are: |
| | | .IP "\fIstream_index\fR" 4 |
| | | .IX Item "stream_index" |
| | | Matches the stream with this index. E.g. \f(CW\*(C`\-threads:1 4\*(C'\fR would set the |
| | | thread count for the second stream to 4. |
| | | .IP "\fIstream_type\fR\fB[:\fR\fIstream_index\fR\fB]\fR" 4 |
| | | .IX Item "stream_type[:stream_index]" |
| | | \&\fIstream_type\fR is one of following: 'v' or 'V' for video, 'a' for audio, 's' |
| | | for subtitle, 'd' for data, and 't' for attachments. 'v' matches all video |
| | | streams, 'V' only matches video streams which are not attached pictures, video |
| | | thumbnails or cover arts. If \fIstream_index\fR is given, then it matches |
| | | stream number \fIstream_index\fR of this type. Otherwise, it matches all |
| | | streams of this type. |
| | | .IP "\fBp:\fR\fIprogram_id\fR\fB[:\fR\fIstream_index\fR\fB] or p:\fR\fIprogram_id\fR\fB[:\fR\fIstream_type\fR\fB[:\fR\fIstream_index\fR\fB]] or\fR" 4 |
| | | .IX Item "p:program_id[:stream_index] or p:program_id[:stream_type[:stream_index]] or" |
| | | p:\fIprogram_id\fR:m:\fIkey\fR[:\fIvalue\fR] |
| | | In first version, if \fIstream_index\fR is given, then it matches the stream with number \fIstream_index\fR |
| | | in the program with the id \fIprogram_id\fR. Otherwise, it matches all streams in the |
| | | program. In the second version, \fIstream_type\fR is one of following: 'v' for video, 'a' for audio, 's' |
| | | for subtitle, 'd' for data. If \fIstream_index\fR is also given, then it matches |
| | | stream number \fIstream_index\fR of this type in the program with the id \fIprogram_id\fR. |
| | | Otherwise, if only \fIstream_type\fR is given, it matches all |
| | | streams of this type in the program with the id \fIprogram_id\fR. |
| | | In the third version matches streams in the program with the id \fIprogram_id\fR with the metadata |
| | | tag \fIkey\fR having the specified value. If |
| | | \&\fIvalue\fR is not given, matches streams that contain the given tag with any |
| | | value. |
| | | .IP "\fB#\fR\fIstream_id\fR \fBor i:\fR\fIstream_id\fR" 4 |
| | | .IX Item "#stream_id or i:stream_id" |
| | | Match the stream by stream id (e.g. \s-1PID\s0 in MPEG-TS container). |
| | | .IP "\fBm:\fR\fIkey\fR\fB[:\fR\fIvalue\fR\fB]\fR" 4 |
| | | .IX Item "m:key[:value]" |
| | | Matches streams with the metadata tag \fIkey\fR having the specified value. If |
| | | \&\fIvalue\fR is not given, matches streams that contain the given tag with any |
| | | value. |
| | | .IP "\fBu\fR" 4 |
| | | .IX Item "u" |
| | | Matches streams with usable configuration, the codec must be defined and the |
| | | essential information such as video dimension or audio sample rate must be present. |
| | | .Sp |
| | | Note that in \fBffmpeg\fR, matching by metadata will only work properly for |
| | | input files. |
| | | .SS "Generic options" |
| | | .IX Subsection "Generic options" |
| | | These options are shared amongst the ff* tools. |
| | | .IP "\fB\-L\fR" 4 |
| | | .IX Item "-L" |
| | | Show license. |
| | | .IP "\fB\-h, \-?, \-help, \-\-help [\fR\fIarg\fR\fB]\fR" 4 |
| | | .IX Item "-h, -?, -help, --help [arg]" |
| | | Show help. An optional parameter may be specified to print help about a specific |
| | | item. If no argument is specified, only basic (non advanced) tool |
| | | options are shown. |
| | | .Sp |
| | | Possible values of \fIarg\fR are: |
| | | .RS 4 |
| | | .IP "\fBlong\fR" 4 |
| | | .IX Item "long" |
| | | Print advanced tool options in addition to the basic tool options. |
| | | .IP "\fBfull\fR" 4 |
| | | .IX Item "full" |
| | | Print complete list of options, including shared and private options |
| | | for encoders, decoders, demuxers, muxers, filters, etc. |
| | | .IP "\fBdecoder=\fR\fIdecoder_name\fR" 4 |
| | | .IX Item "decoder=decoder_name" |
| | | Print detailed information about the decoder named \fIdecoder_name\fR. Use the |
| | | \&\fB\-decoders\fR option to get a list of all decoders. |
| | | .IP "\fBencoder=\fR\fIencoder_name\fR" 4 |
| | | .IX Item "encoder=encoder_name" |
| | | Print detailed information about the encoder named \fIencoder_name\fR. Use the |
| | | \&\fB\-encoders\fR option to get a list of all encoders. |
| | | .IP "\fBdemuxer=\fR\fIdemuxer_name\fR" 4 |
| | | .IX Item "demuxer=demuxer_name" |
| | | Print detailed information about the demuxer named \fIdemuxer_name\fR. Use the |
| | | \&\fB\-formats\fR option to get a list of all demuxers and muxers. |
| | | .IP "\fBmuxer=\fR\fImuxer_name\fR" 4 |
| | | .IX Item "muxer=muxer_name" |
| | | Print detailed information about the muxer named \fImuxer_name\fR. Use the |
| | | \&\fB\-formats\fR option to get a list of all muxers and demuxers. |
| | | .IP "\fBfilter=\fR\fIfilter_name\fR" 4 |
| | | .IX Item "filter=filter_name" |
| | | Print detailed information about the filter name \fIfilter_name\fR. Use the |
| | | \&\fB\-filters\fR option to get a list of all filters. |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fB\-version\fR" 4 |
| | | .IX Item "-version" |
| | | Show version. |
| | | .IP "\fB\-formats\fR" 4 |
| | | .IX Item "-formats" |
| | | Show available formats (including devices). |
| | | .IP "\fB\-demuxers\fR" 4 |
| | | .IX Item "-demuxers" |
| | | Show available demuxers. |
| | | .IP "\fB\-muxers\fR" 4 |
| | | .IX Item "-muxers" |
| | | Show available muxers. |
| | | .IP "\fB\-devices\fR" 4 |
| | | .IX Item "-devices" |
| | | Show available devices. |
| | | .IP "\fB\-codecs\fR" 4 |
| | | .IX Item "-codecs" |
| | | Show all codecs known to libavcodec. |
| | | .Sp |
| | | Note that the term 'codec' is used throughout this documentation as a shortcut |
| | | for what is more correctly called a media bitstream format. |
| | | .IP "\fB\-decoders\fR" 4 |
| | | .IX Item "-decoders" |
| | | Show available decoders. |
| | | .IP "\fB\-encoders\fR" 4 |
| | | .IX Item "-encoders" |
| | | Show all available encoders. |
| | | .IP "\fB\-bsfs\fR" 4 |
| | | .IX Item "-bsfs" |
| | | Show available bitstream filters. |
| | | .IP "\fB\-protocols\fR" 4 |
| | | .IX Item "-protocols" |
| | | Show available protocols. |
| | | .IP "\fB\-filters\fR" 4 |
| | | .IX Item "-filters" |
| | | Show available libavfilter filters. |
| | | .IP "\fB\-pix_fmts\fR" 4 |
| | | .IX Item "-pix_fmts" |
| | | Show available pixel formats. |
| | | .IP "\fB\-sample_fmts\fR" 4 |
| | | .IX Item "-sample_fmts" |
| | | Show available sample formats. |
| | | .IP "\fB\-layouts\fR" 4 |
| | | .IX Item "-layouts" |
| | | Show channel names and standard channel layouts. |
| | | .IP "\fB\-colors\fR" 4 |
| | | .IX Item "-colors" |
| | | Show recognized color names. |
| | | .IP "\fB\-sources\fR \fIdevice\fR\fB[,\fR\fIopt1\fR\fB=\fR\fIval1\fR\fB[,\fR\fIopt2\fR\fB=\fR\fIval2\fR\fB]...]\fR" 4 |
| | | .IX Item "-sources device[,opt1=val1[,opt2=val2]...]" |
| | | Show autodetected sources of the input device. |
| | | Some devices may provide system-dependent source names that cannot be autodetected. |
| | | The returned list cannot be assumed to be always complete. |
| | | .Sp |
| | | .Vb 1 |
| | | \& ffmpeg \-sources pulse,server=192.168.0.4 |
| | | .Ve |
| | | .IP "\fB\-sinks\fR \fIdevice\fR\fB[,\fR\fIopt1\fR\fB=\fR\fIval1\fR\fB[,\fR\fIopt2\fR\fB=\fR\fIval2\fR\fB]...]\fR" 4 |
| | | .IX Item "-sinks device[,opt1=val1[,opt2=val2]...]" |
| | | Show autodetected sinks of the output device. |
| | | Some devices may provide system-dependent sink names that cannot be autodetected. |
| | | The returned list cannot be assumed to be always complete. |
| | | .Sp |
| | | .Vb 1 |
| | | \& ffmpeg \-sinks pulse,server=192.168.0.4 |
| | | .Ve |
| | | .IP "\fB\-loglevel [\fR\fIflags\fR\fB+]\fR\fIloglevel\fR \fB| \-v [\fR\fIflags\fR\fB+]\fR\fIloglevel\fR" 4 |
| | | .IX Item "-loglevel [flags+]loglevel | -v [flags+]loglevel" |
| | | Set logging level and flags used by the library. |
| | | .Sp |
| | | The optional \fIflags\fR prefix can consist of the following values: |
| | | .RS 4 |
| | | .IP "\fBrepeat\fR" 4 |
| | | .IX Item "repeat" |
| | | Indicates that repeated log output should not be compressed to the first line |
| | | and the \*(L"Last message repeated n times\*(R" line will be omitted. |
| | | .IP "\fBlevel\fR" 4 |
| | | .IX Item "level" |
| | | Indicates that log output should add a \f(CW\*(C`[level]\*(C'\fR prefix to each message |
| | | line. This can be used as an alternative to log coloring, e.g. when dumping the |
| | | log to file. |
| | | .RE |
| | | .RS 4 |
| | | .Sp |
| | | Flags can also be used alone by adding a '+'/'\-' prefix to set/reset a single |
| | | flag without affecting other \fIflags\fR or changing \fIloglevel\fR. When |
| | | setting both \fIflags\fR and \fIloglevel\fR, a '+' separator is expected |
| | | between the last \fIflags\fR value and before \fIloglevel\fR. |
| | | .Sp |
| | | \&\fIloglevel\fR is a string or a number containing one of the following values: |
| | | .IP "\fBquiet, \-8\fR" 4 |
| | | .IX Item "quiet, -8" |
| | | Show nothing at all; be silent. |
| | | .IP "\fBpanic, 0\fR" 4 |
| | | .IX Item "panic, 0" |
| | | Only show fatal errors which could lead the process to crash, such as |
| | | an assertion failure. This is not currently used for anything. |
| | | .IP "\fBfatal, 8\fR" 4 |
| | | .IX Item "fatal, 8" |
| | | Only show fatal errors. These are errors after which the process absolutely |
| | | cannot continue. |
| | | .IP "\fBerror, 16\fR" 4 |
| | | .IX Item "error, 16" |
| | | Show all errors, including ones which can be recovered from. |
| | | .IP "\fBwarning, 24\fR" 4 |
| | | .IX Item "warning, 24" |
| | | Show all warnings and errors. Any message related to possibly |
| | | incorrect or unexpected events will be shown. |
| | | .IP "\fBinfo, 32\fR" 4 |
| | | .IX Item "info, 32" |
| | | Show informative messages during processing. This is in addition to |
| | | warnings and errors. This is the default value. |
| | | .IP "\fBverbose, 40\fR" 4 |
| | | .IX Item "verbose, 40" |
| | | Same as \f(CW\*(C`info\*(C'\fR, except more verbose. |
| | | .IP "\fBdebug, 48\fR" 4 |
| | | .IX Item "debug, 48" |
| | | Show everything, including debugging information. |
| | | .IP "\fBtrace, 56\fR" 4 |
| | | .IX Item "trace, 56" |
| | | .RE |
| | | .RS 4 |
| | | .Sp |
| | | For example to enable repeated log output, add the \f(CW\*(C`level\*(C'\fR prefix, and set |
| | | \&\fIloglevel\fR to \f(CW\*(C`verbose\*(C'\fR: |
| | | .Sp |
| | | .Vb 1 |
| | | \& ffmpeg \-loglevel repeat+level+verbose \-i input output |
| | | .Ve |
| | | .Sp |
| | | Another example that enables repeated log output without affecting current |
| | | state of \f(CW\*(C`level\*(C'\fR prefix flag or \fIloglevel\fR: |
| | | .Sp |
| | | .Vb 1 |
| | | \& ffmpeg [...] \-loglevel +repeat |
| | | .Ve |
| | | .Sp |
| | | By default the program logs to stderr. If coloring is supported by the |
| | | terminal, colors are used to mark errors and warnings. Log coloring |
| | | can be disabled setting the environment variable |
| | | \&\fB\s-1AV_LOG_FORCE_NOCOLOR\s0\fR or \fB\s-1NO_COLOR\s0\fR, or can be forced setting |
| | | the environment variable \fB\s-1AV_LOG_FORCE_COLOR\s0\fR. |
| | | The use of the environment variable \fB\s-1NO_COLOR\s0\fR is deprecated and |
| | | will be dropped in a future FFmpeg version. |
| | | .RE |
| | | .IP "\fB\-report\fR" 4 |
| | | .IX Item "-report" |
| | | Dump full command line and console output to a file named |
| | | \&\f(CW\*(C`\f(CIprogram\f(CW\-\f(CIYYYYMMDD\f(CW\-\f(CIHHMMSS\f(CW.log\*(C'\fR in the current |
| | | directory. |
| | | This file can be useful for bug reports. |
| | | It also implies \f(CW\*(C`\-loglevel verbose\*(C'\fR. |
| | | .Sp |
| | | Setting the environment variable \fB\s-1FFREPORT\s0\fR to any value has the |
| | | same effect. If the value is a ':'\-separated key=value sequence, these |
| | | options will affect the report; option values must be escaped if they |
| | | contain special characters or the options delimiter ':' (see the |
| | | ``Quoting and escaping'' section in the ffmpeg-utils manual). |
| | | .Sp |
| | | The following options are recognized: |
| | | .RS 4 |
| | | .IP "\fBfile\fR" 4 |
| | | .IX Item "file" |
| | | set the file name to use for the report; \f(CW%p\fR is expanded to the name |
| | | of the program, \f(CW%t\fR is expanded to a timestamp, \f(CW\*(C`%%\*(C'\fR is expanded |
| | | to a plain \f(CW\*(C`%\*(C'\fR |
| | | .IP "\fBlevel\fR" 4 |
| | | .IX Item "level" |
| | | set the log verbosity level using a numerical value (see \f(CW\*(C`\-loglevel\*(C'\fR). |
| | | .RE |
| | | .RS 4 |
| | | .Sp |
| | | For example, to output a report to a file named \fIffreport.log\fR |
| | | using a log level of \f(CW32\fR (alias for log level \f(CW\*(C`info\*(C'\fR): |
| | | .Sp |
| | | .Vb 1 |
| | | \& FFREPORT=file=ffreport.log:level=32 ffmpeg \-i input output |
| | | .Ve |
| | | .Sp |
| | | Errors in parsing the environment variable are not fatal, and will not |
| | | appear in the report. |
| | | .RE |
| | | .IP "\fB\-hide_banner\fR" 4 |
| | | .IX Item "-hide_banner" |
| | | Suppress printing banner. |
| | | .Sp |
| | | All FFmpeg tools will normally show a copyright notice, build options |
| | | and library versions. This option can be used to suppress printing |
| | | this information. |
| | | .IP "\fB\-cpuflags flags (\fR\fIglobal\fR\fB)\fR" 4 |
| | | .IX Item "-cpuflags flags (global)" |
| | | Allows setting and clearing cpu flags. This option is intended |
| | | for testing. Do not use it unless you know what you're doing. |
| | | .Sp |
| | | .Vb 3 |
| | | \& ffmpeg \-cpuflags \-sse+mmx ... |
| | | \& ffmpeg \-cpuflags mmx ... |
| | | \& ffmpeg \-cpuflags 0 ... |
| | | .Ve |
| | | .Sp |
| | | Possible flags for this option are: |
| | | .RS 4 |
| | | .IP "\fBx86\fR" 4 |
| | | .IX Item "x86" |
| | | .RS 4 |
| | | .PD 0 |
| | | .IP "\fBmmx\fR" 4 |
| | | .IX Item "mmx" |
| | | .IP "\fBmmxext\fR" 4 |
| | | .IX Item "mmxext" |
| | | .IP "\fBsse\fR" 4 |
| | | .IX Item "sse" |
| | | .IP "\fBsse2\fR" 4 |
| | | .IX Item "sse2" |
| | | .IP "\fBsse2slow\fR" 4 |
| | | .IX Item "sse2slow" |
| | | .IP "\fBsse3\fR" 4 |
| | | .IX Item "sse3" |
| | | .IP "\fBsse3slow\fR" 4 |
| | | .IX Item "sse3slow" |
| | | .IP "\fBssse3\fR" 4 |
| | | .IX Item "ssse3" |
| | | .IP "\fBatom\fR" 4 |
| | | .IX Item "atom" |
| | | .IP "\fBsse4.1\fR" 4 |
| | | .IX Item "sse4.1" |
| | | .IP "\fBsse4.2\fR" 4 |
| | | .IX Item "sse4.2" |
| | | .IP "\fBavx\fR" 4 |
| | | .IX Item "avx" |
| | | .IP "\fBavx2\fR" 4 |
| | | .IX Item "avx2" |
| | | .IP "\fBxop\fR" 4 |
| | | .IX Item "xop" |
| | | .IP "\fBfma3\fR" 4 |
| | | .IX Item "fma3" |
| | | .IP "\fBfma4\fR" 4 |
| | | .IX Item "fma4" |
| | | .IP "\fB3dnow\fR" 4 |
| | | .IX Item "3dnow" |
| | | .IP "\fB3dnowext\fR" 4 |
| | | .IX Item "3dnowext" |
| | | .IP "\fBbmi1\fR" 4 |
| | | .IX Item "bmi1" |
| | | .IP "\fBbmi2\fR" 4 |
| | | .IX Item "bmi2" |
| | | .IP "\fBcmov\fR" 4 |
| | | .IX Item "cmov" |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fB\s-1ARM\s0\fR" 4 |
| | | .IX Item "ARM" |
| | | .RS 4 |
| | | .IP "\fBarmv5te\fR" 4 |
| | | .IX Item "armv5te" |
| | | .IP "\fBarmv6\fR" 4 |
| | | .IX Item "armv6" |
| | | .IP "\fBarmv6t2\fR" 4 |
| | | .IX Item "armv6t2" |
| | | .IP "\fBvfp\fR" 4 |
| | | .IX Item "vfp" |
| | | .IP "\fBvfpv3\fR" 4 |
| | | .IX Item "vfpv3" |
| | | .IP "\fBneon\fR" 4 |
| | | .IX Item "neon" |
| | | .IP "\fBsetend\fR" 4 |
| | | .IX Item "setend" |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fBAArch64\fR" 4 |
| | | .IX Item "AArch64" |
| | | .RS 4 |
| | | .IP "\fBarmv8\fR" 4 |
| | | .IX Item "armv8" |
| | | .IP "\fBvfp\fR" 4 |
| | | .IX Item "vfp" |
| | | .IP "\fBneon\fR" 4 |
| | | .IX Item "neon" |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fBPowerPC\fR" 4 |
| | | .IX Item "PowerPC" |
| | | .RS 4 |
| | | .IP "\fBaltivec\fR" 4 |
| | | .IX Item "altivec" |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fBSpecific Processors\fR" 4 |
| | | .IX Item "Specific Processors" |
| | | .RS 4 |
| | | .IP "\fBpentium2\fR" 4 |
| | | .IX Item "pentium2" |
| | | .IP "\fBpentium3\fR" 4 |
| | | .IX Item "pentium3" |
| | | .IP "\fBpentium4\fR" 4 |
| | | .IX Item "pentium4" |
| | | .IP "\fBk6\fR" 4 |
| | | .IX Item "k6" |
| | | .IP "\fBk62\fR" 4 |
| | | .IX Item "k62" |
| | | .IP "\fBathlon\fR" 4 |
| | | .IX Item "athlon" |
| | | .IP "\fBathlonxp\fR" 4 |
| | | .IX Item "athlonxp" |
| | | .IP "\fBk8\fR" 4 |
| | | .IX Item "k8" |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .PD |
| | | .SS "AVOptions" |
| | | .IX Subsection "AVOptions" |
| | | These options are provided directly by the libavformat, libavdevice and |
| | | libavcodec libraries. To see the list of available AVOptions, use the |
| | | \&\fB\-help\fR option. They are separated into two categories: |
| | | .IP "\fBgeneric\fR" 4 |
| | | .IX Item "generic" |
| | | These options can be set for any container, codec or device. Generic options |
| | | are listed under AVFormatContext options for containers/devices and under |
| | | AVCodecContext options for codecs. |
| | | .IP "\fBprivate\fR" 4 |
| | | .IX Item "private" |
| | | These options are specific to the given container, device or codec. Private |
| | | options are listed under their corresponding containers/devices/codecs. |
| | | .PP |
| | | For example to write an ID3v2.3 header instead of a default ID3v2.4 to |
| | | an \s-1MP3\s0 file, use the \fBid3v2_version\fR private option of the \s-1MP3\s0 |
| | | muxer: |
| | | .PP |
| | | .Vb 1 |
| | | \& ffmpeg \-i input.flac \-id3v2_version 3 out.mp3 |
| | | .Ve |
| | | .PP |
| | | All codec AVOptions are per-stream, and thus a stream specifier |
| | | should be attached to them. |
| | | .PP |
| | | Note: the \fB\-nooption\fR syntax cannot be used for boolean |
| | | AVOptions, use \fB\-option 0\fR/\fB\-option 1\fR. |
| | | .PP |
| | | Note: the old undocumented way of specifying per-stream AVOptions by |
| | | prepending v/a/s to the options name is now obsolete and will be |
| | | removed soon. |
| | | .SS "Main options" |
| | | .IX Subsection "Main options" |
| | | .IP "\fB\-f\fR \fIformat\fR" 4 |
| | | .IX Item "-f format" |
| | | Force format to use. |
| | | .IP "\fB\-unit\fR" 4 |
| | | .IX Item "-unit" |
| | | Show the unit of the displayed values. |
| | | .IP "\fB\-prefix\fR" 4 |
| | | .IX Item "-prefix" |
| | | Use \s-1SI\s0 prefixes for the displayed values. |
| | | Unless the \*(L"\-byte_binary_prefix\*(R" option is used all the prefixes |
| | | are decimal. |
| | | .IP "\fB\-byte_binary_prefix\fR" 4 |
| | | .IX Item "-byte_binary_prefix" |
| | | Force the use of binary prefixes for byte values. |
| | | .IP "\fB\-sexagesimal\fR" 4 |
| | | .IX Item "-sexagesimal" |
| | | Use sexagesimal format \s-1HH:MM:SS\s0.MICROSECONDS for time values. |
| | | .IP "\fB\-pretty\fR" 4 |
| | | .IX Item "-pretty" |
| | | Prettify the format of the displayed values, it corresponds to the |
| | | options \*(L"\-unit \-prefix \-byte_binary_prefix \-sexagesimal\*(R". |
| | | .IP "\fB\-of, \-print_format\fR \fIwriter_name\fR\fB[=\fR\fIwriter_options\fR\fB]\fR" 4 |
| | | .IX Item "-of, -print_format writer_name[=writer_options]" |
| | | Set the output printing format. |
| | | .Sp |
| | | \&\fIwriter_name\fR specifies the name of the writer, and |
| | | \&\fIwriter_options\fR specifies the options to be passed to the writer. |
| | | .Sp |
| | | For example for printing the output in \s-1JSON\s0 format, specify: |
| | | .Sp |
| | | .Vb 1 |
| | | \& \-print_format json |
| | | .Ve |
| | | .Sp |
| | | For more details on the available output printing formats, see the |
| | | Writers section below. |
| | | .IP "\fB\-sections\fR" 4 |
| | | .IX Item "-sections" |
| | | Print sections structure and section information, and exit. The output |
| | | is not meant to be parsed by a machine. |
| | | .IP "\fB\-select_streams\fR \fIstream_specifier\fR" 4 |
| | | .IX Item "-select_streams stream_specifier" |
| | | Select only the streams specified by \fIstream_specifier\fR. This |
| | | option affects only the options related to streams |
| | | (e.g. \f(CW\*(C`show_streams\*(C'\fR, \f(CW\*(C`show_packets\*(C'\fR, etc.). |
| | | .Sp |
| | | For example to show only audio streams, you can use the command: |
| | | .Sp |
| | | .Vb 1 |
| | | \& ffprobe \-show_streams \-select_streams a INPUT |
| | | .Ve |
| | | .Sp |
| | | To show only video packets belonging to the video stream with index 1: |
| | | .Sp |
| | | .Vb 1 |
| | | \& ffprobe \-show_packets \-select_streams v:1 INPUT |
| | | .Ve |
| | | .IP "\fB\-show_data\fR" 4 |
| | | .IX Item "-show_data" |
| | | Show payload data, as a hexadecimal and \s-1ASCII\s0 dump. Coupled with |
| | | \&\fB\-show_packets\fR, it will dump the packets' data. Coupled with |
| | | \&\fB\-show_streams\fR, it will dump the codec extradata. |
| | | .Sp |
| | | The dump is printed as the \*(L"data\*(R" field. It may contain newlines. |
| | | .IP "\fB\-show_data_hash\fR \fIalgorithm\fR" 4 |
| | | .IX Item "-show_data_hash algorithm" |
| | | Show a hash of payload data, for packets with \fB\-show_packets\fR and for |
| | | codec extradata with \fB\-show_streams\fR. |
| | | .IP "\fB\-show_error\fR" 4 |
| | | .IX Item "-show_error" |
| | | Show information about the error found when trying to probe the input. |
| | | .Sp |
| | | The error information is printed within a section with name \*(L"\s-1ERROR\s0\*(R". |
| | | .IP "\fB\-show_format\fR" 4 |
| | | .IX Item "-show_format" |
| | | Show information about the container format of the input multimedia |
| | | stream. |
| | | .Sp |
| | | All the container format information is printed within a section with |
| | | name \*(L"\s-1FORMAT\s0\*(R". |
| | | .IP "\fB\-show_format_entry\fR \fIname\fR" 4 |
| | | .IX Item "-show_format_entry name" |
| | | Like \fB\-show_format\fR, but only prints the specified entry of the |
| | | container format information, rather than all. This option may be given more |
| | | than once, then all specified entries will be shown. |
| | | .Sp |
| | | This option is deprecated, use \f(CW\*(C`show_entries\*(C'\fR instead. |
| | | .IP "\fB\-show_entries\fR \fIsection_entries\fR" 4 |
| | | .IX Item "-show_entries section_entries" |
| | | Set list of entries to show. |
| | | .Sp |
| | | Entries are specified according to the following |
| | | syntax. \fIsection_entries\fR contains a list of section entries |
| | | separated by \f(CW\*(C`:\*(C'\fR. Each section entry is composed by a section |
| | | name (or unique name), optionally followed by a list of entries local |
| | | to that section, separated by \f(CW\*(C`,\*(C'\fR. |
| | | .Sp |
| | | If section name is specified but is followed by no \f(CW\*(C`=\*(C'\fR, all |
| | | entries are printed to output, together with all the contained |
| | | sections. Otherwise only the entries specified in the local section |
| | | entries list are printed. In particular, if \f(CW\*(C`=\*(C'\fR is specified but |
| | | the list of local entries is empty, then no entries will be shown for |
| | | that section. |
| | | .Sp |
| | | Note that the order of specification of the local section entries is |
| | | not honored in the output, and the usual display order will be |
| | | retained. |
| | | .Sp |
| | | The formal syntax is given by: |
| | | .Sp |
| | | .Vb 3 |
| | | \& <LOCAL_SECTION_ENTRIES> ::= <SECTION_ENTRY_NAME>[,<LOCAL_SECTION_ENTRIES>] |
| | | \& <SECTION_ENTRY> ::= <SECTION_NAME>[=[<LOCAL_SECTION_ENTRIES>]] |
| | | \& <SECTION_ENTRIES> ::= <SECTION_ENTRY>[:<SECTION_ENTRIES>] |
| | | .Ve |
| | | .Sp |
| | | For example, to show only the index and type of each stream, and the \s-1PTS\s0 |
| | | time, duration time, and stream index of the packets, you can specify |
| | | the argument: |
| | | .Sp |
| | | .Vb 1 |
| | | \& packet=pts_time,duration_time,stream_index : stream=index,codec_type |
| | | .Ve |
| | | .Sp |
| | | To show all the entries in the section \*(L"format\*(R", but only the codec |
| | | type in the section \*(L"stream\*(R", specify the argument: |
| | | .Sp |
| | | .Vb 1 |
| | | \& format : stream=codec_type |
| | | .Ve |
| | | .Sp |
| | | To show all the tags in the stream and format sections: |
| | | .Sp |
| | | .Vb 1 |
| | | \& stream_tags : format_tags |
| | | .Ve |
| | | .Sp |
| | | To show only the \f(CW\*(C`title\*(C'\fR tag (if available) in the stream |
| | | sections: |
| | | .Sp |
| | | .Vb 1 |
| | | \& stream_tags=title |
| | | .Ve |
| | | .IP "\fB\-show_packets\fR" 4 |
| | | .IX Item "-show_packets" |
| | | Show information about each packet contained in the input multimedia |
| | | stream. |
| | | .Sp |
| | | The information for each single packet is printed within a dedicated |
| | | section with name \*(L"\s-1PACKET\s0\*(R". |
| | | .IP "\fB\-show_frames\fR" 4 |
| | | .IX Item "-show_frames" |
| | | Show information about each frame and subtitle contained in the input |
| | | multimedia stream. |
| | | .Sp |
| | | The information for each single frame is printed within a dedicated |
| | | section with name \*(L"\s-1FRAME\s0\*(R" or \*(L"\s-1SUBTITLE\s0\*(R". |
| | | .IP "\fB\-show_log\fR \fIloglevel\fR" 4 |
| | | .IX Item "-show_log loglevel" |
| | | Show logging information from the decoder about each frame according to |
| | | the value set in \fIloglevel\fR, (see \f(CW\*(C`\-loglevel\*(C'\fR). This option requires \f(CW\*(C`\-show_frames\*(C'\fR. |
| | | .Sp |
| | | The information for each log message is printed within a dedicated |
| | | section with name \*(L"\s-1LOG\s0\*(R". |
| | | .IP "\fB\-show_streams\fR" 4 |
| | | .IX Item "-show_streams" |
| | | Show information about each media stream contained in the input |
| | | multimedia stream. |
| | | .Sp |
| | | Each media stream information is printed within a dedicated section |
| | | with name \*(L"\s-1STREAM\s0\*(R". |
| | | .IP "\fB\-show_programs\fR" 4 |
| | | .IX Item "-show_programs" |
| | | Show information about programs and their streams contained in the input |
| | | multimedia stream. |
| | | .Sp |
| | | Each media stream information is printed within a dedicated section |
| | | with name \*(L"\s-1PROGRAM_STREAM\s0\*(R". |
| | | .IP "\fB\-show_chapters\fR" 4 |
| | | .IX Item "-show_chapters" |
| | | Show information about chapters stored in the format. |
| | | .Sp |
| | | Each chapter is printed within a dedicated section with name \*(L"\s-1CHAPTER\s0\*(R". |
| | | .IP "\fB\-count_frames\fR" 4 |
| | | .IX Item "-count_frames" |
| | | Count the number of frames per stream and report it in the |
| | | corresponding stream section. |
| | | .IP "\fB\-count_packets\fR" 4 |
| | | .IX Item "-count_packets" |
| | | Count the number of packets per stream and report it in the |
| | | corresponding stream section. |
| | | .IP "\fB\-read_intervals\fR \fIread_intervals\fR" 4 |
| | | .IX Item "-read_intervals read_intervals" |
| | | Read only the specified intervals. \fIread_intervals\fR must be a |
| | | sequence of interval specifications separated by \*(L",\*(R". |
| | | \&\fBffprobe\fR will seek to the interval starting point, and will |
| | | continue reading from that. |
| | | .Sp |
| | | Each interval is specified by two optional parts, separated by \*(L"%\*(R". |
| | | .Sp |
| | | The first part specifies the interval start position. It is |
| | | interpreted as an absolute position, or as a relative offset from the |
| | | current position if it is preceded by the \*(L"+\*(R" character. If this first |
| | | part is not specified, no seeking will be performed when reading this |
| | | interval. |
| | | .Sp |
| | | The second part specifies the interval end position. It is interpreted |
| | | as an absolute position, or as a relative offset from the current |
| | | position if it is preceded by the \*(L"+\*(R" character. If the offset |
| | | specification starts with \*(L"#\*(R", it is interpreted as the number of |
| | | packets to read (not including the flushing packets) from the interval |
| | | start. If no second part is specified, the program will read until the |
| | | end of the input. |
| | | .Sp |
| | | Note that seeking is not accurate, thus the actual interval start |
| | | point may be different from the specified position. Also, when an |
| | | interval duration is specified, the absolute end time will be computed |
| | | by adding the duration to the interval start point found by seeking |
| | | the file, rather than to the specified start value. |
| | | .Sp |
| | | The formal syntax is given by: |
| | | .Sp |
| | | .Vb 2 |
| | | \& <INTERVAL> ::= [<START>|+<START_OFFSET>][%[<END>|+<END_OFFSET>]] |
| | | \& <INTERVALS> ::= <INTERVAL>[,<INTERVALS>] |
| | | .Ve |
| | | .Sp |
| | | A few examples follow. |
| | | .RS 4 |
| | | .IP "\(bu" 4 |
| | | Seek to time 10, read packets until 20 seconds after the found seek |
| | | point, then seek to position \f(CW\*(C`01:30\*(C'\fR (1 minute and thirty |
| | | seconds) and read packets until position \f(CW\*(C`01:45\*(C'\fR. |
| | | .Sp |
| | | .Vb 1 |
| | | \& 10%+20,01:30%01:45 |
| | | .Ve |
| | | .IP "\(bu" 4 |
| | | Read only 42 packets after seeking to position \f(CW\*(C`01:23\*(C'\fR: |
| | | .Sp |
| | | .Vb 1 |
| | | \& 01:23%+#42 |
| | | .Ve |
| | | .IP "\(bu" 4 |
| | | Read only the first 20 seconds from the start: |
| | | .Sp |
| | | .Vb 1 |
| | | \& %+20 |
| | | .Ve |
| | | .IP "\(bu" 4 |
| | | Read from the start until position \f(CW\*(C`02:30\*(C'\fR: |
| | | .Sp |
| | | .Vb 1 |
| | | \& %02:30 |
| | | .Ve |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fB\-show_private_data, \-private\fR" 4 |
| | | .IX Item "-show_private_data, -private" |
| | | Show private data, that is data depending on the format of the |
| | | particular shown element. |
| | | This option is enabled by default, but you may need to disable it |
| | | for specific uses, for example when creating XSD-compliant \s-1XML\s0 output. |
| | | .IP "\fB\-show_program_version\fR" 4 |
| | | .IX Item "-show_program_version" |
| | | Show information related to program version. |
| | | .Sp |
| | | Version information is printed within a section with name |
| | | \&\*(L"\s-1PROGRAM_VERSION\s0\*(R". |
| | | .IP "\fB\-show_library_versions\fR" 4 |
| | | .IX Item "-show_library_versions" |
| | | Show information related to library versions. |
| | | .Sp |
| | | Version information for each library is printed within a section with |
| | | name \*(L"\s-1LIBRARY_VERSION\s0\*(R". |
| | | .IP "\fB\-show_versions\fR" 4 |
| | | .IX Item "-show_versions" |
| | | Show information related to program and library versions. This is the |
| | | equivalent of setting both \fB\-show_program_version\fR and |
| | | \&\fB\-show_library_versions\fR options. |
| | | .IP "\fB\-show_pixel_formats\fR" 4 |
| | | .IX Item "-show_pixel_formats" |
| | | Show information about all pixel formats supported by FFmpeg. |
| | | .Sp |
| | | Pixel format information for each format is printed within a section |
| | | with name \*(L"\s-1PIXEL_FORMAT\s0\*(R". |
| | | .IP "\fB\-bitexact\fR" 4 |
| | | .IX Item "-bitexact" |
| | | Force bitexact output, useful to produce output which is not dependent |
| | | on the specific build. |
| | | .IP "\fB\-i\fR \fIinput_url\fR" 4 |
| | | .IX Item "-i input_url" |
| | | Read \fIinput_url\fR. |
| | | .SH "WRITERS" |
| | | .IX Header "WRITERS" |
| | | A writer defines the output format adopted by \fBffprobe\fR, and will be |
| | | used for printing all the parts of the output. |
| | | .PP |
| | | A writer may accept one or more arguments, which specify the options |
| | | to adopt. The options are specified as a list of \fIkey\fR=\fIvalue\fR |
| | | pairs, separated by \*(L":\*(R". |
| | | .PP |
| | | All writers support the following options: |
| | | .IP "\fBstring_validation, sv\fR" 4 |
| | | .IX Item "string_validation, sv" |
| | | Set string validation mode. |
| | | .Sp |
| | | The following values are accepted. |
| | | .RS 4 |
| | | .IP "\fBfail\fR" 4 |
| | | .IX Item "fail" |
| | | The writer will fail immediately in case an invalid string (\s-1UTF\-8\s0) |
| | | sequence or code point is found in the input. This is especially |
| | | useful to validate input metadata. |
| | | .IP "\fBignore\fR" 4 |
| | | .IX Item "ignore" |
| | | Any validation error will be ignored. This will result in possibly |
| | | broken output, especially with the json or xml writer. |
| | | .IP "\fBreplace\fR" 4 |
| | | .IX Item "replace" |
| | | The writer will substitute invalid \s-1UTF\-8\s0 sequences or code points with |
| | | the string specified with the \fBstring_validation_replacement\fR. |
| | | .RE |
| | | .RS 4 |
| | | .Sp |
| | | Default value is \fBreplace\fR. |
| | | .RE |
| | | .IP "\fBstring_validation_replacement, svr\fR" 4 |
| | | .IX Item "string_validation_replacement, svr" |
| | | Set replacement string to use in case \fBstring_validation\fR is |
| | | set to \fBreplace\fR. |
| | | .Sp |
| | | In case the option is not specified, the writer will assume the empty |
| | | string, that is it will remove the invalid sequences from the input |
| | | strings. |
| | | .PP |
| | | A description of the currently available writers follows. |
| | | .SS "default" |
| | | .IX Subsection "default" |
| | | Default format. |
| | | .PP |
| | | Print each section in the form: |
| | | .PP |
| | | .Vb 5 |
| | | \& [SECTION] |
| | | \& key1=val1 |
| | | \& ... |
| | | \& keyN=valN |
| | | \& [/SECTION] |
| | | .Ve |
| | | .PP |
| | | Metadata tags are printed as a line in the corresponding \s-1FORMAT\s0, \s-1STREAM\s0 or |
| | | \&\s-1PROGRAM_STREAM\s0 section, and are prefixed by the string \*(L"\s-1TAG:\s0\*(R". |
| | | .PP |
| | | A description of the accepted options follows. |
| | | .IP "\fBnokey, nk\fR" 4 |
| | | .IX Item "nokey, nk" |
| | | If set to 1 specify not to print the key of each field. Default value |
| | | is 0. |
| | | .IP "\fBnoprint_wrappers, nw\fR" 4 |
| | | .IX Item "noprint_wrappers, nw" |
| | | If set to 1 specify not to print the section header and footer. |
| | | Default value is 0. |
| | | .SS "compact, csv" |
| | | .IX Subsection "compact, csv" |
| | | Compact and \s-1CSV\s0 format. |
| | | .PP |
| | | The \f(CW\*(C`csv\*(C'\fR writer is equivalent to \f(CW\*(C`compact\*(C'\fR, but supports |
| | | different defaults. |
| | | .PP |
| | | Each section is printed on a single line. |
| | | If no option is specifid, the output has the form: |
| | | .PP |
| | | .Vb 1 |
| | | \& section|key1=val1| ... |keyN=valN |
| | | .Ve |
| | | .PP |
| | | Metadata tags are printed in the corresponding \*(L"format\*(R" or \*(L"stream\*(R" |
| | | section. A metadata tag key, if printed, is prefixed by the string |
| | | \&\*(L"tag:\*(R". |
| | | .PP |
| | | The description of the accepted options follows. |
| | | .IP "\fBitem_sep, s\fR" 4 |
| | | .IX Item "item_sep, s" |
| | | Specify the character to use for separating fields in the output line. |
| | | It must be a single printable character, it is \*(L"|\*(R" by default (\*(L",\*(R" for |
| | | the \f(CW\*(C`csv\*(C'\fR writer). |
| | | .IP "\fBnokey, nk\fR" 4 |
| | | .IX Item "nokey, nk" |
| | | If set to 1 specify not to print the key of each field. Its default |
| | | value is 0 (1 for the \f(CW\*(C`csv\*(C'\fR writer). |
| | | .IP "\fBescape, e\fR" 4 |
| | | .IX Item "escape, e" |
| | | Set the escape mode to use, default to \*(L"c\*(R" (\*(L"csv\*(R" for the \f(CW\*(C`csv\*(C'\fR |
| | | writer). |
| | | .Sp |
| | | It can assume one of the following values: |
| | | .RS 4 |
| | | .IP "\fBc\fR" 4 |
| | | .IX Item "c" |
| | | Perform C\-like escaping. Strings containing a newline (\fB\en\fR), carriage |
| | | return (\fB\er\fR), a tab (\fB\et\fR), a form feed (\fB\ef\fR), the escaping |
| | | character (\fB\e\fR) or the item separator character \fI\s-1SEP\s0\fR are escaped |
| | | using C\-like fashioned escaping, so that a newline is converted to the |
| | | sequence \fB\en\fR, a carriage return to \fB\er\fR, \fB\e\fR to \fB\e\e\fR and |
| | | the separator \fI\s-1SEP\s0\fR is converted to \fB\e\fR\fI\s-1SEP\s0\fR. |
| | | .IP "\fBcsv\fR" 4 |
| | | .IX Item "csv" |
| | | Perform CSV-like escaping, as described in \s-1RFC4180\s0. Strings |
| | | containing a newline (\fB\en\fR), a carriage return (\fB\er\fR), a double quote |
| | | (\fB"\fR), or \fI\s-1SEP\s0\fR are enclosed in double-quotes. |
| | | .IP "\fBnone\fR" 4 |
| | | .IX Item "none" |
| | | Perform no escaping. |
| | | .RE |
| | | .RS 4 |
| | | .RE |
| | | .IP "\fBprint_section, p\fR" 4 |
| | | .IX Item "print_section, p" |
| | | Print the section name at the beginning of each line if the value is |
| | | \&\f(CW1\fR, disable it with value set to \f(CW0\fR. Default value is |
| | | \&\f(CW1\fR. |
| | | .SS "flat" |
| | | .IX Subsection "flat" |
| | | Flat format. |
| | | .PP |
| | | A free-form output where each line contains an explicit key=value, such as |
| | | \&\*(L"streams.stream.3.tags.foo=bar\*(R". The output is shell escaped, so it can be |
| | | directly embedded in sh scripts as long as the separator character is an |
| | | alphanumeric character or an underscore (see \fIsep_char\fR option). |
| | | .PP |
| | | The description of the accepted options follows. |
| | | .IP "\fBsep_char, s\fR" 4 |
| | | .IX Item "sep_char, s" |
| | | Separator character used to separate the chapter, the section name, IDs and |
| | | potential tags in the printed field key. |
| | | .Sp |
| | | Default value is \fB.\fR. |
| | | .IP "\fBhierarchical, h\fR" 4 |
| | | .IX Item "hierarchical, h" |
| | | Specify if the section name specification should be hierarchical. If |
| | | set to 1, and if there is more than one section in the current |
| | | chapter, the section name will be prefixed by the name of the |
| | | chapter. A value of 0 will disable this behavior. |
| | | .Sp |
| | | Default value is 1. |
| | | .SS "ini" |
| | | .IX Subsection "ini" |
| | | \&\s-1INI\s0 format output. |
| | | .PP |
| | | Print output in an \s-1INI\s0 based format. |
| | | .PP |
| | | The following conventions are adopted: |
| | | .IP "\(bu" 4 |
| | | all key and values are \s-1UTF\-8\s0 |
| | | .IP "\(bu" 4 |
| | | \&\fB.\fR is the subgroup separator |
| | | .IP "\(bu" 4 |
| | | newline, \fB\et\fR, \fB\ef\fR, \fB\eb\fR and the following characters are |
| | | escaped |
| | | .IP "\(bu" 4 |
| | | \&\fB\e\fR is the escape character |
| | | .IP "\(bu" 4 |
| | | \&\fB#\fR is the comment indicator |
| | | .IP "\(bu" 4 |
| | | \&\fB=\fR is the key/value separator |
| | | .IP "\(bu" 4 |
| | | \&\fB:\fR is not used but usually parsed as key/value separator |
| | | .PP |
| | | This writer accepts options as a list of \fIkey\fR=\fIvalue\fR pairs, |
| | | separated by \fB:\fR. |
| | | .PP |
| | | The description of the accepted options follows. |
| | | .IP "\fBhierarchical, h\fR" 4 |
| | | .IX Item "hierarchical, h" |
| | | Specify if the section name specification should be hierarchical. If |
| | | set to 1, and if there is more than one section in the current |
| | | chapter, the section name will be prefixed by the name of the |
| | | chapter. A value of 0 will disable this behavior. |
| | | .Sp |
| | | Default value is 1. |
| | | .SS "json" |
| | | .IX Subsection "json" |
| | | \&\s-1JSON\s0 based format. |
| | | .PP |
| | | Each section is printed using \s-1JSON\s0 notation. |
| | | .PP |
| | | The description of the accepted options follows. |
| | | .IP "\fBcompact, c\fR" 4 |
| | | .IX Item "compact, c" |
| | | If set to 1 enable compact output, that is each section will be |
| | | printed on a single line. Default value is 0. |
| | | .PP |
| | | For more information about \s-1JSON\s0, see <\fBhttp://www.json.org/\fR>. |
| | | .SS "xml" |
| | | .IX Subsection "xml" |
| | | \&\s-1XML\s0 based format. |
| | | .PP |
| | | The \s-1XML\s0 output is described in the \s-1XML\s0 schema description file |
| | | \&\fIffprobe.xsd\fR installed in the FFmpeg datadir. |
| | | .PP |
| | | An updated version of the schema can be retrieved at the url |
| | | <\fBhttp://www.ffmpeg.org/schema/ffprobe.xsd\fR>, which redirects to the |
| | | latest schema committed into the FFmpeg development source code tree. |
| | | .PP |
| | | Note that the output issued will be compliant to the |
| | | \&\fIffprobe.xsd\fR schema only when no special global output options |
| | | (\fBunit\fR, \fBprefix\fR, \fBbyte_binary_prefix\fR, |
| | | \&\fBsexagesimal\fR etc.) are specified. |
| | | .PP |
| | | The description of the accepted options follows. |
| | | .IP "\fBfully_qualified, q\fR" 4 |
| | | .IX Item "fully_qualified, q" |
| | | If set to 1 specify if the output should be fully qualified. Default |
| | | value is 0. |
| | | This is required for generating an \s-1XML\s0 file which can be validated |
| | | through an \s-1XSD\s0 file. |
| | | .IP "\fBxsd_strict, x\fR" 4 |
| | | .IX Item "xsd_strict, x" |
| | | If set to 1 perform more checks for ensuring that the output is \s-1XSD\s0 |
| | | compliant. Default value is 0. |
| | | This option automatically sets \fBfully_qualified\fR to 1. |
| | | .PP |
| | | For more information about the \s-1XML\s0 format, see |
| | | <\fBhttp://www.w3.org/XML/\fR>. |
| | | .SH "TIMECODE" |
| | | .IX Header "TIMECODE" |
| | | \&\fBffprobe\fR supports Timecode extraction: |
| | | .IP "\(bu" 4 |
| | | \&\s-1MPEG1/2\s0 timecode is extracted from the \s-1GOP\s0, and is available in the video |
| | | stream details (\fB\-show_streams\fR, see \fItimecode\fR). |
| | | .IP "\(bu" 4 |
| | | \&\s-1MOV\s0 timecode is extracted from tmcd track, so is available in the tmcd |
| | | stream metadata (\fB\-show_streams\fR, see \fITAG:timecode\fR). |
| | | .IP "\(bu" 4 |
| | | \&\s-1DV\s0, \s-1GXF\s0 and \s-1AVI\s0 timecodes are available in format metadata |
| | | (\fB\-show_format\fR, see \fITAG:timecode\fR). |
| | | .SH "SEE ALSO" |
| | | .IX Header "SEE ALSO" |
| | | \&\fIffprobe\-all\fR\|(1), |
| | | \&\fIffmpeg\fR\|(1), \fIffplay\fR\|(1), |
| | | \&\fIffmpeg\-utils\fR\|(1), \fIffmpeg\-scaler\fR\|(1), \fIffmpeg\-resampler\fR\|(1), |
| | | \&\fIffmpeg\-codecs\fR\|(1), \fIffmpeg\-bitstream\-filters\fR\|(1), \fIffmpeg\-formats\fR\|(1), |
| | | \&\fIffmpeg\-devices\fR\|(1), \fIffmpeg\-protocols\fR\|(1), \fIffmpeg\-filters\fR\|(1) |
| | | .SH "AUTHORS" |
| | | .IX Header "AUTHORS" |
| | | The FFmpeg developers. |
| | | .PP |
| | | For details about the authorship, see the Git history of the project |
| | | (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command |
| | | \&\fBgit log\fR in the FFmpeg source directory, or browsing the |
| | | online repository at <\fBhttp://source.ffmpeg.org\fR>. |
| | | .PP |
| | | Maintainers for the specific components are listed in the file |
| | | \&\fI\s-1MAINTAINERS\s0\fR in the source code tree. |