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