ffserver.conf 8.89 KB
Newer Older
Fabrice Bellard's avatar
Fabrice Bellard committed
1
# Port on which the server is listening. You must select a different
Diego Biurrun's avatar
Diego Biurrun committed
2
# port from your standard HTTP web server if it is running on the same
Fabrice Bellard's avatar
Fabrice Bellard committed
3
# computer.
4
HTTPPort 8090
Fabrice Bellard's avatar
Fabrice Bellard committed
5 6 7

# Address on which the server is bound. Only useful if you have
# several network interfaces.
8
HTTPBindAddress 0.0.0.0
Fabrice Bellard's avatar
Fabrice Bellard committed
9

10 11 12 13 14
# Number of simultaneous HTTP connections that can be handled. It has
# to be defined *before* the MaxClients parameter, since it defines the
# MaxClients maximum limit.
MaxHTTPConnections 2000

Fabrice Bellard's avatar
Fabrice Bellard committed
15
# Number of simultaneous requests that can be handled. Since FFServer
16 17
# is very fast, it is more likely that you will want to leave this high
# and use MaxBandwidth, below.
Fabrice Bellard's avatar
Fabrice Bellard committed
18 19
MaxClients 1000

20
# This the maximum amount of kbit/sec that you are prepared to
Diego Biurrun's avatar
Diego Biurrun committed
21
# consume when streaming to clients.
22 23
MaxBandwidth 1000

Diego Biurrun's avatar
Diego Biurrun committed
24 25
# Access log file (uses standard Apache log file format)
# '-' is the standard output.
Fabrice Bellard's avatar
Fabrice Bellard committed
26 27 28 29 30 31 32 33 34 35 36 37
CustomLog -

##################################################################
# Definition of the live feeds. Each live feed contains one video
# and/or audio sequence coming from an ffmpeg encoder or another
# ffserver. This sequence may be encoded simultaneously with several
# codecs at several resolutions.

<Feed feed1.ffm>

# You must use 'ffmpeg' to send a live feed to ffserver. In this
# example, you can type:
38
#
Fabrice Bellard's avatar
Fabrice Bellard committed
39 40 41 42 43 44
# ffmpeg http://localhost:8090/feed1.ffm

# ffserver can also do time shifting. It means that it can stream any
# previously recorded live stream. The request should contain:
# "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify
# a path where the feed is stored on disk. You also specify the
45
# maximum size of the feed, where zero means unlimited. Default:
Fabrice Bellard's avatar
Fabrice Bellard committed
46 47
# File=/tmp/feed_name.ffm FileMaxSize=5M
File /tmp/feed1.ffm
48 49
FileMaxSize 200K

50 51
# You could specify
# ReadOnlyFile /saved/specialvideo.ffm
Diego Biurrun's avatar
Diego Biurrun committed
52
# This marks the file as readonly and it will not be deleted or updated.
53

Diego Biurrun's avatar
Diego Biurrun committed
54
# Specify launch in order to start ffmpeg automatically.
55 56 57
# First ffmpeg must be defined with an appropriate path if needed,
# after that options can follow, but avoid adding the http:// field
#Launch ffmpeg
Fabrice Bellard's avatar
Fabrice Bellard committed
58

Diego Biurrun's avatar
Diego Biurrun committed
59
# Only allow connections from localhost to the feed.
60 61
ACL allow 127.0.0.1

Fabrice Bellard's avatar
Fabrice Bellard committed
62 63
</Feed>

64

Fabrice Bellard's avatar
Fabrice Bellard committed
65 66 67
##################################################################
# Now you can define each stream which will be generated from the
# original audio and video stream. Each format has a filename (here
68
# 'test1.mpg'). FFServer will send this stream when answering a
Fabrice Bellard's avatar
Fabrice Bellard committed
69 70 71 72 73 74 75 76
# request containing this filename.

<Stream test1.mpg>

# coming from live feed 'feed1'
Feed feed1.ffm

# Format of the stream : you can choose among:
Diego Biurrun's avatar
Diego Biurrun committed
77 78 79
# mpeg       : MPEG-1 multiplexed video and audio
# mpegvideo  : only MPEG-1 video
# mp2        : MPEG-2 audio (use AudioCodec to select layer 2 and 3 codec)
80
# ogg        : Ogg format (Vorbis audio codec)
81 82
# rm         : RealNetworks-compatible stream. Multiplexed audio and video.
# ra         : RealNetworks-compatible stream. Audio only.
Fabrice Bellard's avatar
Fabrice Bellard committed
83 84
# mpjpeg     : Multipart JPEG (works with Netscape without any plugin)
# jpeg       : Generate a single JPEG image.
85
# mjpeg      : Generate a M-JPEG stream.
Fabrice Bellard's avatar
Fabrice Bellard committed
86
# asf        : ASF compatible streaming (Windows Media Player format).
87
# swf        : Macromedia Flash compatible stream
88
# avi        : AVI format (MPEG-4 video, MPEG audio sound)
Fabrice Bellard's avatar
Fabrice Bellard committed
89 90
Format mpeg

91
# Bitrate for the audio stream. Codecs usually support only a few
92
# different bitrates.
Fabrice Bellard's avatar
Fabrice Bellard committed
93 94
AudioBitRate 32

95
# Number of audio channels: 1 = mono, 2 = stereo
Fabrice Bellard's avatar
Fabrice Bellard committed
96 97 98 99 100 101 102
AudioChannels 1

# Sampling frequency for audio. When using low bitrates, you should
# lower this frequency to 22050 or 11025. The supported frequencies
# depend on the selected audio codec.
AudioSampleRate 44100

Diego Biurrun's avatar
Diego Biurrun committed
103
# Bitrate for the video stream
Fabrice Bellard's avatar
Fabrice Bellard committed
104 105
VideoBitRate 64

106 107 108
# Ratecontrol buffer size
VideoBufferSize 40

Fabrice Bellard's avatar
Fabrice Bellard committed
109 110 111
# Number of frames per second
VideoFrameRate 3

112
# Size of the video frame: WxH (default: 160x128)
Benoit Fouet's avatar
Benoit Fouet committed
113 114 115 116
# The following abbreviations are defined: sqcif, qcif, cif, 4cif, qqvga,
# qvga, vga, svga, xga, uxga, qxga, sxga, qsxga, hsxga, wvga, wxga, wsxga,
# wuxga, woxga, wqsxga, wquxga, whsxga, whuxga, cga, ega, hd480, hd720,
# hd1080
117
VideoSize 160x128
Fabrice Bellard's avatar
Fabrice Bellard committed
118

Diego Biurrun's avatar
Diego Biurrun committed
119
# Transmit only intra frames (useful for low bitrates, but kills frame rate).
120
#VideoIntraOnly
Fabrice Bellard's avatar
Fabrice Bellard committed
121

Diego Biurrun's avatar
Diego Biurrun committed
122 123
# If non-intra only, an intra frame is transmitted every VideoGopSize
# frames. Video synchronization can only begin at an intra frame.
124 125
VideoGopSize 12

Diego Biurrun's avatar
Diego Biurrun committed
126
# More MPEG-4 parameters
127 128 129
# VideoHighQuality
# Video4MotionVector

130
# Choose your codecs:
131 132
#AudioCodec mp2
#VideoCodec mpeg1video
Fabrice Bellard's avatar
Fabrice Bellard committed
133 134 135 136 137 138 139

# Suppress audio
#NoAudio

# Suppress video
#NoVideo

140 141 142 143 144
#VideoQMin 3
#VideoQMax 31

# Set this to the number of seconds backwards in time to start. Note that
# most players will buffer 5-10 seconds of video, and also you need to allow
Diego Biurrun's avatar
Diego Biurrun committed
145
# for a keyframe to appear in the data stream.
Diego Biurrun's avatar
Diego Biurrun committed
146
#Preroll 15
147

148 149 150
# ACL:

# You can allow ranges of addresses (or single addresses)
151
#ACL ALLOW <first address> <last address>
152 153

# You can deny ranges of addresses (or single addresses)
154
#ACL DENY <first address> <last address>
155

156 157 158
# You can repeat the ACL allow/deny as often as you like. It is on a per
# stream basis. The first match defines the action. If there are no matches,
# then the default is the inverse of the last ACL statement.
Fabrice Bellard's avatar
Fabrice Bellard committed
159
#
160
# Thus 'ACL allow localhost' only allows access from localhost.
161 162
# 'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and
# allow everybody else.
Fabrice Bellard's avatar
Fabrice Bellard committed
163 164 165 166 167

</Stream>


##################################################################
168
# Example streams
Fabrice Bellard's avatar
Fabrice Bellard committed
169 170


171
# Multipart JPEG
Fabrice Bellard's avatar
Fabrice Bellard committed
172

173 174 175 176 177 178
#<Stream test.mjpg>
#Feed feed1.ffm
#Format mpjpeg
#VideoFrameRate 2
#VideoIntraOnly
#NoAudio
179
#Strict -1
180
#</Stream>
Fabrice Bellard's avatar
Fabrice Bellard committed
181

182 183

# Single JPEG
Fabrice Bellard's avatar
Fabrice Bellard committed
184

185 186 187
#<Stream test.jpg>
#Feed feed1.ffm
#Format jpeg
188
#VideoFrameRate 2
189 190 191
#VideoIntraOnly
##VideoSize 352x240
#NoAudio
192
#Strict -1
193
#</Stream>
Fabrice Bellard's avatar
Fabrice Bellard committed
194 195


196
# Flash
Fabrice Bellard's avatar
Fabrice Bellard committed
197

198
#<Stream test.swf>
199 200 201 202 203 204
#Feed feed1.ffm
#Format swf
#VideoFrameRate 2
#VideoIntraOnly
#NoAudio
#</Stream>
Fabrice Bellard's avatar
Fabrice Bellard committed
205 206


207
# ASF compatible
Fabrice Bellard's avatar
Fabrice Bellard committed
208

209 210 211 212 213 214
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
215
VideoBufferSize 40
216 217 218 219
VideoGopSize 30
AudioBitRate 64
StartSendOnKey
</Stream>
Fabrice Bellard's avatar
Fabrice Bellard committed
220 221


222
# MP3 audio
Fabrice Bellard's avatar
Fabrice Bellard committed
223

224 225 226 227 228 229 230 231 232
#<Stream test.mp3>
#Feed feed1.ffm
#Format mp2
#AudioCodec mp3
#AudioBitRate 64
#AudioChannels 1
#AudioSampleRate 44100
#NoVideo
#</Stream>
233 234


235
# Ogg Vorbis audio
236

237 238
#<Stream test.ogg>
#Feed feed1.ffm
239
#Metadata title "Stream title"
240 241 242 243 244
#AudioBitRate 64
#AudioChannels 2
#AudioSampleRate 44100
#NoVideo
#</Stream>
245 246


247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
# Real with audio only at 32 kbits

#<Stream test.ra>
#Feed feed1.ffm
#Format rm
#AudioBitRate 32
#NoVideo
#NoAudio
#</Stream>


# Real with audio and video at 64 kbits

#<Stream test.rm>
#Feed feed1.ffm
#Format rm
#AudioBitRate 32
#VideoBitRate 128
#VideoFrameRate 25
#VideoGopSize 25
#NoAudio
#</Stream>

270

271
##################################################################
272
# A stream coming from a file: you only need to set the input
Diego Biurrun's avatar
Diego Biurrun committed
273 274
# filename and optionally a new format. Supported conversions:
#    AVI -> ASF
275

276 277 278 279 280 281 282 283
#<Stream file.rm>
#File "/usr/local/httpd/htdocs/tlive.rm"
#NoAudio
#</Stream>

#<Stream file.asf>
#File "/usr/local/httpd/htdocs/test.asf"
#NoAudio
284 285 286 287
#Metadata author "Me"
#Metadata copyright "Super MegaCorp"
#Metadata title "Test stream from disk"
#Metadata comment "Test comment"
288 289 290 291 292
#</Stream>


##################################################################
# RTSP examples
293
#
Diego Biurrun's avatar
Diego Biurrun committed
294
# You can access this stream with the RTSP URL:
295
#   rtsp://localhost:5454/test1-rtsp.mpg
296
#
Diego Biurrun's avatar
Diego Biurrun committed
297
# A non-standard RTSP redirector is also created. Its URL is:
298 299
#   http://localhost:8090/test1-rtsp.rtsp

300 301 302 303 304
#<Stream test1-rtsp.mpg>
#Format rtp
#File "/usr/local/httpd/htdocs/test1.mpg"
#</Stream>

305

306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326
# Transcode an incoming live feed to another live feed,
# using libx264 and video presets

#<Stream live.h264>
#Format rtp
#Feed feed1.ffm
#VideoCodec libx264
#VideoFrameRate 24
#VideoBitRate 100
#VideoSize 480x272
#AVPresetVideo default
#AVPresetVideo baseline
#AVOptionVideo flags +global_header
#
#AudioCodec libfaac
#AudioBitRate 32
#AudioChannels 2
#AudioSampleRate 22050
#AVOptionAudio flags +global_header
#</Stream>

327 328
##################################################################
# SDP/multicast examples
329
#
330 331 332 333 334 335 336 337
# If you want to send your stream in multicast, you must set the
# multicast address with MulticastAddress. The port and the TTL can
# also be set.
#
# An SDP file is automatically generated by ffserver by adding the
# 'sdp' extension to the stream name (here
# http://localhost:8090/test1-sdp.sdp). You should usually give this
# file to your player to play the stream.
338
#
339 340
# The 'NoLoop' option can be used to avoid looping when the stream is
# terminated.
341

342 343 344 345 346 347 348 349 350
#<Stream test1-sdp.mpg>
#Format rtp
#File "/usr/local/httpd/htdocs/test1.mpg"
#MulticastAddress 224.124.0.1
#MulticastPort 5000
#MulticastTTL 16
#NoLoop
#</Stream>

351

Fabrice Bellard's avatar
Fabrice Bellard committed
352
##################################################################
353
# Special streams
Fabrice Bellard's avatar
Fabrice Bellard committed
354

355
# Server status
Fabrice Bellard's avatar
Fabrice Bellard committed
356

357
<Stream stat.html>
Fabrice Bellard's avatar
Fabrice Bellard committed
358 359
Format status

Diego Biurrun's avatar
Diego Biurrun committed
360
# Only allow local people to get the status
361 362 363
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255

364
#FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico
Fabrice Bellard's avatar
Fabrice Bellard committed
365
</Stream>
366 367


368 369
# Redirect index.html to the appropriate site

370
<Redirect index.html>
371
URL http://www.ffmpeg.org/
372
</Redirect>