Flumotion - your streaming media server WHAT IT IS ---------- Flumotion is a streaming media server based on GStreamer and Twisted. This is the first public development series of Flumotion. It will probably still contain bugs, be difficult to install (since you need recent dependencies), and cause you some headaches. On the other hand, when it works and you are capturing your Firewire camera on one machine, encoding to Theora on a second (with an overlay, of course), encoding the audio to Vorbis on a third, muxing to Ogg on a fourth, and then streaming both audio and video from a fifth, audio only from a sixth, video only from a seventh, and capturing all three streams to disk from an eigth, you feel very good about yourself. And you also have too many computers. REQUIREMENTS ------------ You need: Gstreamer: you need GStreamer version 0.10.10 or higher. 0.10.11 or higher is strongly recommended. For 0.10.x: GStreamer: 0.10.10 or higher GStreamer plugins base 0.10.10 or higher GStreamer plugins good 0.10.1 or higher GStreamer python bindings 0.10.1 or higher PyGTK - 2.8.3 or higher Python - 2.4 or higher Twisted - 2.5.0 or higher Kiwi - 1.9.13 or higher PyCairo- 1.2.0 or higher And depending on what codecs you want to use: libvorbis 1.0.1 or higher libogg 1.1 or higher libtheora 1.0alpha3 or higher And if you want to build documentation: epydoc And if you want support for java applets: cortado ISSUES ------ Some issues have been brought to our attention. Please take note if you run into them: - locales with a comma as a decimal point trigger problems in the XML parsing. Run with LANG=C if you run into this - When encoding to Vorbis, prefer to use quality instead of absolute bitrate. For absolute bitrate, for each sample rate a limited range of bitrates is allowed. - You may see memory leaks if you use the soundcard or firewire source components, and you use PyGTK prior to 0.8.5, or gst-python prior to 0.10.3, so upgrading to these versions is strongly recommended. A FIRST TEST ------------ Once everything is built and installed, you can try this to start the server: terminal 1: flumotion-manager -v -T tcp conf/managers/default/planet.xml terminal 2: flumotion-worker -v -T tcp -u user -p test terminal 3: flumotion-admin Unselect 'Secure connection via SSL', press Next, then enter "user" and "test" in the dialog. Go through the wizard, chosing defaults. Double-click the http component after the wizard has completed terminal 4: gst-launch playbin2 uri=http://localhost:8800/ogg-audio-video/ Some systems may not have gst-launch, but only gst-launch-0.8 or gst-launch-0.10, in that case you can substitute either of those commands. Alternatively, you can use any theora-enabled network player to see the stream. terminal 5: for a in `seq 1 9`; do ( flumotion-tester http://localhost:8800/ogg-audio-video/ & ); done This will throw 9 processes with 100 clients each at the server. Hopefully, all of them will return success at the end of their run! We use 900 clients rather than a nice round number such as 1000 because, with a standard unix system, you'll usually be limited to slightly under 1000 clients by default due to limits on open file descriptors (each client requires a file descriptor). This limit is changable, but it's simpler to just test with slightly fewer clients. DOCUMENTATION ------------- A manual is being written. You can access the current work in progress at http://www.flumotion.net/doc/flumotion/manual/en/trunk/html/ Flumotion also comes with API documentation. You need epydoc to build them. HACKING ------- You can use jhbuild with the flu.modules and jhbuildrc file provided in misc/ This will set up everything except for Twisted for you from source. SECURITY -------- Read the security chapter in the aforementioned manual to get started. Flumotion uses SSL transport by default. For this you need a PEM certificate file. For security reasons you should generate this yourself when installing from source. The sample configuration file for the manager contains some htpasswd-style crypted credentials, for a user named "user" and a password "test". Use these only for testing; make sure you change them before putting Flumotion into production. The sample configuration also only allows localhost connections, to make sure you change the configuration before moving it into production. Remove the host entry from the sample planet.xml file to allow other hosts to connect. ABOVE AND BEYOND ---------------- You can subscribe to our development list. Information is at http://lists.fluendo.com/mailman/listinfo/flumotion-devel You can visit us on IRC: #fluendo on irc.freenode.org You can visit our trac installation for the Wiki, source browsing and ticket tracking: https://core.fluendo.com/flumotion/trac LICENSING --------- This version of the Flumotion Streaming Server is licensed under the the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation. See LICENSE.LGPL If the conditions of this licensing strategy are not clear to you, please contact Thomas Vander Stichele (thomas@fluendo.com). TESTING ------- For testing purposes of your streams, you can run some GStreamer pipelines to verify if things work as they should. - multipart/jpeg stream (video only): gst-launch -v gnomevfssrc location=http://localhost:8802 ! multipartdemux ! jpegdec ! xvimagesink