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.

795 lines
22KB

  1. \input texinfo @c -*- texinfo -*-
  2. @settitle ffserver Documentation
  3. @titlepage
  4. @center @titlefont{ffserver Documentation}
  5. @end titlepage
  6. @top
  7. @contents
  8. @chapter Synopsis
  9. ffserver [@var{options}]
  10. @chapter Description
  11. @c man begin DESCRIPTION
  12. @command{ffserver} is a streaming server for both audio and video.
  13. It supports several live feeds, streaming from files and time shifting
  14. on live feeds. You can seek to positions in the past on each live
  15. feed, provided you specify a big enough feed storage.
  16. @command{ffserver} is configured through a configuration file, which
  17. is read at startup. If not explicitly specified, it will read from
  18. @file{/etc/ffserver.conf}.
  19. @command{ffserver} receives prerecorded files or FFM streams from some
  20. @command{ffmpeg} instance as input, then streams them over
  21. RTP/RTSP/HTTP.
  22. An @command{ffserver} instance will listen on some port as specified
  23. in the configuration file. You can launch one or more instances of
  24. @command{ffmpeg} and send one or more FFM streams to the port where
  25. ffserver is expecting to receive them. Alternately, you can make
  26. @command{ffserver} launch such @command{ffmpeg} instances at startup.
  27. Input streams are called feeds, and each one is specified by a
  28. @code{<Feed>} section in the configuration file.
  29. For each feed you can have different output streams in various
  30. formats, each one specified by a @code{<Stream>} section in the
  31. configuration file.
  32. @section Status stream
  33. @command{ffserver} supports an HTTP interface which exposes the
  34. current status of the server.
  35. Simply point your browser to the address of the special status stream
  36. specified in the configuration file.
  37. For example if you have:
  38. @example
  39. <Stream status.html>
  40. Format status
  41. # Only allow local people to get the status
  42. ACL allow localhost
  43. ACL allow 192.168.0.0 192.168.255.255
  44. </Stream>
  45. @end example
  46. then the server will post a page with the status information when
  47. the special stream @file{status.html} is requested.
  48. @section How do I make it work?
  49. As a simple test, just run the following two command lines where INPUTFILE
  50. is some file which you can decode with ffmpeg:
  51. @example
  52. ffserver -f doc/ffserver.conf &
  53. ffmpeg -i INPUTFILE http://localhost:8090/feed1.ffm
  54. @end example
  55. At this point you should be able to go to your Windows machine and fire up
  56. Windows Media Player (WMP). Go to Open URL and enter
  57. @example
  58. http://<linuxbox>:8090/test.asf
  59. @end example
  60. You should (after a short delay) see video and hear audio.
  61. WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
  62. transfer the entire file before starting to play.
  63. The same is true of AVI files.
  64. @section What happens next?
  65. You should edit the ffserver.conf file to suit your needs (in terms of
  66. frame rates etc). Then install ffserver and ffmpeg, write a script to start
  67. them up, and off you go.
  68. @section What else can it do?
  69. You can replay video from .ffm files that was recorded earlier.
  70. However, there are a number of caveats, including the fact that the
  71. ffserver parameters must match the original parameters used to record the
  72. file. If they do not, then ffserver deletes the file before recording into it.
  73. (Now that I write this, it seems broken).
  74. You can fiddle with many of the codec choices and encoding parameters, and
  75. there are a bunch more parameters that you cannot control. Post a message
  76. to the mailing list if there are some 'must have' parameters. Look in
  77. ffserver.conf for a list of the currently available controls.
  78. It will automatically generate the ASX or RAM files that are often used
  79. in browsers. These files are actually redirections to the underlying ASF
  80. or RM file. The reason for this is that the browser often fetches the
  81. entire file before starting up the external viewer. The redirection files
  82. are very small and can be transferred quickly. [The stream itself is
  83. often 'infinite' and thus the browser tries to download it and never
  84. finishes.]
  85. @section Tips
  86. * When you connect to a live stream, most players (WMP, RA, etc) want to
  87. buffer a certain number of seconds of material so that they can display the
  88. signal continuously. However, ffserver (by default) starts sending data
  89. in realtime. This means that there is a pause of a few seconds while the
  90. buffering is being done by the player. The good news is that this can be
  91. cured by adding a '?buffer=5' to the end of the URL. This means that the
  92. stream should start 5 seconds in the past -- and so the first 5 seconds
  93. of the stream are sent as fast as the network will allow. It will then
  94. slow down to real time. This noticeably improves the startup experience.
  95. You can also add a 'Preroll 15' statement into the ffserver.conf that will
  96. add the 15 second prebuffering on all requests that do not otherwise
  97. specify a time. In addition, ffserver will skip frames until a key_frame
  98. is found. This further reduces the startup delay by not transferring data
  99. that will be discarded.
  100. @section Why does the ?buffer / Preroll stop working after a time?
  101. It turns out that (on my machine at least) the number of frames successfully
  102. grabbed is marginally less than the number that ought to be grabbed. This
  103. means that the timestamp in the encoded data stream gets behind realtime.
  104. This means that if you say 'Preroll 10', then when the stream gets 10
  105. or more seconds behind, there is no Preroll left.
  106. Fixing this requires a change in the internals of how timestamps are
  107. handled.
  108. @section Does the @code{?date=} stuff work.
  109. Yes (subject to the limitation outlined above). Also note that whenever you
  110. start ffserver, it deletes the ffm file (if any parameters have changed),
  111. thus wiping out what you had recorded before.
  112. The format of the @code{?date=xxxxxx} is fairly flexible. You should use one
  113. of the following formats (the 'T' is literal):
  114. @example
  115. * YYYY-MM-DDTHH:MM:SS (localtime)
  116. * YYYY-MM-DDTHH:MM:SSZ (UTC)
  117. @end example
  118. You can omit the YYYY-MM-DD, and then it refers to the current day. However
  119. note that @samp{?date=16:00:00} refers to 16:00 on the current day -- this
  120. may be in the future and so is unlikely to be useful.
  121. You use this by adding the ?date= to the end of the URL for the stream.
  122. For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}.
  123. @c man end
  124. @section What is FFM, FFM2
  125. FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
  126. video and audio streams and encoding options, and can store a moving time segment
  127. of an infinite movie or a whole movie.
  128. FFM is version specific, and there is limited compatibility of FFM files
  129. generated by one version of ffmpeg/ffserver and another version of
  130. ffmpeg/ffserver. It may work but it is not guaranteed to work.
  131. FFM2 is extensible while maintaining compatibility and should work between
  132. differing versions of tools. FFM2 is the default.
  133. @chapter Options
  134. @c man begin OPTIONS
  135. @include fftools-common-opts.texi
  136. @section Main options
  137. @table @option
  138. @item -f @var{configfile}
  139. Read configuration file @file{configfile}. If not specified it will
  140. read by default from @file{/etc/ffserver.conf}.
  141. @item -n
  142. Enable no-launch mode. This option disables all the @code{Launch}
  143. directives within the various @code{<Feed>} sections. Since
  144. @command{ffserver} will not launch any @command{ffmpeg} instances, you
  145. will have to launch them manually.
  146. @item -d
  147. Enable debug mode. This option increases log verbosity, and directs
  148. log messages to stdout. When specified, the @option{CustomLog} option
  149. is ignored.
  150. @end table
  151. @chapter Configuration file syntax
  152. @command{ffserver} reads a configuration file containing global
  153. options and settings for each stream and feed.
  154. The configuration file consists of global options and dedicated
  155. sections, which must be introduced by "<@var{SECTION_NAME}
  156. @var{ARGS}>" on a separate line and must be terminated by a line in
  157. the form "</@var{SECTION_NAME}>". @var{ARGS} is optional.
  158. Currently the following sections are recognized: @samp{Feed},
  159. @samp{Stream}, @samp{Redirect}.
  160. A line starting with @code{#} is ignored and treated as a comment.
  161. Name of options and sections are case-insensitive.
  162. @section ACL syntax
  163. An ACL (Access Control List) specifies the address which are allowed
  164. to access a given stream, or to write a given feed.
  165. It accepts the folling forms
  166. @itemize
  167. @item
  168. Allow/deny access to @var{address}.
  169. @example
  170. ACL ALLOW <address>
  171. ACL DENY <address>
  172. @end example
  173. @item
  174. Allow/deny access to ranges of addresses from @var{first_address} to
  175. @var{last_address}.
  176. @example
  177. ACL ALLOW <first_address> <last_address>
  178. ACL DENY <first_address> <last_address>
  179. @end example
  180. @end itemize
  181. You can repeat the ACL allow/deny as often as you like. It is on a per
  182. stream basis. The first match defines the action. If there are no matches,
  183. then the default is the inverse of the last ACL statement.
  184. Thus 'ACL allow localhost' only allows access from localhost.
  185. 'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and
  186. allow everybody else.
  187. @section Global options
  188. @table @option
  189. @item Port @var{port_number}
  190. @item RTSPPort @var{port_number}
  191. Set TCP port number on which the HTTP/RTSP server is listening. You
  192. must select a different port from your standard HTTP web server if it
  193. is running on the same computer.
  194. If not specified, no corresponding server will be created.
  195. @item BindAddress @var{ip_address}
  196. @item RTSPBindAddress @var{ip_address}
  197. Set address on which the HTTP/RTSP server is bound. Only useful if you
  198. have several network interfaces.
  199. @item MaxHTTPConnections @var{n}
  200. Set number of simultaneous HTTP connections that can be handled. It
  201. has to be defined @emph{before} the @option{MaxClients} parameter,
  202. since it defines the @option{MaxClients} maximum limit.
  203. Default value is 2000.
  204. @item MaxClients @var{n}
  205. Set number of simultaneous requests that can be handled. Since
  206. @command{ffserver} is very fast, it is more likely that you will want
  207. to leave this high and use @option{MaxBandwidth}.
  208. Default value is 5.
  209. @item MaxBandwidth @var{kbps}
  210. Set the maximum amount of kbit/sec that you are prepared to consume
  211. when streaming to clients.
  212. Default value is 1000.
  213. @item CustomLog @var{filename}
  214. Set access log file (uses standard Apache log file format). '-' is the
  215. standard output.
  216. If not specified @command{ffserver} will produce no log.
  217. In case the commandline option @option{-d} is specified this option is
  218. ignored, and the log is written to standard output.
  219. @item NoDaemon
  220. Set no-daemon mode. This option is currently ignored since now
  221. @command{ffserver} will work in no-daemon mode, and is deprecated.
  222. @end table
  223. @section Feed section
  224. A Feed section defines a feed provided to @command{ffserver}.
  225. Each live feed contains one video and/or audio sequence coming from an
  226. @command{ffmpeg} encoder or another @command{ffserver}. This sequence
  227. may be encoded simultaneously with several codecs at several
  228. resolutions.
  229. A feed instance specification is introduced by a line in the form:
  230. @example
  231. <Feed FEED_FILENAME>
  232. @end example
  233. where @var{FEED_FILENAME} specifies the unique name of the FFM stream.
  234. The following options are recognized within a Feed section.
  235. @table @option
  236. @item File @var{filename}
  237. @item ReadOnlyFile @var{filename}
  238. Set the path where the feed file is stored on disk.
  239. If not specified, the @file{/tmp/FEED.ffm} is assumed, where
  240. @var{FEED} is the feed name.
  241. If @option{ReadOnlyFile} is used the file is marked as read-only and
  242. it will not be deleted or updated.
  243. @item Truncate
  244. Truncate the feed file, rather than appending to it. By default
  245. @command{ffserver} will append data to the file, until the maximum
  246. file size value is reached (see @option{FileMaxSize} option).
  247. @item FileMaxSize @var{size}
  248. Set maximum size of the feed. 0 means unlimited. The postfixes
  249. @code{K}, @code{M}, and @code{G} are recognized.
  250. Default value is 5M.
  251. @item Launch @var{args}
  252. Launch an @command{ffmpeg} command when creating @command{ffserver}.
  253. @var{args} must be a sequence of arguments to be provided to an
  254. @command{ffmpeg} instance. The first provided argument is ignored, and
  255. it is replaced by a path with the same dirname of the @command{ffserver}
  256. instance, followed by the remaining argument and terminated with a
  257. path corresponding to the feed.
  258. When the launched process exits, @command{ffserver} will launch
  259. another program instance.
  260. In case you need a more complex @command{ffmpeg} configuration,
  261. e.g. if you need to generate multiple FFM feeds with a single
  262. @command{ffmpeg} instance, you should launch @command{ffmpeg} by hand.
  263. This option is ignored in case the commandline option @option{-n} is
  264. specified.
  265. @item ACL @var{spec}
  266. Specify the list of IP address which are allowed or denied to write
  267. the feed. Multiple ACL options can be specified.
  268. @end table
  269. @section Stream section
  270. A Stream section defines a stream provided by @command{ffserver}, and
  271. identified by a single name.
  272. The stream is sent when answering a request containing the stream
  273. name.
  274. A stream section must be introduced by the line:
  275. @example
  276. <Stream STREAM_NAME>
  277. @end example
  278. where @var{STREAM_NAME} specifies the unique name of the stream.
  279. The following options are recognized within a Stream section.
  280. Encoding options are marked with the @emph{encoding} tag, and they are
  281. used to set the encoding parameters, and are mapped to libavcodec
  282. encoding options. Not all encoding options are supported, in
  283. particular it is not possible to set encoder private options. In order
  284. to override the encoding options specified by @command{ffserver}, you
  285. can use the @command{ffmpeg} @option{override_ffserver} commandline
  286. option.
  287. Only one of the @option{Feed} and @option{File} options should be set.
  288. @table @option
  289. @item Feed @var{feed_name}
  290. Set the input feed. @var{feed_name} must correspond to an existing
  291. feed defined in a @code{Feed} section.
  292. When this option is set, encoding options are used to setup the
  293. encoding operated by the remote @command{ffmpeg} process.
  294. @item File @var{filename}
  295. Set the filename of the pre-recorded input file to stream.
  296. When this option is set, encoding options are ignored and the input
  297. file content is re-streamed as is.
  298. @item Format @var{format_name}
  299. Set the format of the output stream.
  300. Must be the name of a format recognized by FFmpeg. If set to
  301. @samp{status}, it is treated as a status stream.
  302. @item InputFormat @var{format_name}
  303. Set input format. If not specified, it is automatically guessed.
  304. @item Preroll @var{n}
  305. Set this to the number of seconds backwards in time to start. Note that
  306. most players will buffer 5-10 seconds of video, and also you need to allow
  307. for a keyframe to appear in the data stream.
  308. Default value is 0.
  309. @item StartSendOnKey
  310. Do not send stream until it gets the first key frame. By default
  311. @command{ffserver} will send data immediately.
  312. @item MaxTime @var{n}
  313. Set the number of seconds to run. This value set the maximum duration
  314. of the stream a client will be able to receive.
  315. A value of 0 means that no limit is set on the stream duration.
  316. @item ACL @var{spec}
  317. Set ACL for the stream.
  318. @item DynamicACL @var{spec}
  319. @item RTSPOption @var{option}
  320. @item MulticastAddress @var{address}
  321. @item MulticastPort @var{port}
  322. @item MulticastTTL @var{integer}
  323. @item NoLoop
  324. @item FaviconURL @var{url}
  325. Set favicon (favourite icon) for the server status page. It is ignored
  326. for regular streams.
  327. @item Author @var{value}
  328. @item Comment @var{value}
  329. @item Copyright @var{value}
  330. @item Title @var{value}
  331. Set metadata corresponding to the option.
  332. @item NoAudio
  333. @item NoVideo
  334. Suppress audio/video.
  335. @item AudioCodec @var{codec_name} (@emph{encoding,audio})
  336. Set audio codec.
  337. @item AudioBitRate @var{rate} (@emph{encoding,audio})
  338. Set bitrate for the audio stream in kbits per second.
  339. @item AudioChannels @var{n} (@emph{encoding,audio})
  340. Set number of audio channels.
  341. @item AudioSampleRate @var{n} (@emph{encoding,audio})
  342. Set sampling frequency for audio. When using low bitrates, you should
  343. lower this frequency to 22050 or 11025. The supported frequencies
  344. depend on the selected audio codec.
  345. @item AVOptionAudio @var{option} @var{value} (@emph{encoding,audio})
  346. Set generic option for audio stream.
  347. @item AVPresetAudio @var{preset} (@emph{encoding,audio})
  348. Set preset for audio stream.
  349. @item VideoCodec @var{codec_name} (@emph{encoding,video})
  350. Set video codec.
  351. @item VideoBitRate @var{n} (@emph{encoding,video})
  352. Set bitrate for the video stream in kbits per second.
  353. @item VideoBitRateRange @var{range} (@emph{encoding,video})
  354. Set video bitrate range.
  355. A range must be specified in the form @var{minrate}-@var{maxrate}, and
  356. specifies the @option{minrate} and @option{maxrate} encoding options
  357. expressed in kbits per second.
  358. @item VideoBitRateRangeTolerance @var{n} (@emph{encoding,video})
  359. Set video bitrate tolerance in kbits per second.
  360. @item PixelFormat @var{pixel_format} (@emph{encoding,video})
  361. Set video pixel format.
  362. @item Debug @var{integer} (@emph{encoding,video})
  363. Set video @option{debug} encoding option.
  364. @item Strict @var{integer} (@emph{encoding,video})
  365. Set video @option{strict} encoding option.
  366. @item VideoBufferSize @var{n} (@emph{encoding,video})
  367. Set ratecontrol buffer size, expressed in KB.
  368. @item VideoFrameRate @var{n} (@emph{encoding,video})
  369. Set number of video frames per second.
  370. @item VideoSize (@emph{encoding,video})
  371. Set size of the video frame, must be an abbreviation or in the form
  372. @var{W}x@var{H}. See @ref{video size syntax,,the Video size section
  373. in the ffmpeg-utils(1) manual,ffmpeg-utils}.
  374. Default value is @code{160x128}.
  375. @item VideoIntraOnly (@emph{encoding,video})
  376. Transmit only intra frames (useful for low bitrates, but kills frame rate).
  377. @item VideoGopSize @var{n} (@emph{encoding,video})
  378. If non-intra only, an intra frame is transmitted every VideoGopSize
  379. frames. Video synchronization can only begin at an intra frame.
  380. @item VideoTag @var{tag} (@emph{encoding,video})
  381. Set video tag.
  382. @item VideoHighQuality (@emph{encoding,video})
  383. @item Video4MotionVector (@emph{encoding,video})
  384. @item BitExact (@emph{encoding,video})
  385. Set bitexact encoding flag.
  386. @item IdctSimple (@emph{encoding,video})
  387. Set simple IDCT algorithm.
  388. @item Qscale @var{n} (@emph{encoding,video})
  389. Enable constant quality encoding, and set video qscale (quantization
  390. scale) value, expressed in @var{n} QP units.
  391. @item VideoQMin @var{n} (@emph{encoding,video})
  392. @item VideoQMax @var{n} (@emph{encoding,video})
  393. Set video qmin/qmax.
  394. @item VideoQDiff @var{integer} (@emph{encoding,video})
  395. Set video @option{qdiff} encoding option.
  396. @item LumiMask @var{float} (@emph{encoding,video})
  397. @item DarkMask @var{float} (@emph{encoding,video})
  398. Set @option{lumi_mask}/@option{dark_mask} encoding options.
  399. @item AVOptionVideo @var{option} @var{value} (@emph{encoding,video})
  400. Set generic option for video stream.
  401. @item AVPresetVideo @var{preset} (@emph{encoding,video})
  402. Set preset for video stream.
  403. @var{preset} must be the path of a preset file.
  404. @end table
  405. @subsection Server status stream
  406. A server status stream is a special stream which is used to show
  407. statistics about the @command{ffserver} operations.
  408. It must be specified setting the option @option{Format} to
  409. @samp{status}.
  410. @section Redirect section
  411. A redirect section specifies where to redirect the requested URL to
  412. another page.
  413. A redirect section must be introduced by the line:
  414. @example
  415. <Redirect NAME>
  416. @end example
  417. where @var{NAME} is the name of the page which should be redirected.
  418. It only accepts the option @option{URL}, which specify the redirection
  419. URL.
  420. @chapter Stream examples
  421. @itemize
  422. @item
  423. Multipart JPEG
  424. @example
  425. <Stream test.mjpg>
  426. Feed feed1.ffm
  427. Format mpjpeg
  428. VideoFrameRate 2
  429. VideoIntraOnly
  430. NoAudio
  431. Strict -1
  432. </Stream>
  433. @end example
  434. @item
  435. Single JPEG
  436. @example
  437. <Stream test.jpg>
  438. Feed feed1.ffm
  439. Format jpeg
  440. VideoFrameRate 2
  441. VideoIntraOnly
  442. VideoSize 352x240
  443. NoAudio
  444. Strict -1
  445. </Stream>
  446. @end example
  447. @item
  448. Flash
  449. @example
  450. <Stream test.swf>
  451. Feed feed1.ffm
  452. Format swf
  453. VideoFrameRate 2
  454. VideoIntraOnly
  455. NoAudio
  456. </Stream>
  457. @end example
  458. @item
  459. ASF compatible
  460. @example
  461. <Stream test.asf>
  462. Feed feed1.ffm
  463. Format asf
  464. VideoFrameRate 15
  465. VideoSize 352x240
  466. VideoBitRate 256
  467. VideoBufferSize 40
  468. VideoGopSize 30
  469. AudioBitRate 64
  470. StartSendOnKey
  471. </Stream>
  472. @end example
  473. @item
  474. MP3 audio
  475. @example
  476. <Stream test.mp3>
  477. Feed feed1.ffm
  478. Format mp2
  479. AudioCodec mp3
  480. AudioBitRate 64
  481. AudioChannels 1
  482. AudioSampleRate 44100
  483. NoVideo
  484. </Stream>
  485. @end example
  486. @item
  487. Ogg Vorbis audio:
  488. @example
  489. <Stream test.ogg>
  490. Feed feed1.ffm
  491. Title "Stream title"
  492. AudioBitRate 64
  493. AudioChannels 2
  494. AudioSampleRate 44100
  495. NoVideo
  496. </Stream>
  497. @end example
  498. @item
  499. Real with audio only at 32 kbits
  500. @example
  501. <Stream test.ra>
  502. Feed feed1.ffm
  503. Format rm
  504. AudioBitRate 32
  505. NoVideo
  506. NoAudio
  507. </Stream>
  508. @end example
  509. @item
  510. Real with audio and video at 64 kbits
  511. @example
  512. <Stream test.rm>
  513. Feed feed1.ffm
  514. Format rm
  515. AudioBitRate 32
  516. VideoBitRate 128
  517. VideoFrameRate 25
  518. VideoGopSize 25
  519. NoAudio
  520. </Stream>
  521. @end example
  522. @item
  523. For stream coming from a file: you only need to set the input filename
  524. and optionally a new format.
  525. @example
  526. <Stream file.rm>
  527. File "/usr/local/httpd/htdocs/tlive.rm"
  528. NoAudio
  529. </Stream>
  530. @end example
  531. @example
  532. <Stream file.asf>
  533. File "/usr/local/httpd/htdocs/test.asf"
  534. NoAudio
  535. Author "Me"
  536. Copyright "Super MegaCorp"
  537. Title "Test stream from disk"
  538. Comment "Test comment"
  539. </Stream>
  540. @end example
  541. @end itemize
  542. @c man end
  543. @include config.texi
  544. @ifset config-all
  545. @ifset config-avutil
  546. @include utils.texi
  547. @end ifset
  548. @ifset config-avcodec
  549. @include codecs.texi
  550. @include bitstream_filters.texi
  551. @end ifset
  552. @ifset config-avformat
  553. @include formats.texi
  554. @include protocols.texi
  555. @end ifset
  556. @ifset config-avdevice
  557. @include devices.texi
  558. @end ifset
  559. @ifset config-swresample
  560. @include resampler.texi
  561. @end ifset
  562. @ifset config-swscale
  563. @include scaler.texi
  564. @end ifset
  565. @ifset config-avfilter
  566. @include filters.texi
  567. @end ifset
  568. @end ifset
  569. @chapter See Also
  570. @ifhtml
  571. @ifset config-all
  572. @url{ffserver.html,ffserver},
  573. @end ifset
  574. @ifset config-not-all
  575. @url{ffserver-all.html,ffserver-all},
  576. @end ifset
  577. the @file{doc/ffserver.conf} example,
  578. @url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe},
  579. @url{ffmpeg-utils.html,ffmpeg-utils},
  580. @url{ffmpeg-scaler.html,ffmpeg-scaler},
  581. @url{ffmpeg-resampler.html,ffmpeg-resampler},
  582. @url{ffmpeg-codecs.html,ffmpeg-codecs},
  583. @url{ffmpeg-bitstream-filters.html,ffmpeg-bitstream-filters},
  584. @url{ffmpeg-formats.html,ffmpeg-formats},
  585. @url{ffmpeg-devices.html,ffmpeg-devices},
  586. @url{ffmpeg-protocols.html,ffmpeg-protocols},
  587. @url{ffmpeg-filters.html,ffmpeg-filters}
  588. @end ifhtml
  589. @ifnothtml
  590. @ifset config-all
  591. ffserver(1),
  592. @end ifset
  593. @ifset config-not-all
  594. ffserver-all(1),
  595. @end ifset
  596. the @file{doc/ffserver.conf} example, ffmpeg(1), ffplay(1), ffprobe(1),
  597. ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
  598. ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
  599. ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
  600. @end ifnothtml
  601. @include authors.texi
  602. @ignore
  603. @setfilename ffserver
  604. @settitle ffserver video server
  605. @end ignore
  606. @bye