Release notes for
Hackers of Flumotion giddily announce a new release of the development
0.5 branch of the Flumotion Streaming Server.
Flumotion is a streaming media server created with the backing of
Fluendo. It features intuitive graphical administration tools, making
the task of setting up and manipulating audio and video streams easy for
even novice system administrators. Flumotion is released under the GPL.
6500 lines of changelog. 471 files changed. 28808 lines of source code
changed. 88 bugs fixed and enhancement requests closed. This is quite a
The major focus of this development cycle has been on improving quality,
by simplifying the system and removing entire classes of bugs. Of
course, ongoing feature development continued apace, adding eight new
components, enriching the graphical monitoring and control interface,
and rounding out the capabilities of our existing components.
Below is an abridged list of user-visible features. A full list of all
closed tickets can be found at the end of this announcement. Existing
Flumotion users are strongly encouraged to upgrade and report on your
experiences. If you haven't yet tried Flumotion, now is a great time to
Features of this release
- Much more robust and efficient protocol between manager and
component. It is now impossible to get a component in a "stuck"
state. The manager's code was dramatically simplified,
decreasing manager CPU usage when many components decide to
reconnect at once.
- A feed may be provided by more than one component. If one
component providing a feed goes away, and another component is
available for that feed, the manager will reconnect downstream
components, providing redundancy and failover.
- New components! Use Flumotion as a source to Icecast streamers
with the shout2-consumer component, thanks to Gergely Nagy. Make
picture-in-picture streams with composite-combiner. Dynamically
switch between different feeds with the various switch
components. The switch may occur manually, or automatically
based on data flow or on a schedule expressed in an ical file.
Use GNonLin to stream a dynamically-reschedulable sequence of
files with playlist-producer. Broadcast your screen with
screencast-producer, data from an IP camera with rtsp-producer,
or live MPEG captures with ivtv-producer. Finally you can limit
access to a manager or to a stream by IP with the ip-bouncer.
Good times! See the output of flumotion-inspect for more
- Improved components! You can now capture the raw DV from a
firewire-producer. The webcam component supports V4L2, and HTTP
streamers finally implement bandwidth limiting. You can now
tweak the theora encoding parameters (there's even an interface
for it in the wizard), and the on-demand HTTP streamer better
supports Flash video seeking. Finally, we now have per-channel
volume meters for audio sources in the GTK+ admin.
- Faster component startup. Components no longer parse the
registry, which greatly improves component startup time. In
addition, the manager-component protocol revisions reduce the
number of remote calls needed for a component to go happy.
- A comprehensive reduction of Flumotion's memory footprint. In a
still-ongoing effort, we have reduced memory usage by 20 percent
or more in all processes. In addition, via revising how we
handle authentication credentials, we have plugged all known
- The amount of steady-state network chitchat between components
and admins was reduced. Admins will only receive CPU usage
updates from components if they subscribe to updates.
- Detailed statistics and diagnostics of the state of data flow
in a component can now be viewed from the GTK+ administration
- Better informational messages for debugging misconfigured
components. These messages show up in the GTK+ admin. Also, the
manager's "export configuration" feature works much more
- HAL integration for allowing Flumotion access to media devices.
No more chmod a+rw /dev/raw1394!
- Better debugging and programmatic interfaces to the Flumotion
system, with the addition of manhole support (SSH into your
manager!), improvements to flumotion-command, Nagios
integration, a tool for logging UIState keys to an RRD file, and
more. Admit it, the part about "and more" piqued your curiosity.
- The GTK+ admin no longer shows components' CPU usage. This useful
capability will return when bug #704 is fixed.
- Managers from 0.5.1 will not interoperate with workers from
0.4.x, and vice versa. We have had to make incompatible changes
in order to remove some systematic bugs. However, 0.5.1 admin
clients will work with older managers.
- Likewise, those users that maintain components and software
outside the Flumotion source tree will probably need to update
their code to work with 0.5.1. Drop by the IRC channel and we'll
help you port. It's worth it!
Bugs fixed in this release
: [wizard] Smoke settings screen should probably have better name
: Don't print in manager when logging in with bad credentials
: Wizard click on left summary does not update back/forward buttons
: [patch] Theora settings window should have keyframe option
: ability to specify default registry location
: Being able to serve a looping file when stream not connected
: Kill dead code in admin heaven
: Firewire audio broken
: Fixing device access in a nice way
: worker without user/pass can't connect to manager
: a worker being shut down triggers a notifyOnDisconnect on remote reference + wrong warning
: Need to rethink an important flaw in our xml config file format
: flumotion service script should allow system-style running completely from homedir
: Maximum clients is incorrect or under-explained.
: make flumotion-manager/-worker installable without X
: shout2 (icecast2) consumer
: --help prints gst's help, while -h gives flumotion's help
: [gtk admin] 'reload code' on admin components fails
: UI does not allow you to make a new connection
: flumotion startup message with no SSL
: cache has race conditions
: http streamer needs to check for twisted-web
: defer_generator_method screws with the docs
: Firewire worker traceback
: porter shutdown throws exceptions
: admin should allow deleting only one component
: segfault in admin when switching between component UI's
: Components need a .medium set to be able to ask for reconnection
: Exceptions raised inside StateCache update methods don't print tracebacks
: tracebacks in admin when disconnected from manager
: another admin traceback
: Wizard should limit video size to known max size
: some UI suggestions on Plumbing
: Firewire-Cam:Video and Producer-Soundcard won't work together
: flumotion service script hangs if manager can't write the pid file
: http-server doesn't work with mount-point set to /
: testsuite uses deprecated methods
: component GTK UI can not hide widgets during haveWidgetTree
: loading a config with bad properties doesn't give a good error
: feeder tab shows disconnected when actually connected
: Make common.log less specific to Flumotion
: remove raise common.errors.SystemError from common.log.errorObject
: GStreamer errors in feedcomponents should be handled more nicely
: [gtk admin] UI bug showing volume widget in completely the wrong place
: cleanup of properties in component protocol
: fpbclientfactory debug should tell us what ip it failed to connect to
: instances of print in flumotion can cause 100% CPU
: no useful feedback if you daemonize a manager with an invalid config
: flumotion-launch when reconnecting eaters causes exceptions
: support FLV start= GET parameters in httpfile
: refactor feedcomponent.py to use the feed medium's requestFeed
: refactor adminmodel to offer a deferred connection interface
: component UI state keys need to be graphable
: add file monitoring to ical handling code such that component updates it's schedule from changes to file
: Firewire producer should allow saving of the raw stream
: bug in parsing eater nodes when feed nodes not specified
: manager's registry code should be more robust wrt. to registry changes
: extern.log color output
: v4l2 support should be added to the current webcam and tvcard producer
: flumotion admin UI does not report parsing errors in the XML configuration file
: Base Component Classes are insufficient
: wizard outputs new config format with some defects
: traceback during stopping of http-server prevents component from being stopped
: fxml calls str() on unicode objects incorrectly
: The flumotion multiadmin do not call the model_addPlanet on reconnection
: registry will not notice new .xml files at runtime in directories that had no .xml files at startup
: Worker shouldn't import gst, and checks should be out-of-process
: choose appropriate reactor for manager, worker, tests
: The component properties parser should handle native types uniformly.
: manager never removes keycard from manager bouncer
: components need to name their eaters according to their eater names, not according to the names of their initial feeders
: The Manager do not catch ComponentSetupHandledError
: warning about upgrading component config is useless
: refactor bouncers so as not to leak keycards
: flumotion/manager/depgrah.py:mapFeedersToEaters is wider than 80 chars and has too many indentation levels to avoid being dodgy
: soundcard continuously tracebacks
: any kind of pb.Error subclass turns up as an InsecureJelly
: Bouncers need some redesign
: segfault stopping streamer component
: disker cannot create unicode filenames
: reservePorts doesn't work when feederport is set to random
: Why does manager.ComponentAvatar have a method to allow jobs to request ports on any worker?
: [logging] optional arguments in outputToFiles()
: Problem with authenticacition in 'videotest with http and disker' test
: Problem with authenticacition in 'videotest-bouncer' test
: Stopping a streamer can't complete logging properly
: Stopping a lost component behaves poorly
: in some circumstances, component mood is hungry, but flow is fine
: wizard error when configuring soundcard
You can find source releases of flumotion in the
flumotion download directory.
More details can be found on the project's website,
Support and Issues
We use an issue tracker for
bug reports and feature requests.
browse the flumotion git repository from our tracker.
The development version can be obtained from our git repository:
git clone git://code.flumotion.com/flumotion.git
Contributors to this release
- Andy Wingo
- Arek Korbik
- Christian Schaller
- Gergely Nagy
- Johan Dahlin
- Michael Smith
- Pedro Gracia
- Sebastien Merle
- Thomas Vander Stichele
- Zaheer Abbas Merali
- daniel.hnn at gmail