mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
448 lines
12 KiB
Plaintext
448 lines
12 KiB
Plaintext
\input texinfo @c -*- texinfo -*-
|
|
|
|
@settitle ffprobe Documentation
|
|
@titlepage
|
|
@center @titlefont{ffprobe Documentation}
|
|
@end titlepage
|
|
|
|
@top
|
|
|
|
@contents
|
|
|
|
@chapter Synopsis
|
|
|
|
The generic syntax is:
|
|
|
|
@example
|
|
@c man begin SYNOPSIS
|
|
ffprobe [options] [@file{input_file}]
|
|
@c man end
|
|
@end example
|
|
|
|
@chapter Description
|
|
@c man begin DESCRIPTION
|
|
|
|
ffprobe gathers information from multimedia streams and prints it in
|
|
human- and machine-readable fashion.
|
|
|
|
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.
|
|
|
|
If a filename is specified in input, ffprobe will try to open and
|
|
probe the file content. If the file cannot be opened or recognized as
|
|
a multimedia file, a positive exit code is returned.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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 @option{print_format} option.
|
|
|
|
Metadata tags stored in the container or in the streams are recognized
|
|
and printed in the corresponding "FORMAT" or "STREAM" section.
|
|
|
|
@c man end
|
|
|
|
@chapter Options
|
|
@c man begin OPTIONS
|
|
|
|
@include avtools-common-opts.texi
|
|
|
|
@section Main options
|
|
|
|
@table @option
|
|
|
|
@item -f @var{format}
|
|
Force format to use.
|
|
|
|
@item -unit
|
|
Show the unit of the displayed values.
|
|
|
|
@item -prefix
|
|
Use SI prefixes for the displayed values.
|
|
Unless the "-byte_binary_prefix" option is used all the prefixes
|
|
are decimal.
|
|
|
|
@item -byte_binary_prefix
|
|
Force the use of binary prefixes for byte values.
|
|
|
|
@item -sexagesimal
|
|
Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
|
|
|
|
@item -pretty
|
|
Prettify the format of the displayed values, it corresponds to the
|
|
options "-unit -prefix -byte_binary_prefix -sexagesimal".
|
|
|
|
@item -of, -print_format @var{writer_name}[=@var{writer_options}]
|
|
Set the output printing format.
|
|
|
|
@var{writer_name} specifies the name of the writer, and
|
|
@var{writer_options} specifies the options to be passed to the writer.
|
|
|
|
For example for printing the output in JSON format, specify:
|
|
@example
|
|
-print_format json
|
|
@end example
|
|
|
|
For more details on the available output printing formats, see the
|
|
Writers section below.
|
|
|
|
@item -show_data
|
|
Show payload data, as an hexadecimal and ASCII dump. Coupled with
|
|
@option{-show_packets}, it will dump the packets' data. Coupled with
|
|
@option{-show_streams}, it will dump the codec extradata.
|
|
|
|
The dump is printed as the "data" field. It may contain newlines.
|
|
|
|
@item -show_error
|
|
Show information about the error found when trying to probe the input.
|
|
|
|
The error information is printed within a section with name "ERROR".
|
|
|
|
@item -show_format
|
|
Show information about the container format of the input multimedia
|
|
stream.
|
|
|
|
All the container format information is printed within a section with
|
|
name "FORMAT".
|
|
|
|
@item -show_format_entry @var{name}
|
|
Like @option{-show_format}, 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.
|
|
|
|
@item -show_packets
|
|
Show information about each packet contained in the input multimedia
|
|
stream.
|
|
|
|
The information for each single packet is printed within a dedicated
|
|
section with name "PACKET".
|
|
|
|
@item -show_frames
|
|
Show information about each frame contained in the input multimedia
|
|
stream.
|
|
|
|
The information for each single frame is printed within a dedicated
|
|
section with name "FRAME".
|
|
|
|
@item -show_streams
|
|
Show information about each media stream contained in the input
|
|
multimedia stream.
|
|
|
|
Each media stream information is printed within a dedicated section
|
|
with name "STREAM".
|
|
|
|
@item -count_frames
|
|
Count the number of frames per stream and report it in the
|
|
corresponding stream section.
|
|
|
|
@item -count_packets
|
|
Count the number of packets per stream and report it in the
|
|
corresponding stream section.
|
|
|
|
@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 XML output.
|
|
|
|
@item -show_program_version
|
|
Show information related to program version.
|
|
|
|
Version information is printed within a section with name
|
|
"PROGRAM_VERSION".
|
|
|
|
@item -show_library_versions
|
|
Show information related to library versions.
|
|
|
|
Version information for each library is printed within a section with
|
|
name "LIBRARY_VERSION".
|
|
|
|
@item -show_versions
|
|
Show information related to program and library versions. This is the
|
|
equivalent of setting both @option{-show_program_version} and
|
|
@option{-show_library_versions} options.
|
|
|
|
@item -i @var{input_file}
|
|
Read @var{input_file}.
|
|
|
|
@end table
|
|
@c man end
|
|
|
|
@chapter Writers
|
|
@c man begin WRITERS
|
|
|
|
A writer defines the output format adopted by @command{ffprobe}, and will be
|
|
used for printing all the parts of the output.
|
|
|
|
A writer may accept one or more arguments, which specify the options to
|
|
adopt.
|
|
|
|
A description of the currently available writers follows.
|
|
|
|
@section default
|
|
Default format.
|
|
|
|
Print each section in the form:
|
|
@example
|
|
[SECTION]
|
|
key1=val1
|
|
...
|
|
keyN=valN
|
|
[/SECTION]
|
|
@end example
|
|
|
|
Metadata tags are printed as a line in the corresponding FORMAT or
|
|
STREAM section, and are prefixed by the string "TAG:".
|
|
|
|
This writer accepts options as a list of @var{key}=@var{value} pairs,
|
|
separated by ":".
|
|
|
|
A description of the accepted options follows.
|
|
|
|
@table @option
|
|
|
|
@item nokey, nk
|
|
If set to 1 specify not to print the key of each field. Default value
|
|
is 0.
|
|
|
|
@item noprint_wrappers, nw
|
|
If set to 1 specify not to print the section header and footer.
|
|
Default value is 0.
|
|
@end table
|
|
|
|
@section compact
|
|
Compact format.
|
|
|
|
Each section is printed on a single line.
|
|
If no option is specifid, the output has the form:
|
|
@example
|
|
section|key1=val1| ... |keyN=valN
|
|
@end example
|
|
|
|
Metadata tags are printed in the corresponding "format" or "stream"
|
|
section. A metadata tag key, if printed, is prefixed by the string
|
|
"tag:".
|
|
|
|
This writer accepts options as a list of @var{key}=@var{value} pairs,
|
|
separated by ":".
|
|
|
|
The description of the accepted options follows.
|
|
|
|
@table @option
|
|
|
|
@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 "|" by default.
|
|
|
|
@item nokey, nk
|
|
If set to 1 specify not to print the key of each field. Its default
|
|
value is 0.
|
|
|
|
@item escape, e
|
|
Set the escape mode to use, default to "c".
|
|
|
|
It can assume one of the following values:
|
|
@table @option
|
|
@item c
|
|
Perform C-like escaping. Strings containing a newline ('\n'), carriage
|
|
return ('\r'), a tab ('\t'), a form feed ('\f'), the escaping
|
|
character ('\') or the item separator character @var{SEP} are escaped using C-like fashioned
|
|
escaping, so that a newline is converted to the sequence "\n", a
|
|
carriage return to "\r", '\' to "\\" and the separator @var{SEP} is
|
|
converted to "\@var{SEP}".
|
|
|
|
@item csv
|
|
Perform CSV-like escaping, as described in RFC4180. Strings
|
|
containing a newline ('\n'), a carriage return ('\r'), a double quote
|
|
('"'), or @var{SEP} are enclosed in double-quotes.
|
|
|
|
@item none
|
|
Perform no escaping.
|
|
@end table
|
|
|
|
@end table
|
|
|
|
@section csv
|
|
CSV format.
|
|
|
|
This writer is equivalent to
|
|
@code{compact=item_sep=,:nokey=1:escape=csv}.
|
|
|
|
@section flat
|
|
Flat format.
|
|
|
|
A free-form output where each line contains an explicit key=value, such as
|
|
"streams.stream.3.tags.foo=bar". 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 @var{sep_char} option).
|
|
|
|
This writer accepts options as a list of @var{key}=@var{value} pairs,
|
|
separated by ":".
|
|
|
|
The description of the accepted options follows.
|
|
|
|
@table @option
|
|
@item sep_char, s
|
|
Separator character used to separate the chapter, the section name, IDs and
|
|
potential tags in the printed field key.
|
|
|
|
Default value is '.'.
|
|
|
|
@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.
|
|
|
|
Default value is 1.
|
|
@end table
|
|
|
|
@section ini
|
|
INI format output.
|
|
|
|
Print output in an INI based format.
|
|
|
|
The following conventions are adopted:
|
|
|
|
@itemize
|
|
@item
|
|
all key and values are UTF-8
|
|
@item
|
|
'.' is the subgroup separator
|
|
@item
|
|
newline, '\t', '\f', '\b' and the following characters are escaped
|
|
@item
|
|
'\' is the escape character
|
|
@item
|
|
'#' is the comment indicator
|
|
@item
|
|
'=' is the key/value separator
|
|
@item
|
|
':' is not used but usually parsed as key/value separator
|
|
@end itemize
|
|
|
|
This writer accepts options as a list of @var{key}=@var{value} pairs,
|
|
separated by ":".
|
|
|
|
The description of the accepted options follows.
|
|
|
|
@table @option
|
|
@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.
|
|
|
|
Default value is 1.
|
|
@end table
|
|
|
|
@section json
|
|
JSON based format.
|
|
|
|
Each section is printed using JSON notation.
|
|
|
|
This writer accepts options as a list of @var{key}=@var{value} pairs,
|
|
separated by ":".
|
|
|
|
The description of the accepted options follows.
|
|
|
|
@table @option
|
|
|
|
@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.
|
|
@end table
|
|
|
|
For more information about JSON, see @url{http://www.json.org/}.
|
|
|
|
@section xml
|
|
XML based format.
|
|
|
|
The XML output is described in the XML schema description file
|
|
@file{ffprobe.xsd} installed in the FFmpeg datadir.
|
|
|
|
An updated version of the schema can be retrieved at the url
|
|
@url{http://www.ffmpeg.org/schema/ffprobe.xsd}, which redirects to the
|
|
latest schema committed into the FFmpeg development source code tree.
|
|
|
|
Note that the output issued will be compliant to the
|
|
@file{ffprobe.xsd} schema only when no special global output options
|
|
(@option{unit}, @option{prefix}, @option{byte_binary_prefix},
|
|
@option{sexagesimal} etc.) are specified.
|
|
|
|
This writer accepts options as a list of @var{key}=@var{value} pairs,
|
|
separated by ":".
|
|
|
|
The description of the accepted options follows.
|
|
|
|
@table @option
|
|
|
|
@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 XML file which can be validated
|
|
through an XSD file.
|
|
|
|
@item xsd_compliant, x
|
|
If set to 1 perform more checks for ensuring that the output is XSD
|
|
compliant. Default value is 0.
|
|
This option automatically sets @option{fully_qualified} to 1.
|
|
@end table
|
|
|
|
For more information about the XML format, see
|
|
@url{http://www.w3.org/XML/}.
|
|
@c man end WRITERS
|
|
|
|
@chapter Timecode
|
|
@c man begin TIMECODE
|
|
|
|
@command{ffprobe} supports Timecode extraction:
|
|
|
|
@itemize
|
|
|
|
@item
|
|
MPEG1/2 timecode is extracted from the GOP, and is available in the video
|
|
stream details (@option{-show_streams}, see @var{timecode}).
|
|
|
|
@item
|
|
MOV timecode is extracted from tmcd track, so is available in the tmcd
|
|
stream metadata (@option{-show_streams}, see @var{TAG:timecode}).
|
|
|
|
@item
|
|
DV, GXF and AVI timecodes are available in format metadata
|
|
(@option{-show_format}, see @var{TAG:timecode}).
|
|
|
|
@end itemize
|
|
@c man end TIMECODE
|
|
|
|
@include syntax.texi
|
|
@include decoders.texi
|
|
@include demuxers.texi
|
|
@include protocols.texi
|
|
@include indevs.texi
|
|
|
|
@ignore
|
|
|
|
@setfilename ffprobe
|
|
@settitle ffprobe media prober
|
|
|
|
@c man begin SEEALSO
|
|
ffmpeg(1), ffplay(1), ffserver(1) and the FFmpeg HTML documentation
|
|
@c man end
|
|
|
|
@c man begin AUTHORS
|
|
The FFmpeg developers
|
|
@c man end
|
|
|
|
@end ignore
|
|
|
|
@bye
|