aboutsummaryrefslogtreecommitdiffstats
path: root/doc/ffprobe.texi
blob: 4af13d69e5a6b00272c43ee1fb9b7defb0c9a91e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
\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_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_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_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 -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 -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 @file{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:".

@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.

For more information about JSON, see @url{http://www.json.org/}.

@c man end WRITERS

@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