annotate ffmpeg/doc/ffserver.pod @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 =head1 NAME
yading@10 2
yading@10 3 ffserver - ffserver video server
yading@10 4
yading@10 5 =head1 SYNOPSIS
yading@10 6
yading@10 7
yading@10 8 ffserver [I<options>]
yading@10 9
yading@10 10
yading@10 11 =head1 DESCRIPTION
yading@10 12
yading@10 13
yading@10 14 B<ffserver> is a streaming server for both audio and video. It
yading@10 15 supports several live feeds, streaming from files and time shifting on
yading@10 16 live feeds (you can seek to positions in the past on each live feed,
yading@10 17 provided you specify a big enough feed storage in
yading@10 18 F<ffserver.conf>).
yading@10 19
yading@10 20 B<ffserver> receives prerecorded files or FFM streams from some
yading@10 21 B<ffmpeg> instance as input, then streams them over
yading@10 22 RTP/RTSP/HTTP.
yading@10 23
yading@10 24 An B<ffserver> instance will listen on some port as specified
yading@10 25 in the configuration file. You can launch one or more instances of
yading@10 26 B<ffmpeg> and send one or more FFM streams to the port where
yading@10 27 ffserver is expecting to receive them. Alternately, you can make
yading@10 28 B<ffserver> launch such B<ffmpeg> instances at startup.
yading@10 29
yading@10 30 Input streams are called feeds, and each one is specified by a
yading@10 31 C<E<lt>FeedE<gt>> section in the configuration file.
yading@10 32
yading@10 33 For each feed you can have different output streams in various
yading@10 34 formats, each one specified by a C<E<lt>StreamE<gt>> section in the
yading@10 35 configuration file.
yading@10 36
yading@10 37
yading@10 38 =head2 Status stream
yading@10 39
yading@10 40
yading@10 41 ffserver supports an HTTP interface which exposes the current status
yading@10 42 of the server.
yading@10 43
yading@10 44 Simply point your browser to the address of the special status stream
yading@10 45 specified in the configuration file.
yading@10 46
yading@10 47 For example if you have:
yading@10 48
yading@10 49 <Stream status.html>
yading@10 50 Format status
yading@10 51
yading@10 52 # Only allow local people to get the status
yading@10 53 ACL allow localhost
yading@10 54 ACL allow 192.168.0.0 192.168.255.255
yading@10 55 </Stream>
yading@10 56
yading@10 57
yading@10 58 then the server will post a page with the status information when
yading@10 59 the special stream F<status.html> is requested.
yading@10 60
yading@10 61
yading@10 62 =head2 What can this do?
yading@10 63
yading@10 64
yading@10 65 When properly configured and running, you can capture video and audio in real
yading@10 66 time from a suitable capture card, and stream it out over the Internet to
yading@10 67 either Windows Media Player or RealAudio player (with some restrictions).
yading@10 68
yading@10 69 It can also stream from files, though that is currently broken. Very often, a
yading@10 70 web server can be used to serve up the files just as well.
yading@10 71
yading@10 72 It can stream prerecorded video from .ffm files, though it is somewhat tricky
yading@10 73 to make it work correctly.
yading@10 74
yading@10 75
yading@10 76 =head2 How do I make it work?
yading@10 77
yading@10 78
yading@10 79 First, build the kit. It *really* helps to have installed LAME first. Then when
yading@10 80 you run the ffserver ./configure, make sure that you have the
yading@10 81 C<--enable-libmp3lame> flag turned on.
yading@10 82
yading@10 83 LAME is important as it allows for streaming audio to Windows Media Player.
yading@10 84 Don't ask why the other audio types do not work.
yading@10 85
yading@10 86 As a simple test, just run the following two command lines where INPUTFILE
yading@10 87 is some file which you can decode with ffmpeg:
yading@10 88
yading@10 89
yading@10 90 ffserver -f doc/ffserver.conf &
yading@10 91 ffmpeg -i INPUTFILE http://localhost:8090/feed1.ffm
yading@10 92
yading@10 93
yading@10 94 At this point you should be able to go to your Windows machine and fire up
yading@10 95 Windows Media Player (WMP). Go to Open URL and enter
yading@10 96
yading@10 97
yading@10 98 http://<linuxbox>:8090/test.asf
yading@10 99
yading@10 100
yading@10 101 You should (after a short delay) see video and hear audio.
yading@10 102
yading@10 103 WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
yading@10 104 transfer the entire file before starting to play.
yading@10 105 The same is true of AVI files.
yading@10 106
yading@10 107
yading@10 108 =head2 What happens next?
yading@10 109
yading@10 110
yading@10 111 You should edit the ffserver.conf file to suit your needs (in terms of
yading@10 112 frame rates etc). Then install ffserver and ffmpeg, write a script to start
yading@10 113 them up, and off you go.
yading@10 114
yading@10 115
yading@10 116 =head2 Troubleshooting
yading@10 117
yading@10 118
yading@10 119
yading@10 120 =head3 I don't hear any audio, but video is fine.
yading@10 121
yading@10 122
yading@10 123 Maybe you didn't install LAME, or got your ./configure statement wrong. Check
yading@10 124 the ffmpeg output to see if a line referring to MP3 is present. If not, then
yading@10 125 your configuration was incorrect. If it is, then maybe your wiring is not
yading@10 126 set up correctly. Maybe the sound card is not getting data from the right
yading@10 127 input source. Maybe you have a really awful audio interface (like I do)
yading@10 128 that only captures in stereo and also requires that one channel be flipped.
yading@10 129 If you are one of these people, then export 'AUDIO_FLIP_LEFT=1' before
yading@10 130 starting ffmpeg.
yading@10 131
yading@10 132
yading@10 133 =head3 The audio and video lose sync after a while.
yading@10 134
yading@10 135
yading@10 136 Yes, they do.
yading@10 137
yading@10 138
yading@10 139 =head3 After a long while, the video update rate goes way down in WMP.
yading@10 140
yading@10 141
yading@10 142 Yes, it does. Who knows why?
yading@10 143
yading@10 144
yading@10 145 =head3 WMP 6.4 behaves differently to WMP 7.
yading@10 146
yading@10 147
yading@10 148 Yes, it does. Any thoughts on this would be gratefully received. These
yading@10 149 differences extend to embedding WMP into a web page. [There are two
yading@10 150 object IDs that you can use: The old one, which does not play well, and
yading@10 151 the new one, which does (both tested on the same system). However,
yading@10 152 I suspect that the new one is not available unless you have installed WMP 7].
yading@10 153
yading@10 154
yading@10 155 =head2 What else can it do?
yading@10 156
yading@10 157
yading@10 158 You can replay video from .ffm files that was recorded earlier.
yading@10 159 However, there are a number of caveats, including the fact that the
yading@10 160 ffserver parameters must match the original parameters used to record the
yading@10 161 file. If they do not, then ffserver deletes the file before recording into it.
yading@10 162 (Now that I write this, it seems broken).
yading@10 163
yading@10 164 You can fiddle with many of the codec choices and encoding parameters, and
yading@10 165 there are a bunch more parameters that you cannot control. Post a message
yading@10 166 to the mailing list if there are some 'must have' parameters. Look in
yading@10 167 ffserver.conf for a list of the currently available controls.
yading@10 168
yading@10 169 It will automatically generate the ASX or RAM files that are often used
yading@10 170 in browsers. These files are actually redirections to the underlying ASF
yading@10 171 or RM file. The reason for this is that the browser often fetches the
yading@10 172 entire file before starting up the external viewer. The redirection files
yading@10 173 are very small and can be transferred quickly. [The stream itself is
yading@10 174 often 'infinite' and thus the browser tries to download it and never
yading@10 175 finishes.]
yading@10 176
yading@10 177
yading@10 178 =head2 Tips
yading@10 179
yading@10 180
yading@10 181 * When you connect to a live stream, most players (WMP, RA, etc) want to
yading@10 182 buffer a certain number of seconds of material so that they can display the
yading@10 183 signal continuously. However, ffserver (by default) starts sending data
yading@10 184 in realtime. This means that there is a pause of a few seconds while the
yading@10 185 buffering is being done by the player. The good news is that this can be
yading@10 186 cured by adding a '?buffer=5' to the end of the URL. This means that the
yading@10 187 stream should start 5 seconds in the past -- and so the first 5 seconds
yading@10 188 of the stream are sent as fast as the network will allow. It will then
yading@10 189 slow down to real time. This noticeably improves the startup experience.
yading@10 190
yading@10 191 You can also add a 'Preroll 15' statement into the ffserver.conf that will
yading@10 192 add the 15 second prebuffering on all requests that do not otherwise
yading@10 193 specify a time. In addition, ffserver will skip frames until a key_frame
yading@10 194 is found. This further reduces the startup delay by not transferring data
yading@10 195 that will be discarded.
yading@10 196
yading@10 197 * You may want to adjust the MaxBandwidth in the ffserver.conf to limit
yading@10 198 the amount of bandwidth consumed by live streams.
yading@10 199
yading@10 200
yading@10 201 =head2 Why does the ?buffer / Preroll stop working after a time?
yading@10 202
yading@10 203
yading@10 204 It turns out that (on my machine at least) the number of frames successfully
yading@10 205 grabbed is marginally less than the number that ought to be grabbed. This
yading@10 206 means that the timestamp in the encoded data stream gets behind realtime.
yading@10 207 This means that if you say 'Preroll 10', then when the stream gets 10
yading@10 208 or more seconds behind, there is no Preroll left.
yading@10 209
yading@10 210 Fixing this requires a change in the internals of how timestamps are
yading@10 211 handled.
yading@10 212
yading@10 213
yading@10 214 =head2 Does the C<?date=> stuff work.
yading@10 215
yading@10 216
yading@10 217 Yes (subject to the limitation outlined above). Also note that whenever you
yading@10 218 start ffserver, it deletes the ffm file (if any parameters have changed),
yading@10 219 thus wiping out what you had recorded before.
yading@10 220
yading@10 221 The format of the C<?date=xxxxxx> is fairly flexible. You should use one
yading@10 222 of the following formats (the 'T' is literal):
yading@10 223
yading@10 224
yading@10 225 * YYYY-MM-DDTHH:MM:SS (localtime)
yading@10 226 * YYYY-MM-DDTHH:MM:SSZ (UTC)
yading@10 227
yading@10 228
yading@10 229 You can omit the YYYY-MM-DD, and then it refers to the current day. However
yading@10 230 note that B<?date=16:00:00> refers to 16:00 on the current day -- this
yading@10 231 may be in the future and so is unlikely to be useful.
yading@10 232
yading@10 233 You use this by adding the ?date= to the end of the URL for the stream.
yading@10 234 For example: B<http://localhost:8080/test.asf?date=2002-07-26T23:05:00>.
yading@10 235
yading@10 236
yading@10 237 =head2 What is FFM, FFM2
yading@10 238
yading@10 239
yading@10 240 FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
yading@10 241 video and audio streams and encoding options, and can store a moving time segment
yading@10 242 of an infinite movie or a whole movie.
yading@10 243
yading@10 244 FFM is version specific, and there is limited compatibility of FFM files
yading@10 245 generated by one version of ffmpeg/ffserver and another version of
yading@10 246 ffmpeg/ffserver. It may work but it is not guaranteed to work.
yading@10 247
yading@10 248 FFM2 is extensible while maintaining compatibility and should work between
yading@10 249 differing versions of tools. FFM2 is the default.
yading@10 250
yading@10 251
yading@10 252 =head1 OPTIONS
yading@10 253
yading@10 254
yading@10 255 All the numerical options, if not specified otherwise, accept a string
yading@10 256 representing a number as input, which may be followed by one of the SI
yading@10 257 unit prefixes, for example: 'K', 'M', or 'G'.
yading@10 258
yading@10 259 If 'i' is appended to the SI unit prefix, the complete prefix will be
yading@10 260 interpreted as a unit prefix for binary multiplies, which are based on
yading@10 261 powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
yading@10 262 prefix multiplies the value by 8. This allows using, for example:
yading@10 263 'KB', 'MiB', 'G' and 'B' as number suffixes.
yading@10 264
yading@10 265 Options which do not take arguments are boolean options, and set the
yading@10 266 corresponding value to true. They can be set to false by prefixing
yading@10 267 the option name with "no". For example using "-nofoo"
yading@10 268 will set the boolean option with name "foo" to false.
yading@10 269
yading@10 270
yading@10 271
yading@10 272 =head2 Stream specifiers
yading@10 273
yading@10 274 Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers
yading@10 275 are used to precisely specify which stream(s) a given option belongs to.
yading@10 276
yading@10 277 A stream specifier is a string generally appended to the option name and
yading@10 278 separated from it by a colon. E.g. C<-codec:a:1 ac3> contains the
yading@10 279 C<a:1> stream specifier, which matches the second audio stream. Therefore, it
yading@10 280 would select the ac3 codec for the second audio stream.
yading@10 281
yading@10 282 A stream specifier can match several streams, so that the option is applied to all
yading@10 283 of them. E.g. the stream specifier in C<-b:a 128k> matches all audio
yading@10 284 streams.
yading@10 285
yading@10 286 An empty stream specifier matches all streams. For example, C<-codec copy>
yading@10 287 or C<-codec: copy> would copy all the streams without reencoding.
yading@10 288
yading@10 289 Possible forms of stream specifiers are:
yading@10 290
yading@10 291 =over 4
yading@10 292
yading@10 293
yading@10 294 =item I<stream_index>
yading@10 295
yading@10 296 Matches the stream with this index. E.g. C<-threads:1 4> would set the
yading@10 297 thread count for the second stream to 4.
yading@10 298
yading@10 299 =item I<stream_type>B<[:>I<stream_index>B<]>
yading@10 300
yading@10 301 I<stream_type> is one of following: 'v' for video, 'a' for audio, 's' for subtitle,
yading@10 302 'd' for data, and 't' for attachments. If I<stream_index> is given, then it matches
yading@10 303 stream number I<stream_index> of this type. Otherwise, it matches all
yading@10 304 streams of this type.
yading@10 305
yading@10 306 =item B<p:>I<program_id>B<[:>I<stream_index>B<]>
yading@10 307
yading@10 308 If I<stream_index> is given, then it matches the stream with number I<stream_index>
yading@10 309 in the program with the id I<program_id>. Otherwise, it matches all streams in the
yading@10 310 program.
yading@10 311
yading@10 312 =item B<#>I<stream_id>
yading@10 313
yading@10 314 Matches the stream by a format-specific ID.
yading@10 315
yading@10 316 =back
yading@10 317
yading@10 318
yading@10 319
yading@10 320 =head2 Generic options
yading@10 321
yading@10 322
yading@10 323 These options are shared amongst the ff* tools.
yading@10 324
yading@10 325
yading@10 326 =over 4
yading@10 327
yading@10 328
yading@10 329
yading@10 330 =item B<-L>
yading@10 331
yading@10 332 Show license.
yading@10 333
yading@10 334
yading@10 335 =item B<-h, -?, -help, --help [>I<arg>B<]>
yading@10 336
yading@10 337 Show help. An optional parameter may be specified to print help about a specific
yading@10 338 item.
yading@10 339
yading@10 340 Possible values of I<arg> are:
yading@10 341
yading@10 342 =over 4
yading@10 343
yading@10 344
yading@10 345 =item B<decoder=>I<decoder_name>
yading@10 346
yading@10 347 Print detailed information about the decoder named I<decoder_name>. Use the
yading@10 348 B<-decoders> option to get a list of all decoders.
yading@10 349
yading@10 350
yading@10 351 =item B<encoder=>I<encoder_name>
yading@10 352
yading@10 353 Print detailed information about the encoder named I<encoder_name>. Use the
yading@10 354 B<-encoders> option to get a list of all encoders.
yading@10 355
yading@10 356
yading@10 357 =item B<demuxer=>I<demuxer_name>
yading@10 358
yading@10 359 Print detailed information about the demuxer named I<demuxer_name>. Use the
yading@10 360 B<-formats> option to get a list of all demuxers and muxers.
yading@10 361
yading@10 362
yading@10 363 =item B<muxer=>I<muxer_name>
yading@10 364
yading@10 365 Print detailed information about the muxer named I<muxer_name>. Use the
yading@10 366 B<-formats> option to get a list of all muxers and demuxers.
yading@10 367
yading@10 368
yading@10 369 =item B<filter=>I<filter_name>
yading@10 370
yading@10 371 Print detailed information about the filter name I<filter_name>. Use the
yading@10 372 B<-filters> option to get a list of all filters.
yading@10 373
yading@10 374
yading@10 375 =back
yading@10 376
yading@10 377
yading@10 378
yading@10 379 =item B<-version>
yading@10 380
yading@10 381 Show version.
yading@10 382
yading@10 383
yading@10 384 =item B<-formats>
yading@10 385
yading@10 386 Show available formats.
yading@10 387
yading@10 388
yading@10 389 =item B<-codecs>
yading@10 390
yading@10 391 Show all codecs known to libavcodec.
yading@10 392
yading@10 393 Note that the term 'codec' is used throughout this documentation as a shortcut
yading@10 394 for what is more correctly called a media bitstream format.
yading@10 395
yading@10 396
yading@10 397 =item B<-decoders>
yading@10 398
yading@10 399 Show available decoders.
yading@10 400
yading@10 401
yading@10 402 =item B<-encoders>
yading@10 403
yading@10 404 Show all available encoders.
yading@10 405
yading@10 406
yading@10 407 =item B<-bsfs>
yading@10 408
yading@10 409 Show available bitstream filters.
yading@10 410
yading@10 411
yading@10 412 =item B<-protocols>
yading@10 413
yading@10 414 Show available protocols.
yading@10 415
yading@10 416
yading@10 417 =item B<-filters>
yading@10 418
yading@10 419 Show available libavfilter filters.
yading@10 420
yading@10 421
yading@10 422 =item B<-pix_fmts>
yading@10 423
yading@10 424 Show available pixel formats.
yading@10 425
yading@10 426
yading@10 427 =item B<-sample_fmts>
yading@10 428
yading@10 429 Show available sample formats.
yading@10 430
yading@10 431
yading@10 432 =item B<-layouts>
yading@10 433
yading@10 434 Show channel names and standard channel layouts.
yading@10 435
yading@10 436
yading@10 437 =item B<-loglevel [repeat+]>I<loglevel> B<| -v [repeat+]>I<loglevel>
yading@10 438
yading@10 439 Set the logging level used by the library.
yading@10 440 Adding "repeat+" indicates that repeated log output should not be compressed
yading@10 441 to the first line and the "Last message repeated n times" line will be
yading@10 442 omitted. "repeat" can also be used alone.
yading@10 443 If "repeat" is used alone, and with no prior loglevel set, the default
yading@10 444 loglevel will be used. If multiple loglevel parameters are given, using
yading@10 445 'repeat' will not change the loglevel.
yading@10 446 I<loglevel> is a number or a string containing one of the following values:
yading@10 447
yading@10 448 =over 4
yading@10 449
yading@10 450
yading@10 451 =item B<quiet>
yading@10 452
yading@10 453 Show nothing at all; be silent.
yading@10 454
yading@10 455 =item B<panic>
yading@10 456
yading@10 457 Only show fatal errors which could lead the process to crash, such as
yading@10 458 and assert failure. This is not currently used for anything.
yading@10 459
yading@10 460 =item B<fatal>
yading@10 461
yading@10 462 Only show fatal errors. These are errors after which the process absolutely
yading@10 463 cannot continue after.
yading@10 464
yading@10 465 =item B<error>
yading@10 466
yading@10 467 Show all errors, including ones which can be recovered from.
yading@10 468
yading@10 469 =item B<warning>
yading@10 470
yading@10 471 Show all warnings and errors. Any message related to possibly
yading@10 472 incorrect or unexpected events will be shown.
yading@10 473
yading@10 474 =item B<info>
yading@10 475
yading@10 476 Show informative messages during processing. This is in addition to
yading@10 477 warnings and errors. This is the default value.
yading@10 478
yading@10 479 =item B<verbose>
yading@10 480
yading@10 481 Same as C<info>, except more verbose.
yading@10 482
yading@10 483 =item B<debug>
yading@10 484
yading@10 485 Show everything, including debugging information.
yading@10 486
yading@10 487 =back
yading@10 488
yading@10 489
yading@10 490 By default the program logs to stderr, if coloring is supported by the
yading@10 491 terminal, colors are used to mark errors and warnings. Log coloring
yading@10 492 can be disabled setting the environment variable
yading@10 493 B<AV_LOG_FORCE_NOCOLOR> or B<NO_COLOR>, or can be forced setting
yading@10 494 the environment variable B<AV_LOG_FORCE_COLOR>.
yading@10 495 The use of the environment variable B<NO_COLOR> is deprecated and
yading@10 496 will be dropped in a following FFmpeg version.
yading@10 497
yading@10 498
yading@10 499 =item B<-report>
yading@10 500
yading@10 501 Dump full command line and console output to a file named
yading@10 502 C<I<program>-I<YYYYMMDD>-I<HHMMSS>.log> in the current
yading@10 503 directory.
yading@10 504 This file can be useful for bug reports.
yading@10 505 It also implies C<-loglevel verbose>.
yading@10 506
yading@10 507 Setting the environment variable C<FFREPORT> to any value has the
yading@10 508 same effect. If the value is a ':'-separated key=value sequence, these
yading@10 509 options will affect the report; options values must be escaped if they
yading@10 510 contain special characters or the options delimiter ':' (see the
yading@10 511 ``Quoting and escaping'' section in the ffmpeg-utils manual). The
yading@10 512 following option is recognized:
yading@10 513
yading@10 514 =over 4
yading@10 515
yading@10 516
yading@10 517 =item B<file>
yading@10 518
yading@10 519 set the file name to use for the report; C<%p> is expanded to the name
yading@10 520 of the program, C<%t> is expanded to a timestamp, C<%%> is expanded
yading@10 521 to a plain C<%>
yading@10 522
yading@10 523 =back
yading@10 524
yading@10 525
yading@10 526 Errors in parsing the environment variable are not fatal, and will not
yading@10 527 appear in the report.
yading@10 528
yading@10 529
yading@10 530 =item B<-cpuflags flags (>I<global>B<)>
yading@10 531
yading@10 532 Allows setting and clearing cpu flags. This option is intended
yading@10 533 for testing. Do not use it unless you know what you're doing.
yading@10 534
yading@10 535 ffmpeg -cpuflags -sse+mmx ...
yading@10 536 ffmpeg -cpuflags mmx ...
yading@10 537 ffmpeg -cpuflags 0 ...
yading@10 538
yading@10 539 Possible flags for this option are:
yading@10 540
yading@10 541 =over 4
yading@10 542
yading@10 543
yading@10 544 =item B<x86>
yading@10 545
yading@10 546
yading@10 547 =over 4
yading@10 548
yading@10 549
yading@10 550 =item B<mmx>
yading@10 551
yading@10 552
yading@10 553 =item B<mmxext>
yading@10 554
yading@10 555
yading@10 556 =item B<sse>
yading@10 557
yading@10 558
yading@10 559 =item B<sse2>
yading@10 560
yading@10 561
yading@10 562 =item B<sse2slow>
yading@10 563
yading@10 564
yading@10 565 =item B<sse3>
yading@10 566
yading@10 567
yading@10 568 =item B<sse3slow>
yading@10 569
yading@10 570
yading@10 571 =item B<ssse3>
yading@10 572
yading@10 573
yading@10 574 =item B<atom>
yading@10 575
yading@10 576
yading@10 577 =item B<sse4.1>
yading@10 578
yading@10 579
yading@10 580 =item B<sse4.2>
yading@10 581
yading@10 582
yading@10 583 =item B<avx>
yading@10 584
yading@10 585
yading@10 586 =item B<xop>
yading@10 587
yading@10 588
yading@10 589 =item B<fma4>
yading@10 590
yading@10 591
yading@10 592 =item B<3dnow>
yading@10 593
yading@10 594
yading@10 595 =item B<3dnowext>
yading@10 596
yading@10 597
yading@10 598 =item B<cmov>
yading@10 599
yading@10 600
yading@10 601 =back
yading@10 602
yading@10 603
yading@10 604 =item B<ARM>
yading@10 605
yading@10 606
yading@10 607 =over 4
yading@10 608
yading@10 609
yading@10 610 =item B<armv5te>
yading@10 611
yading@10 612
yading@10 613 =item B<armv6>
yading@10 614
yading@10 615
yading@10 616 =item B<armv6t2>
yading@10 617
yading@10 618
yading@10 619 =item B<vfp>
yading@10 620
yading@10 621
yading@10 622 =item B<vfpv3>
yading@10 623
yading@10 624
yading@10 625 =item B<neon>
yading@10 626
yading@10 627
yading@10 628 =back
yading@10 629
yading@10 630
yading@10 631 =item B<PowerPC>
yading@10 632
yading@10 633
yading@10 634 =over 4
yading@10 635
yading@10 636
yading@10 637 =item B<altivec>
yading@10 638
yading@10 639
yading@10 640 =back
yading@10 641
yading@10 642
yading@10 643 =item B<Specific Processors>
yading@10 644
yading@10 645
yading@10 646 =over 4
yading@10 647
yading@10 648
yading@10 649 =item B<pentium2>
yading@10 650
yading@10 651
yading@10 652 =item B<pentium3>
yading@10 653
yading@10 654
yading@10 655 =item B<pentium4>
yading@10 656
yading@10 657
yading@10 658 =item B<k6>
yading@10 659
yading@10 660
yading@10 661 =item B<k62>
yading@10 662
yading@10 663
yading@10 664 =item B<athlon>
yading@10 665
yading@10 666
yading@10 667 =item B<athlonxp>
yading@10 668
yading@10 669
yading@10 670 =item B<k8>
yading@10 671
yading@10 672
yading@10 673 =back
yading@10 674
yading@10 675
yading@10 676 =back
yading@10 677
yading@10 678
yading@10 679
yading@10 680 =item B<-opencl_options options (>I<global>B<)>
yading@10 681
yading@10 682 Set OpenCL environment options. This option is only available when
yading@10 683 FFmpeg has been compiled with C<--enable-opencl>.
yading@10 684
yading@10 685 I<options> must be a list of I<key>=I<value> option pairs
yading@10 686 separated by ':'. See the ``OpenCL Options'' section in the
yading@10 687 ffmpeg-utils manual for the list of supported options.
yading@10 688
yading@10 689 =back
yading@10 690
yading@10 691
yading@10 692
yading@10 693 =head2 AVOptions
yading@10 694
yading@10 695
yading@10 696 These options are provided directly by the libavformat, libavdevice and
yading@10 697 libavcodec libraries. To see the list of available AVOptions, use the
yading@10 698 B<-help> option. They are separated into two categories:
yading@10 699
yading@10 700 =over 4
yading@10 701
yading@10 702
yading@10 703 =item B<generic>
yading@10 704
yading@10 705 These options can be set for any container, codec or device. Generic options
yading@10 706 are listed under AVFormatContext options for containers/devices and under
yading@10 707 AVCodecContext options for codecs.
yading@10 708
yading@10 709 =item B<private>
yading@10 710
yading@10 711 These options are specific to the given container, device or codec. Private
yading@10 712 options are listed under their corresponding containers/devices/codecs.
yading@10 713
yading@10 714 =back
yading@10 715
yading@10 716
yading@10 717 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
yading@10 718 an MP3 file, use the B<id3v2_version> private option of the MP3
yading@10 719 muxer:
yading@10 720
yading@10 721 ffmpeg -i input.flac -id3v2_version 3 out.mp3
yading@10 722
yading@10 723
yading@10 724 All codec AVOptions are obviously per-stream, so the chapter on stream
yading@10 725 specifiers applies to them
yading@10 726
yading@10 727 Note B<-nooption> syntax cannot be used for boolean AVOptions,
yading@10 728 use B<-option 0>/B<-option 1>.
yading@10 729
yading@10 730 Note2 old undocumented way of specifying per-stream AVOptions by prepending
yading@10 731 v/a/s to the options name is now obsolete and will be removed soon.
yading@10 732
yading@10 733
yading@10 734 =head2 Main options
yading@10 735
yading@10 736
yading@10 737
yading@10 738 =over 4
yading@10 739
yading@10 740
yading@10 741 =item B<-f> I<configfile>
yading@10 742
yading@10 743 Use F<configfile> instead of F</etc/ffserver.conf>.
yading@10 744
yading@10 745 =item B<-n>
yading@10 746
yading@10 747 Enable no-launch mode. This option disables all the Launch directives
yading@10 748 within the various E<lt>StreamE<gt> sections. Since ffserver will not launch
yading@10 749 any ffmpeg instances, you will have to launch them manually.
yading@10 750
yading@10 751 =item B<-d>
yading@10 752
yading@10 753 Enable debug mode. This option increases log verbosity, directs log
yading@10 754 messages to stdout.
yading@10 755
yading@10 756 =back
yading@10 757
yading@10 758
yading@10 759
yading@10 760
yading@10 761 =head1 SEE ALSO
yading@10 762
yading@10 763
yading@10 764
yading@10 765 ffserver-all(1),
yading@10 766 the F<doc/ffserver.conf> example, ffmpeg(1), ffplay(1), ffprobe(1),
yading@10 767 ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
yading@10 768 ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
yading@10 769 ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
yading@10 770
yading@10 771
yading@10 772 =head1 AUTHORS
yading@10 773
yading@10 774
yading@10 775 The FFmpeg developers.
yading@10 776
yading@10 777 For details about the authorship, see the Git history of the project
yading@10 778 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
yading@10 779 B<git log> in the FFmpeg source directory, or browsing the
yading@10 780 online repository at E<lt>B<http://source.ffmpeg.org>E<gt>.
yading@10 781
yading@10 782 Maintainers for the specific components are listed in the file
yading@10 783 F<MAINTAINERS> in the source code tree.
yading@10 784
yading@10 785
yading@10 786