yading@10: =head1 NAME yading@10: yading@10: ffprobe - ffprobe media prober yading@10: yading@10: =head1 SYNOPSIS yading@10: yading@10: yading@10: ffprobe [I] [F] yading@10: yading@10: yading@10: =head1 DESCRIPTION yading@10: yading@10: yading@10: ffprobe gathers information from multimedia streams and prints it in yading@10: human- and machine-readable fashion. yading@10: 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: 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: 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: 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: 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 B option. yading@10: 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 B. yading@10: yading@10: Metadata tags stored in the container or in the streams are recognized yading@10: and printed in the corresponding "FORMAT" or "STREAM" section. yading@10: yading@10: yading@10: yading@10: =head1 OPTIONS yading@10: yading@10: 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 SI yading@10: unit prefixes, for example: 'K', 'M', or 'G'. yading@10: yading@10: If 'i' is appended to the SI 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 SI unit yading@10: prefix multiplies the value by 8. This allows using, for example: yading@10: 'KB', 'MiB', 'G' and 'B' as number suffixes. yading@10: 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 "no". For example using "-nofoo" yading@10: will set the boolean option with name "foo" to false. yading@10: yading@10: yading@10: yading@10: =head2 Stream specifiers yading@10: 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: 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. C<-codec:a:1 ac3> contains the yading@10: C stream specifier, which matches the second audio stream. Therefore, it yading@10: would select the ac3 codec for the second audio stream. yading@10: 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 C<-b:a 128k> matches all audio yading@10: streams. yading@10: yading@10: An empty stream specifier matches all streams. For example, C<-codec copy> yading@10: or C<-codec: copy> would copy all the streams without reencoding. yading@10: yading@10: Possible forms of stream specifiers are: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item I yading@10: yading@10: Matches the stream with this index. E.g. C<-threads:1 4> would set the yading@10: thread count for the second stream to 4. yading@10: yading@10: =item IB<[:>IB<]> yading@10: yading@10: I is one of following: 'v' for video, 'a' for audio, 's' for subtitle, yading@10: 'd' for data, and 't' for attachments. If I is given, then it matches yading@10: stream number I of this type. Otherwise, it matches all yading@10: streams of this type. yading@10: yading@10: =item BIB<[:>IB<]> yading@10: yading@10: If I is given, then it matches the stream with number I yading@10: in the program with the id I. Otherwise, it matches all streams in the yading@10: program. yading@10: yading@10: =item B<#>I yading@10: yading@10: Matches the stream by a format-specific ID. yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head2 Generic options yading@10: yading@10: yading@10: These options are shared amongst the ff* tools. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item B<-L> yading@10: yading@10: Show license. yading@10: yading@10: yading@10: =item B<-h, -?, -help, --help [>IB<]> yading@10: yading@10: Show help. An optional parameter may be specified to print help about a specific yading@10: item. yading@10: yading@10: Possible values of I are: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item BI yading@10: yading@10: Print detailed information about the decoder named I. Use the yading@10: B<-decoders> option to get a list of all decoders. yading@10: yading@10: yading@10: =item BI yading@10: yading@10: Print detailed information about the encoder named I. Use the yading@10: B<-encoders> option to get a list of all encoders. yading@10: yading@10: yading@10: =item BI yading@10: yading@10: Print detailed information about the demuxer named I. Use the yading@10: B<-formats> option to get a list of all demuxers and muxers. yading@10: yading@10: yading@10: =item BI yading@10: yading@10: Print detailed information about the muxer named I. Use the yading@10: B<-formats> option to get a list of all muxers and demuxers. yading@10: yading@10: yading@10: =item BI yading@10: yading@10: Print detailed information about the filter name I. Use the yading@10: B<-filters> option to get a list of all filters. yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =item B<-version> yading@10: yading@10: Show version. yading@10: yading@10: yading@10: =item B<-formats> yading@10: yading@10: Show available formats. yading@10: yading@10: yading@10: =item B<-codecs> yading@10: yading@10: Show all codecs known to libavcodec. yading@10: 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: yading@10: yading@10: =item B<-decoders> yading@10: yading@10: Show available decoders. yading@10: yading@10: yading@10: =item B<-encoders> yading@10: yading@10: Show all available encoders. yading@10: yading@10: yading@10: =item B<-bsfs> yading@10: yading@10: Show available bitstream filters. yading@10: yading@10: yading@10: =item B<-protocols> yading@10: yading@10: Show available protocols. yading@10: yading@10: yading@10: =item B<-filters> yading@10: yading@10: Show available libavfilter filters. yading@10: yading@10: yading@10: =item B<-pix_fmts> yading@10: yading@10: Show available pixel formats. yading@10: yading@10: yading@10: =item B<-sample_fmts> yading@10: yading@10: Show available sample formats. yading@10: yading@10: yading@10: =item B<-layouts> yading@10: yading@10: Show channel names and standard channel layouts. yading@10: yading@10: yading@10: =item B<-loglevel [repeat+]>I B<| -v [repeat+]>I yading@10: yading@10: Set the logging level used by the library. yading@10: Adding "repeat+" indicates that repeated log output should not be compressed yading@10: to the first line and the "Last message repeated n times" line will be yading@10: omitted. "repeat" can also be used alone. yading@10: If "repeat" 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: I is a number or a string containing one of the following values: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: Show nothing at all; be silent. yading@10: yading@10: =item B yading@10: 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: yading@10: =item B yading@10: yading@10: Only show fatal errors. These are errors after which the process absolutely yading@10: cannot continue after. yading@10: yading@10: =item B yading@10: yading@10: Show all errors, including ones which can be recovered from. yading@10: yading@10: =item B yading@10: yading@10: Show all warnings and errors. Any message related to possibly yading@10: incorrect or unexpected events will be shown. yading@10: yading@10: =item B yading@10: yading@10: Show informative messages during processing. This is in addition to yading@10: warnings and errors. This is the default value. yading@10: yading@10: =item B yading@10: yading@10: Same as C, except more verbose. yading@10: yading@10: =item B yading@10: yading@10: Show everything, including debugging information. yading@10: yading@10: =back yading@10: yading@10: 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: B or B, or can be forced setting yading@10: the environment variable B. yading@10: The use of the environment variable B is deprecated and yading@10: will be dropped in a following FFmpeg version. yading@10: yading@10: yading@10: =item B<-report> yading@10: yading@10: Dump full command line and console output to a file named yading@10: C-I-I.log> in the current yading@10: directory. yading@10: This file can be useful for bug reports. yading@10: It also implies C<-loglevel verbose>. yading@10: yading@10: Setting the environment variable C 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: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: set the file name to use for the report; C<%p> is expanded to the name yading@10: of the program, C<%t> is expanded to a timestamp, C<%%> is expanded yading@10: to a plain C<%> yading@10: yading@10: =back yading@10: yading@10: yading@10: Errors in parsing the environment variable are not fatal, and will not yading@10: appear in the report. yading@10: yading@10: yading@10: =item B<-cpuflags flags (>IB<)> yading@10: 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: yading@10: ffmpeg -cpuflags -sse+mmx ... yading@10: ffmpeg -cpuflags mmx ... yading@10: ffmpeg -cpuflags 0 ... yading@10: yading@10: Possible flags for this option are: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B<3dnow> yading@10: yading@10: yading@10: =item B<3dnowext> yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =item B yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =item B<-opencl_options options (>IB<)> yading@10: yading@10: Set OpenCL environment options. This option is only available when yading@10: FFmpeg has been compiled with C<--enable-opencl>. yading@10: yading@10: I must be a list of I=I 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: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head2 AVOptions yading@10: yading@10: 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: B<-help> option. They are separated into two categories: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B yading@10: 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: yading@10: =item B yading@10: 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: yading@10: =back yading@10: yading@10: yading@10: For example to write an ID3v2.3 header instead of a default ID3v2.4 to yading@10: an MP3 file, use the B private option of the MP3 yading@10: muxer: yading@10: yading@10: ffmpeg -i input.flac -id3v2_version 3 out.mp3 yading@10: yading@10: yading@10: All codec AVOptions are obviously per-stream, so the chapter on stream yading@10: specifiers applies to them yading@10: yading@10: Note B<-nooption> syntax cannot be used for boolean AVOptions, yading@10: use B<-option 0>/B<-option 1>. yading@10: 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: yading@10: yading@10: =head2 Main options yading@10: yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item B<-f> I yading@10: yading@10: Force format to use. yading@10: yading@10: yading@10: =item B<-unit> yading@10: yading@10: Show the unit of the displayed values. yading@10: yading@10: yading@10: =item B<-prefix> yading@10: yading@10: Use SI prefixes for the displayed values. yading@10: Unless the "-byte_binary_prefix" option is used all the prefixes yading@10: are decimal. yading@10: yading@10: yading@10: =item B<-byte_binary_prefix> yading@10: yading@10: Force the use of binary prefixes for byte values. yading@10: yading@10: yading@10: =item B<-sexagesimal> yading@10: yading@10: Use sexagesimal format HH:MM:SS.MICROSECONDS for time values. yading@10: yading@10: yading@10: =item B<-pretty> yading@10: yading@10: Prettify the format of the displayed values, it corresponds to the yading@10: options "-unit -prefix -byte_binary_prefix -sexagesimal". yading@10: yading@10: yading@10: =item B<-of, -print_format> IB<[=>IB<]> yading@10: yading@10: Set the output printing format. yading@10: yading@10: I specifies the name of the writer, and yading@10: I specifies the options to be passed to the writer. yading@10: yading@10: For example for printing the output in JSON format, specify: yading@10: yading@10: -print_format json yading@10: yading@10: yading@10: For more details on the available output printing formats, see the yading@10: Writers section below. yading@10: yading@10: yading@10: =item B<-sections> yading@10: 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: yading@10: yading@10: =item B<-select_streams> I yading@10: yading@10: Select only the streams specified by I. This yading@10: option affects only the options related to streams yading@10: (e.g. C, C, etc.). yading@10: yading@10: For example to show only audio streams, you can use the command: yading@10: yading@10: ffprobe -show_streams -select_streams a INPUT yading@10: yading@10: yading@10: To show only video packets belonging to the video stream with index 1: yading@10: yading@10: ffprobe -show_packets -select_streams v:1 INPUT yading@10: yading@10: yading@10: yading@10: =item B<-show_data> yading@10: yading@10: Show payload data, as an hexadecimal and ASCII dump. Coupled with yading@10: B<-show_packets>, it will dump the packets' data. Coupled with yading@10: B<-show_streams>, it will dump the codec extradata. yading@10: yading@10: The dump is printed as the "data" field. It may contain newlines. yading@10: yading@10: yading@10: =item B<-show_error> yading@10: yading@10: Show information about the error found when trying to probe the input. yading@10: yading@10: The error information is printed within a section with name "ERROR". yading@10: yading@10: yading@10: =item B<-show_format> yading@10: yading@10: Show information about the container format of the input multimedia yading@10: stream. yading@10: yading@10: All the container format information is printed within a section with yading@10: name "FORMAT". yading@10: yading@10: yading@10: =item B<-show_format_entry> I yading@10: yading@10: Like B<-show_format>, 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: yading@10: This option is deprecated, use C instead. yading@10: yading@10: yading@10: =item B<-show_entries> I yading@10: yading@10: Set list of entries to show. yading@10: yading@10: Entries are specified according to the following yading@10: syntax. I contains a list of section entries yading@10: separated by C<:>. 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 C<,>. yading@10: yading@10: If section name is specified but is followed by no C<=>, 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 C<=> 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: 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: yading@10: The formal syntax is given by: yading@10: yading@10: ::= [,] yading@10: ::= [=[]] yading@10: ::= [:] yading@10: yading@10: yading@10: For example, to show only the index and type of each stream, and the PTS yading@10: time, duration time, and stream index of the packets, you can specify yading@10: the argument: yading@10: yading@10: packet=pts_time,duration_time,stream_index : stream=index,codec_type yading@10: yading@10: yading@10: To show all the entries in the section "format", but only the codec yading@10: type in the section "stream", specify the argument: yading@10: yading@10: format : stream=codec_type yading@10: yading@10: yading@10: To show all the tags in the stream and format sections: yading@10: yading@10: format_tags : format_tags yading@10: yading@10: yading@10: To show only the C tag (if available) in the stream yading@10: sections: yading@10: yading@10: stream_tags=title yading@10: yading@10: yading@10: yading@10: =item B<-show_packets> yading@10: yading@10: Show information about each packet contained in the input multimedia yading@10: stream. yading@10: yading@10: The information for each single packet is printed within a dedicated yading@10: section with name "PACKET". yading@10: yading@10: yading@10: =item B<-show_frames> yading@10: yading@10: Show information about each frame contained in the input multimedia yading@10: stream. yading@10: yading@10: The information for each single frame is printed within a dedicated yading@10: section with name "FRAME". yading@10: yading@10: yading@10: =item B<-show_streams> yading@10: yading@10: Show information about each media stream contained in the input yading@10: multimedia stream. yading@10: yading@10: Each media stream information is printed within a dedicated section yading@10: with name "STREAM". yading@10: yading@10: yading@10: =item B<-count_frames> yading@10: yading@10: Count the number of frames per stream and report it in the yading@10: corresponding stream section. yading@10: yading@10: yading@10: =item B<-count_packets> yading@10: yading@10: Count the number of packets per stream and report it in the yading@10: corresponding stream section. yading@10: yading@10: yading@10: =item B<-show_private_data, -private> yading@10: 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 XML output. yading@10: yading@10: yading@10: =item B<-show_program_version> yading@10: yading@10: Show information related to program version. yading@10: yading@10: Version information is printed within a section with name yading@10: "PROGRAM_VERSION". yading@10: yading@10: yading@10: =item B<-show_library_versions> yading@10: yading@10: Show information related to library versions. yading@10: yading@10: Version information for each library is printed within a section with yading@10: name "LIBRARY_VERSION". yading@10: yading@10: yading@10: =item B<-show_versions> yading@10: yading@10: Show information related to program and library versions. This is the yading@10: equivalent of setting both B<-show_program_version> and yading@10: B<-show_library_versions> options. yading@10: yading@10: yading@10: =item B<-bitexact> yading@10: yading@10: Force bitexact output, useful to produce output which is not dependent yading@10: on the specific build. yading@10: yading@10: yading@10: =item B<-i> I<input_file> yading@10: yading@10: Read I<input_file>. yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head1 WRITERS yading@10: yading@10: yading@10: A writer defines the output format adopted by B<ffprobe>, and will be yading@10: used for printing all the parts of the output. yading@10: 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 I<key>=I<value> yading@10: pairs, separated by ":". yading@10: yading@10: A description of the currently available writers follows. yading@10: yading@10: yading@10: =head2 default yading@10: yading@10: Default format. yading@10: yading@10: Print each section in the form: yading@10: yading@10: [SECTION] yading@10: key1=val1 yading@10: ... yading@10: keyN=valN yading@10: [/SECTION] yading@10: yading@10: yading@10: Metadata tags are printed as a line in the corresponding FORMAT or yading@10: STREAM section, and are prefixed by the string "TAG:". yading@10: yading@10: A description of the accepted options follows. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item B<nokey, nk> yading@10: yading@10: If set to 1 specify not to print the key of each field. Default value yading@10: is 0. yading@10: yading@10: yading@10: =item B<noprint_wrappers, nw> yading@10: yading@10: If set to 1 specify not to print the section header and footer. yading@10: Default value is 0. yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head2 compact, csv yading@10: yading@10: Compact and CSV format. yading@10: yading@10: The C<csv> writer is equivalent to C<compact>, but supports yading@10: different defaults. yading@10: yading@10: Each section is printed on a single line. yading@10: If no option is specifid, the output has the form: yading@10: yading@10: section|key1=val1| ... |keyN=valN yading@10: yading@10: yading@10: Metadata tags are printed in the corresponding "format" or "stream" yading@10: section. A metadata tag key, if printed, is prefixed by the string yading@10: "tag:". yading@10: yading@10: The description of the accepted options follows. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item B<item_sep, s> yading@10: 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 "|" by default ("," for yading@10: the C<csv> writer). yading@10: yading@10: yading@10: =item B<nokey, nk> yading@10: 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 C<csv> writer). yading@10: yading@10: yading@10: =item B<escape, e> yading@10: yading@10: Set the escape mode to use, default to "c" ("csv" for the C<csv> yading@10: writer). yading@10: yading@10: It can assume one of the following values: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B<c> yading@10: yading@10: Perform C-like escaping. Strings containing a newline ('\n'), carriage yading@10: return ('\r'), a tab ('\t'), a form feed ('\f'), the escaping yading@10: character ('\') or the item separator character I<SEP> are escaped using C-like fashioned yading@10: escaping, so that a newline is converted to the sequence "\n", a yading@10: carriage return to "\r", '\' to "\\" and the separator I<SEP> is yading@10: converted to "\I<SEP>". yading@10: yading@10: yading@10: =item B<csv> yading@10: yading@10: Perform CSV-like escaping, as described in RFC4180. Strings yading@10: containing a newline ('\n'), a carriage return ('\r'), a double quote yading@10: ('"'), or I<SEP> are enclosed in double-quotes. yading@10: yading@10: yading@10: =item B<none> yading@10: yading@10: Perform no escaping. yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =item B<print_section, p> yading@10: yading@10: Print the section name at the begin of each line if the value is yading@10: C<1>, disable it with value set to C<0>. Default value is yading@10: C<1>. yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head2 flat yading@10: yading@10: Flat format. yading@10: yading@10: A free-form output where each line contains an explicit key=value, such as yading@10: "streams.stream.3.tags.foo=bar". 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 I<sep_char> option). yading@10: yading@10: The description of the accepted options follows. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B<sep_char, s> yading@10: 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: yading@10: Default value is '.'. yading@10: yading@10: yading@10: =item B<hierarchical, h> yading@10: 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: yading@10: Default value is 1. yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head2 ini yading@10: yading@10: INI format output. yading@10: yading@10: Print output in an INI based format. yading@10: yading@10: The following conventions are adopted: yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item * yading@10: yading@10: all key and values are UTF-8 yading@10: yading@10: =item * yading@10: yading@10: '.' is the subgroup separator yading@10: yading@10: =item * yading@10: yading@10: newline, '\t', '\f', '\b' and the following characters are escaped yading@10: yading@10: =item * yading@10: yading@10: '\' is the escape character yading@10: yading@10: =item * yading@10: yading@10: '#' is the comment indicator yading@10: yading@10: =item * yading@10: yading@10: '=' is the key/value separator yading@10: yading@10: =item * yading@10: yading@10: ':' is not used but usually parsed as key/value separator yading@10: yading@10: =back yading@10: yading@10: yading@10: This writer accepts options as a list of I<key>=I<value> pairs, yading@10: separated by ":". yading@10: yading@10: The description of the accepted options follows. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: =item B<hierarchical, h> yading@10: 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: yading@10: Default value is 1. yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: =head2 json yading@10: yading@10: JSON based format. yading@10: yading@10: Each section is printed using JSON notation. yading@10: yading@10: The description of the accepted options follows. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item B<compact, c> yading@10: 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: yading@10: =back yading@10: yading@10: yading@10: For more information about JSON, see E<lt>B<http://www.json.org/>E<gt>. yading@10: yading@10: yading@10: =head2 xml yading@10: yading@10: XML based format. yading@10: yading@10: The XML output is described in the XML schema description file yading@10: F<ffprobe.xsd> installed in the FFmpeg datadir. yading@10: yading@10: An updated version of the schema can be retrieved at the url yading@10: E<lt>B<http://www.ffmpeg.org/schema/ffprobe.xsd>E<gt>, which redirects to the yading@10: latest schema committed into the FFmpeg development source code tree. yading@10: yading@10: Note that the output issued will be compliant to the yading@10: F<ffprobe.xsd> schema only when no special global output options yading@10: (B<unit>, B<prefix>, B<byte_binary_prefix>, yading@10: B<sexagesimal> etc.) are specified. yading@10: yading@10: The description of the accepted options follows. yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item B<fully_qualified, q> yading@10: 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 XML file which can be validated yading@10: through an XSD file. yading@10: yading@10: yading@10: =item B<xsd_compliant, x> yading@10: yading@10: If set to 1 perform more checks for ensuring that the output is XSD yading@10: compliant. Default value is 0. yading@10: This option automatically sets B<fully_qualified> to 1. yading@10: yading@10: =back yading@10: yading@10: yading@10: For more information about the XML format, see yading@10: E<lt>B<http://www.w3.org/XML/>E<gt>. yading@10: yading@10: yading@10: =head1 TIMECODE yading@10: yading@10: yading@10: B<ffprobe> supports Timecode extraction: yading@10: yading@10: yading@10: =over 4 yading@10: yading@10: yading@10: yading@10: =item * yading@10: yading@10: MPEG1/2 timecode is extracted from the GOP, and is available in the video yading@10: stream details (B<-show_streams>, see I<timecode>). yading@10: yading@10: yading@10: =item * yading@10: yading@10: MOV timecode is extracted from tmcd track, so is available in the tmcd yading@10: stream metadata (B<-show_streams>, see I<TAG:timecode>). yading@10: yading@10: yading@10: =item * yading@10: yading@10: DV, GXF and AVI timecodes are available in format metadata yading@10: (B<-show_format>, see I<TAG:timecode>). yading@10: yading@10: yading@10: =back yading@10: yading@10: yading@10: yading@10: yading@10: =head1 SEE ALSO yading@10: yading@10: yading@10: yading@10: ffprobe-all(1), yading@10: ffmpeg(1), ffplay(1), ffserver(1), yading@10: ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1), yading@10: ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1), yading@10: ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1) yading@10: yading@10: yading@10: =head1 AUTHORS yading@10: yading@10: yading@10: The FFmpeg developers. yading@10: 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: B<git log> in the FFmpeg source directory, or browsing the yading@10: online repository at E<lt>B<http://source.ffmpeg.org>E<gt>. yading@10: yading@10: Maintainers for the specific components are listed in the file yading@10: F<MAINTAINERS> in the source code tree. yading@10: yading@10: yading@10: