Assuming you already installed feng using the live sources or the gentoo packages you should have at least the following files installed:
/etc/feng.conf
/usr/share/man/man1/feng.1.bz2
/usr/bin/feng
NOTE: the initscripts are provided ONLY by the Gentoo ebuild since they are Gentoo specific, feng can be launched as service using start-stop-daemon.
As you can see feng installation is quite compact, you just have the main executable, the manpage and a main configuration file.
## lighttpd like configuration
var.basedir = "/var/feng"
var.logdir = "/var/log/feng"
var.statedir = "/var/lib/feng"
# server.bind = "localhost"
$SERVER["socket"] == "localhost:5554" {
sctp.protocol = "enable"
sctp.max_streams = 16
}
server.port = 554
server.username = "feng"
server.groupname = "feng"
server.max-connections = 100
server.document-root = var.basedir + "/avroot"
server.errorlog = var.logdir + "/error.log"
The configuration files contains the informations needed to have the server started:
Additional entries are available for optional features
the quickest way to start feng is the following
feng -v
This way feng will try to read the default configuration file and bind the ports accordingly. The program outputs directly on the console in order to facilitate debug.
Feng can parse streams contained in MOV, NUT, avi and the other containers libavformat can understand. In order to provide a content is enough to copy (or link) the file container in the root directory pointed by the config file. Any request for a file will make feng look for it, parse it and stream it.
Additional features like stream composition and stream aggregation are available using the .sd and the .ds configuration files. Those features aren't yet stable and the syntax is pending a major overhaul.
Streaming vorbis and theora is supported and compatibility with gstreamer had been verified, sadly it is the only available alternate implementation beside our own.
Multicast support for live feeds is currently in development as a standard built in. Again this feature requires some manual configuration using the present sd syntax that is pending a complete overhaul.
Currently using multicasts requires configuring a .sd metademuxer To enable multicast it is just needed to prepend “multicast ip” option to the metademuxer. Also it is needed an “pilot client” which must start the stream (A simple dump_stream from libNemesi is enough) and which will be the reference for the begin and end of the transmission. When the “pilot client” will start the multicast will be enabled and when the “pilot client” terminates also the multicast will be terminated.
A simple example for the metademuxer configuration is the following:
multicast 224.124.0.1
stream
file_name audio2.mp3
priority 1
payload_type 14
clock_rate 90000
encoding_name MPA
port 5502
stream_end
This will enable multicast stream on every system on the same net ( For more informations about multicast reserved ips look at RFC3171 and the IANA )