3c8541747aef984050bda3b24ada81085ddc9cbd
[ffmpeg.git] / doc / ffplay.texi
1 \input texinfo @c -*- texinfo -*-
2
3 @settitle ffplay Documentation
4 @titlepage
5 @center @titlefont{ffplay Documentation}
6 @end titlepage
7
8 @top
9
10 @contents
11
12 @chapter Synopsis
13
14 ffplay [@var{options}] [@file{input_file}]
15
16 @chapter Description
17 @c man begin DESCRIPTION
18
19 FFplay is a very simple and portable media player using the FFmpeg
20 libraries and the SDL library. It is mostly used as a testbed for the
21 various FFmpeg APIs.
22 @c man end
23
24 @chapter Options
25 @c man begin OPTIONS
26
27 @include fftools-common-opts.texi
28
29 @section Main options
30
31 @table @option
32 @item -x @var{width}
33 Force displayed width.
34 @item -y @var{height}
35 Force displayed height.
36 @item -s @var{size}
37 Set frame size (WxH or abbreviation), needed for videos which do
38 not contain a header with the frame size like raw YUV.  This option
39 has been deprecated in favor of private options, try -video_size.
40 @item -fs
41 Start in fullscreen mode.
42 @item -an
43 Disable audio.
44 @item -vn
45 Disable video.
46 @item -sn
47 Disable subtitles.
48 @item -ss @var{pos}
49 Seek to a given position in seconds.
50 @item -t @var{duration}
51 play <duration> seconds of audio/video
52 @item -bytes
53 Seek by bytes.
54 @item -nodisp
55 Disable graphical display.
56 @item -f @var{fmt}
57 Force format.
58 @item -window_title @var{title}
59 Set window title (default is the input filename).
60 @item -loop @var{number}
61 Loops movie playback <number> times. 0 means forever.
62 @item -showmode @var{mode}
63 Set the show mode to use.
64 Available values for @var{mode} are:
65 @table @samp
66 @item 0, video
67 show video
68 @item 1, waves
69 show audio waves
70 @item 2, rdft
71 show audio frequency band using RDFT ((Inverse) Real Discrete Fourier Transform)
72 @end table
73
74 Default value is "video", if video is not present or cannot be played
75 "rdft" is automatically selected.
76
77 You can interactively cycle through the available show modes by
78 pressing the key @key{w}.
79
80 @item -vf @var{filtergraph}
81 Create the filtergraph specified by @var{filtergraph} and use it to
82 filter the video stream.
83
84 @var{filtergraph} is a description of the filtergraph to apply to
85 the stream, and must have a single video input and a single video
86 output. In the filtergraph, the input is associated to the label
87 @code{in}, and the output to the label @code{out}. See the
88 ffmpeg-filters manual for more information about the filtergraph
89 syntax.
90
91 You can specify this parameter multiple times and cycle through the specified
92 filtergraphs along with the show modes by pressing the key @key{w}.
93
94 @item -af @var{filtergraph}
95 @var{filtergraph} is a description of the filtergraph to apply to
96 the input audio.
97 Use the option "-filters" to show all the available filters (including
98 sources and sinks).
99
100 @item -i @var{input_file}
101 Read @var{input_file}.
102 @end table
103
104 @section Advanced options
105 @table @option
106 @item -pix_fmt @var{format}
107 Set pixel format.
108 This option has been deprecated in favor of private options, try -pixel_format.
109
110 @item -stats
111 Print several playback statistics, in particular show the stream
112 duration, the codec parameters, the current position in the stream and
113 the audio/video synchronisation drift. It is on by default, to
114 explicitly disable it you need to specify @code{-nostats}.
115
116 @item -fast
117 Non-spec-compliant optimizations.
118 @item -genpts
119 Generate pts.
120 @item -sync @var{type}
121 Set the master clock to audio (@code{type=audio}), video
122 (@code{type=video}) or external (@code{type=ext}). Default is audio. The
123 master clock is used to control audio-video synchronization. Most media
124 players use audio as master clock, but in some cases (streaming or high
125 quality broadcast) it is necessary to change that. This option is mainly
126 used for debugging purposes.
127 @item -threads @var{count}
128 Set the thread count. By default, @command{ffplay} automatically detects a
129 suitable number of threads to use.
130 @item -ast @var{audio_stream_number}
131 Select the desired audio stream number, counting from 0. The number
132 refers to the list of all the input audio streams. If it is greater
133 than the number of audio streams minus one, then the last one is
134 selected, if it is negative the audio playback is disabled.
135 @item -vst @var{video_stream_number}
136 Select the desired video stream number, counting from 0. The number
137 refers to the list of all the input video streams. If it is greater
138 than the number of video streams minus one, then the last one is
139 selected, if it is negative the video playback is disabled.
140 @item -sst @var{subtitle_stream_number}
141 Select the desired subtitle stream number, counting from 0. The number
142 refers to the list of all the input subtitle streams. If it is greater
143 than the number of subtitle streams minus one, then the last one is
144 selected, if it is negative the subtitle rendering is disabled.
145 @item -autoexit
146 Exit when video is done playing.
147 @item -exitonkeydown
148 Exit if any key is pressed.
149 @item -exitonmousedown
150 Exit if any mouse button is pressed.
151
152 @item -codec:@var{media_specifier} @var{codec_name}
153 Force a specific decoder implementation for the stream identified by
154 @var{media_specifier}, which can assume the values @code{a} (audio),
155 @code{v} (video), and @code{s} subtitle.
156
157 @item -acodec @var{codec_name}
158 Force a specific audio decoder.
159
160 @item -vcodec @var{codec_name}
161 Force a specific video decoder.
162
163 @item -scodec @var{codec_name}
164 Force a specific subtitle decoder.
165
166 @item -autorotate
167 Automatically rotate the video according to presentation metadata. Enabled by
168 default, use @option{-noautorotate} to disable it.
169
170 @item -framedrop
171 Drop video frames if video is out of sync. Enabled by default if the master
172 clock is not set to video. Use this option to enable frame dropping for all
173 master clock sources, use @option{-noframedrop} to disable it.
174
175 @item -infbuf
176 Do not limit the input buffer size, read as much data as possible from the
177 input as soon as possible. Enabled by default for realtime streams, where data
178 may be dropped if not read in time. Use this option to enable infinite buffers
179 for all inputs, use @option{-noinfbuf} to disable it.
180
181 @end table
182
183 @section While playing
184
185 @table @key
186 @item q, ESC
187 Quit.
188
189 @item f
190 Toggle full screen.
191
192 @item p, SPC
193 Pause.
194
195 @item a
196 Cycle audio channel in the current program.
197
198 @item v
199 Cycle video channel.
200
201 @item t
202 Cycle subtitle channel in the current program.
203
204 @item c
205 Cycle program.
206
207 @item w
208 Cycle video filters or show modes.
209
210 @item s
211 Step to the next frame.
212
213 Pause if the stream is not already paused, step to the next video
214 frame, and pause.
215
216 @item left/right
217 Seek backward/forward 10 seconds.
218
219 @item down/up
220 Seek backward/forward 1 minute.
221
222 @item page down/page up
223 Seek to the previous/next chapter.
224 or if there are no chapters
225 Seek backward/forward 10 minutes.
226
227 @item mouse click
228 Seek to percentage in file corresponding to fraction of width.
229
230 @end table
231
232 @c man end
233
234 @include config.texi
235 @ifset config-all
236 @set config-readonly
237 @ifset config-avutil
238 @include utils.texi
239 @end ifset
240 @ifset config-avcodec
241 @include codecs.texi
242 @include bitstream_filters.texi
243 @end ifset
244 @ifset config-avformat
245 @include formats.texi
246 @include protocols.texi
247 @end ifset
248 @ifset config-avdevice
249 @include devices.texi
250 @end ifset
251 @ifset config-swresample
252 @include resampler.texi
253 @end ifset
254 @ifset config-swscale
255 @include scaler.texi
256 @end ifset
257 @ifset config-avfilter
258 @include filters.texi
259 @end ifset
260 @end ifset
261
262 @chapter See Also
263
264 @ifhtml
265 @ifset config-all
266 @url{ffplay.html,ffplay},
267 @end ifset
268 @ifset config-not-all
269 @url{ffplay-all.html,ffmpeg-all},
270 @end ifset
271 @url{ffmpeg.html,ffmpeg}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
272 @url{ffmpeg-utils.html,ffmpeg-utils},
273 @url{ffmpeg-scaler.html,ffmpeg-scaler},
274 @url{ffmpeg-resampler.html,ffmpeg-resampler},
275 @url{ffmpeg-codecs.html,ffmpeg-codecs},
276 @url{ffmpeg-bitstream-filters.html,ffmpeg-bitstream-filters},
277 @url{ffmpeg-formats.html,ffmpeg-formats},
278 @url{ffmpeg-devices.html,ffmpeg-devices},
279 @url{ffmpeg-protocols.html,ffmpeg-protocols},
280 @url{ffmpeg-filters.html,ffmpeg-filters}
281 @end ifhtml
282
283 @ifnothtml
284 @ifset config-all
285 ffplay(1),
286 @end ifset
287 @ifset config-not-all
288 ffplay-all(1),
289 @end ifset
290 ffmpeg(1), ffprobe(1), ffserver(1),
291 ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
292 ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
293 ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
294 @end ifnothtml
295
296 @include authors.texi
297
298 @ignore
299
300 @setfilename ffplay
301 @settitle FFplay media player
302
303 @end ignore
304
305 @bye