mirror of https://github.com/FFmpeg/FFmpeg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
367 lines
9.4 KiB
367 lines
9.4 KiB
\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 -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_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') or |
|
carriage return ('\r'), 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 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. |
|
|
|
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 and GXF timecodes are available in format metadata |
|
(@option{-show_format}, see @var{TAG:timecode}). |
|
|
|
@end itemize |
|
@c man end TIMECODE |
|
|
|
@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
|
|
|