Standard Streaming Server
C XSLT Other Shell Other
Switch branches/tags
Nothing to show
Latest commit d302a1c Aug 1, 2013 @lu-zero lu-zero avf: update to libav9
Failed to load latest commit information.
avroot Avoid recursive make calls for docs, etc and avroot that build nothing. Oct 24, 2008
contrib make the dumb script slightly less dumber Mar 17, 2010
docs Remove old, obsolete man page. Feb 11, 2011
etc Fix default standard configuration Aug 21, 2011
m4 build: improve safety of packed attribute, and test for it. May 20, 2011
src avf: update to libav9 Aug 1, 2013
tests Reorganize source code, move/rename files and merge bufferqueue.{h,c}… May 17, 2011
.gitignore Build and install man pages. Feb 9, 2011
.mailmap Update my name in .mailmap. Feb 12, 2011
AUTHORS Updating docs Jun 12, 2009
COPYING License and uri references changes Feb 17, 2009 Make sure to enable live streaming and stats (json) for doxygen build. Jun 17, 2010
INSTALL Update to libav-0.7 Aug 18, 2011 build: remove use of deprecated INCLUDES variable. Jan 3, 2013
NEWS point the new configuration system Dec 20, 2010
README Introduce VP8 Aug 5, 2010
RELEASE Updated Jun 3, 2009
TODO Updating docs Jun 12, 2009 build: explicitly add libavcodec deps Sep 19, 2012
feng.1.xml Merge content of the old feng(1) man page into the new, updated one. Feb 11, 2011
feng.conf.5.xml media: implement a new split handling of virtual vs stored resources. May 17, 2011
feng.sd2.5.xml Start dynamic payloads from 96, not 97; update feng.sd2 man page. Feb 19, 2011
git-version-gen Make versions more consistent Sep 25, 2009
ragel.make Make ragel generation obey silent-rules Jun 10, 2009


Feng - standard compliant streaming server

+ What is feng?

Feng is a multimedia streaming server compliant with the IETF's standards for real-time streaming of multimedia content over Internet. Feng implements RTSP ¿ Real-Time Streaming Protocol (rfc2326) and RTP/RTCP ¿ Real-Time Transport Protocol/RTP Control Protocol (rfc3550) supporting the RTP Profile for Audio and Video Conferences with Minimal Control (rfc3551).

Feng supports the following encoding standards:

    * Audio
          o MPEG Audio (MPEG-1/2 Layer I/II/III) (rfc2250)
          o Vorbis (draft)
          o AAC (MPEG-4 Part 3) (rfc3640)

    * Video
          o MPEG Video (MPEG-1/2) (rfc2250)
          o MPEG 4 Visual (MPEG-4 Part 2) (rfc3016)
          o H.264 (MPEG-4 Part 10) (rfc3984)
          o H.263 / H.263+ (rfc4629)
          o VP8 (draft)
          o Theora (draft)

The main characteristics of Feng are the container support, the ability to handle seeking, also used internally for the compositor metademuxer, and the modular structure focused on easing the extension of codec and protocol support.

+ Usage

The simplest way to test feng is just adding a resource by putting it in the
feng root (usually /var/feng/avroot or /srv/feng/avroot/, you can change it in
the configuration file) and running feng from command line.
Feng by default will listen for incoming rtsp connection on the
port 554, serving the content matching the requested resources if available.

$ $EDITOR /etc/feng.conf

$ cp /var/feng/avroot

$ feng &

$ mplayer rtsp://localhost/

+ Advanced usage

++ Daemon mode

For a full deployment it's advised to use start-stop-daemon as shown below or
prepare initscripts for your specific distribution.

# starting the daemon, messages to the system logging facility
$ start-stop-daemon --start --quiet --background --make-pidfile \
                    --pidfile /var/run/ \
                    --exec /usr/bin/feng -- -s

# stopping the daemon
$ start-stop-daemon --stop -p /var/run/

++ Metademuxer
Feng container layer provides a powerful infrastructure to enable customized
stream management. Currently there are two examples provided.

+++ ds - compositor metademuxer
The compositor metademuxer handles lists (see the examples provided in the avroot directory) of coherent resources (same encoding, same resolution, same streams number presents) allowing the creation of resources made out of the files/excerpts aggregation.

+++ live/sd
The sd metademuxer is present as backward compatibility with fenice, it has the very same limitation of fenice's streaming support (lack of seek, requires many informations) and should not be used if possible.

Please refer to the man page for further information.

+ Bug reports

Please use our bug tracker accessible at using feng as
the Topic.