|
|
|
# Port on which the server is listening. You must select a different
|
|
|
|
# port from your standard HTTP web server if it is running on the same
|
|
|
|
# computer.
|
|
|
|
Port 8090
|
|
|
|
|
|
|
|
# Address on which the server is bound. Only useful if you have
|
|
|
|
# several network interfaces.
|
|
|
|
BindAddress 0.0.0.0
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
# Number of simultaneous requests that can be handled. Since FFServer
|
|
|
|
# is very fast, it is more likely that you will want to leave this high
|
|
|
|
# and use MaxBandwidth, below.
|
|
|
|
MaxClients 1000
|
|
|
|
|
|
|
|
# This the maximum amount of kbit/sec that you are prepared to
|
|
|
|
# consume when streaming to clients.
|
|
|
|
MaxBandwidth 1000
|
|
|
|
|
|
|
|
# Access log file (uses standard Apache log file format)
|
|
|
|
# '-' is the standard output.
|
|
|
|
CustomLog -
|
|
|
|
|
|
|
|
# Suppress that if you want to launch ffserver as a daemon.
|
|
|
|
NoDaemon
|
|
|
|
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# 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:
|
|
|
|
#
|
|
|
|
# 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
|
|
|
|
# maximum size of the feed, where zero means unlimited. Default:
|
|
|
|
# File=/tmp/feed_name.ffm FileMaxSize=5M
|
|
|
|
File /tmp/feed1.ffm
|
|
|
|
FileMaxSize 200K
|
|
|
|
|
|
|
|
# You could specify
|
|
|
|
# ReadOnlyFile /saved/specialvideo.ffm
|
|
|
|
# This marks the file as readonly and it will not be deleted or updated.
|
|
|
|
|
|
|
|
# Specify launch in order to start ffmpeg automatically.
|
|
|
|
# First ffmpeg must be defined with an appropriate path if needed,
|
|
|
|
# after that options can follow, but avoid adding the http:// field
|
|
|
|
#Launch ffmpeg
|
|
|
|
|
|
|
|
# Only allow connections from localhost to the feed.
|
|
|
|
ACL allow 127.0.0.1
|
|
|
|
|
|
|
|
</Feed>
|
|
|
|
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# Now you can define each stream which will be generated from the
|
|
|
|
# original audio and video stream. Each format has a filename (here
|
|
|
|
# 'test1.mpg'). FFServer will send this stream when answering a
|
|
|
|
# request containing this filename.
|
|
|
|
|
|
|
|
<Stream test1.mpg>
|
|
|
|
|
|
|
|
# coming from live feed 'feed1'
|
|
|
|
Feed feed1.ffm
|
|
|
|
|
|
|
|
# Format of the stream : you can choose among:
|
|
|
|
# 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)
|
|
|
|
# ogg : Ogg format (Vorbis audio codec)
|
|
|
|
# rm : RealNetworks-compatible stream. Multiplexed audio and video.
|
|
|
|
# ra : RealNetworks-compatible stream. Audio only.
|
|
|
|
# mpjpeg : Multipart JPEG (works with Netscape without any plugin)
|
|
|
|
# jpeg : Generate a single JPEG image.
|
|
|
|
# asf : ASF compatible streaming (Windows Media Player format).
|
|
|
|
# swf : Macromedia Flash compatible stream
|
|
|
|
# avi : AVI format (MPEG-4 video, MPEG audio sound)
|
|
|
|
Format mpeg
|
|
|
|
|
|
|
|
# Bitrate for the audio stream. Codecs usually support only a few
|
|
|
|
# different bitrates.
|
|
|
|
AudioBitRate 32
|
|
|
|
|
|
|
|
# Number of audio channels: 1 = mono, 2 = stereo
|
|
|
|
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
|
|
|
|
|
|
|
|
# Bitrate for the video stream
|
|
|
|
VideoBitRate 64
|
|
|
|
|
|
|
|
# Ratecontrol buffer size
|
|
|
|
VideoBufferSize 40
|
|
|
|
|
|
|
|
# Number of frames per second
|
|
|
|
VideoFrameRate 3
|
|
|
|
|
|
|
|
# Size of the video frame: WxH (default: 160x128)
|
|
|
|
# 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
|
|
|
|
VideoSize 160x128
|
|
|
|
|
|
|
|
# Transmit only intra frames (useful for low bitrates, but kills frame rate).
|
|
|
|
#VideoIntraOnly
|
|
|
|
|
|
|
|
# If non-intra only, an intra frame is transmitted every VideoGopSize
|
|
|
|
# frames. Video synchronization can only begin at an intra frame.
|
|
|
|
VideoGopSize 12
|
|
|
|
|
|
|
|
# More MPEG-4 parameters
|
|
|
|
# VideoHighQuality
|
|
|
|
# Video4MotionVector
|
|
|
|
|
|
|
|
# Choose your codecs:
|
|
|
|
#AudioCodec mp2
|
|
|
|
#VideoCodec mpeg1video
|
|
|
|
|
|
|
|
# Suppress audio
|
|
|
|
#NoAudio
|
|
|
|
|
|
|
|
# Suppress video
|
|
|
|
#NoVideo
|
|
|
|
|
|
|
|
#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
|
|
|
|
# for a keyframe to appear in the data stream.
|
|
|
|
#Preroll 15
|
|
|
|
|
|
|
|
# ACL:
|
|
|
|
|
|
|
|
# You can allow ranges of addresses (or single addresses)
|
|
|
|
#ACL ALLOW <first address> <last address>
|
|
|
|
|
|
|
|
# You can deny ranges of addresses (or single addresses)
|
|
|
|
#ACL DENY <first address> <last address>
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
#
|
|
|
|
# Thus 'ACL allow localhost' only allows access from localhost.
|
|
|
|
# 'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and
|
|
|
|
# allow everybody else.
|
|
|
|
|
|
|
|
</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# Example streams
|
|
|
|
|
|
|
|
|
|
|
|
# Multipart JPEG
|
|
|
|
|
|
|
|
#<Stream test.mjpg>
|
|
|
|
#Feed feed1.ffm
|
|
|
|
#Format mpjpeg
|
|
|
|
#VideoFrameRate 2
|
|
|
|
#VideoIntraOnly
|
|
|
|
#NoAudio
|
|
|
|
#Strict -1
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# Single JPEG
|
|
|
|
|
|
|
|
#<Stream test.jpg>
|
|
|
|
#Feed feed1.ffm
|
|
|
|
#Format jpeg
|
|
|
|
#VideoFrameRate 2
|
|
|
|
#VideoIntraOnly
|
|
|
|
##VideoSize 352x240
|
|
|
|
#NoAudio
|
|
|
|
#Strict -1
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# Flash
|
|
|
|
|
|
|
|
#<Stream test.swf>
|
|
|
|
#Feed feed1.ffm
|
|
|
|
#Format swf
|
|
|
|
#VideoFrameRate 2
|
|
|
|
#VideoIntraOnly
|
|
|
|
#NoAudio
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# ASF compatible
|
|
|
|
|
|
|
|
<Stream test.asf>
|
|
|
|
Feed feed1.ffm
|
|
|
|
Format asf
|
|
|
|
VideoFrameRate 15
|
|
|
|
VideoSize 352x240
|
|
|
|
VideoBitRate 256
|
|
|
|
VideoBufferSize 40
|
|
|
|
VideoGopSize 30
|
|
|
|
AudioBitRate 64
|
|
|
|
StartSendOnKey
|
|
|
|
</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# MP3 audio
|
|
|
|
|
|
|
|
#<Stream test.mp3>
|
|
|
|
#Feed feed1.ffm
|
|
|
|
#Format mp2
|
|
|
|
#AudioCodec mp3
|
|
|
|
#AudioBitRate 64
|
|
|
|
#AudioChannels 1
|
|
|
|
#AudioSampleRate 44100
|
|
|
|
#NoVideo
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# Ogg Vorbis audio
|
|
|
|
|
|
|
|
#<Stream test.ogg>
|
|
|
|
#Feed feed1.ffm
|
|
|
|
#Title "Stream title"
|
|
|
|
#AudioBitRate 64
|
|
|
|
#AudioChannels 2
|
|
|
|
#AudioSampleRate 44100
|
|
|
|
#NoVideo
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# 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>
|
|
|
|
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# A stream coming from a file: you only need to set the input
|
|
|
|
# filename and optionally a new format. Supported conversions:
|
|
|
|
# AVI -> ASF
|
|
|
|
|
|
|
|
#<Stream file.rm>
|
|
|
|
#File "/usr/local/httpd/htdocs/tlive.rm"
|
|
|
|
#NoAudio
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
#<Stream file.asf>
|
|
|
|
#File "/usr/local/httpd/htdocs/test.asf"
|
|
|
|
#NoAudio
|
|
|
|
#Author "Me"
|
|
|
|
#Copyright "Super MegaCorp"
|
|
|
|
#Title "Test stream from disk"
|
|
|
|
#Comment "Test comment"
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# RTSP examples
|
|
|
|
#
|
|
|
|
# You can access this stream with the RTSP URL:
|
|
|
|
# rtsp://localhost:5454/test1-rtsp.mpg
|
|
|
|
#
|
|
|
|
# A non-standard RTSP redirector is also created. Its URL is:
|
|
|
|
# http://localhost:8090/test1-rtsp.rtsp
|
|
|
|
|
|
|
|
#<Stream test1-rtsp.mpg>
|
|
|
|
#Format rtp
|
|
|
|
#File "/usr/local/httpd/htdocs/test1.mpg"
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# 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>
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# SDP/multicast examples
|
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
#
|
|
|
|
# The 'NoLoop' option can be used to avoid looping when the stream is
|
|
|
|
# terminated.
|
|
|
|
|
|
|
|
#<Stream test1-sdp.mpg>
|
|
|
|
#Format rtp
|
|
|
|
#File "/usr/local/httpd/htdocs/test1.mpg"
|
|
|
|
#MulticastAddress 224.124.0.1
|
|
|
|
#MulticastPort 5000
|
|
|
|
#MulticastTTL 16
|
|
|
|
#NoLoop
|
|
|
|
#</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# Special streams
|
|
|
|
|
|
|
|
# Server status
|
|
|
|
|
|
|
|
<Stream stat.html>
|
|
|
|
Format status
|
|
|
|
|
|
|
|
# Only allow local people to get the status
|
|
|
|
ACL allow localhost
|
|
|
|
ACL allow 192.168.0.0 192.168.255.255
|
|
|
|
|
|
|
|
#FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico
|
|
|
|
</Stream>
|
|
|
|
|
|
|
|
|
|
|
|
# Redirect index.html to the appropriate site
|
|
|
|
|
|
|
|
<Redirect index.html>
|
|
|
|
URL http://www.libav.org/
|
|
|
|
</Redirect>
|
|
|
|
|
|
|
|
|