Flussonic Media Server Review
Having used Flussonic for well over a year now here is my review of it as a Media Server in a Business Critical or High Availability environment.
Introduction to Flussonic Media Server
I am a bit unsure of accurate details, but the following is my understanding of the history to Flussonic Media Server. Flussonic is a renamed product based largely on its earlier product name of Erlyvideo which from other projects I worked on, I became at least aware of its existance over 5 years ago. Erlyvideo seemed to be a russian product (at least a lot of its usage, forums and posts are by a mainly russian audience). I may be totally wrong but have a feeling Erlyvideo was a free product, so maybe the rebranding of it was to enable it to be sold to customers, but as I say I am not certain of that by any means so read with a large pinch of salt!
In this Flussonic media server review I will focus on what I consider key elements of any media streaming environment including features, stability, maintenance, implementation, as well as other things you should consider before using Flussonic.
Features of Flussonic Media Server
Firstly I feel it is important to highlight why anyone looking for a media server would want to take a look at Flussonic. Im going to cheat a bit here and paste some of the sales pitch from their website, and then make some personal comments after! Im only going to pick out some of the features of Flussonic I have seen in action, you can read the full (and extensive) list of features here http://flussonic.com/flussonic/features
Distribution using RTMP, RTSP, HLS, HDS, HTTP MPEG-TS and partially DASH
Up to 20 000 of simultaneous views from a single instance.
Authorization and registration of client sessions, even when using HLS-protocol
Distribution multibitrate multilingual stream with the possibility of switching the quality “on the fly”
TV channels from satellite
IP cameras support
HDMI/SDI capture cards
Republishing between servers
H264, H265, MPEG-2 support
Server side playlists
Shoutcast radio support
Failover sources for a stream
H264, H265, MPEG-2 Video, MPEG-2 Audio, AAC, AC3, MP3, G711a/u
Streaming from mp4 and flv files
All major platforms support – Android, iOS, Flash, STB, Smart TV
RTMP, HLS, HDS, DASH, RTSP delivery
Multibitrate and multilanguage mp4 streaming
Support for HTTP storages like http server, Amazon S3, Swift
SSD media caching
Load limiting system for disk drives
From a Live Streaming point of view I would say its biggest feature of the above is its core built in functionality to output in quite a large variety of output formats (RTMP, RTSP, HLS, HDS, HTTP MPEG-TS and partially DASH). This makes it one of the most complete set of output formats of pretty much any media server I have seen previously.
From a VOD point of view the same applies as I said above that the range of output formats is one of the largest I have seen in any media server making it a real plus.
Operations Guide to Flussonic Media Server
One of Flussonics great strengths is not only its ability to output in a wide range of formats, but also its ability to read in data in a variety of different formats from a variety of different sources.
If you have an IP Camera that plays its output over an RTSP stream, or if you receive IPTV from your ISP through multicast udp streams, or you are migrating from Adobe Flash Media Server and getting your content through a video card and streaming it currently using Flash Media Live Encoder, or even if you have found someone elses open RTMP stream you want to pull to your server, then flussonic can read that data and stream it out in its array of formats.
DVR capabilities of flussonic are pretty straightforward to configure for each stream. You basically set the amount of days of DVR content you require for the channel and flussonic will store it in its proprietary format in the directory structure you configure in its config file. Flussonic will take care of tidying of old data periodically.
Backup streams are a pretty cool feature on Flussonic Media Server. You have the ability to set multiple inputs to a stream, this enables you as an example to have a primary input from satellite input, a second input from a rtmp stream you found somewhere on the net, and a 3rd input which could be a backup stream with a test card which will be used when the other 2 inputs are not available.
Transcoding data (altering stream quality) to of your inputs to meet your output requirements can be done within flussonic with its built in transcoder. This can be quite a cpu intensive process if you are performing it on a large number of streams particularly on a lower capacity server, but keep reading and will cover how you can spread your load over multiple servers. Anyway yes transcoding from within flussonic is a nice feature, and can even be used to transcode multiple quality outputs from a single input stream. However this is not a new feature to flussonic, but it does still (after easily over a year) have some bugs which have not been resolved (keep reading for more of flussonics problems below)
As I said above it is possible to seperate parts of flussonic onto multiple servers to suit your network and server infrastructure. If you come from a Flash Media Server background then you will probably be aware of the Origin – Edge concept to seperate your input streams (origin server), and your end user access (edge server). Flussonic has this functionality including Edge server caching capabilities which not only reduce network traffic between your Edge and Origin servers, but speed up content access times for your end users who can read cached data instead of having to grab it from the Origin.
Flussonic Media Server – The Pros and Cons..
So far in this review Ive focussed on flussonics capabilities and features. It all sounds very positive I think, HOWEVER these next sections will bring you back down to earth with quite a bang….
First I will summarise the Pros –
1) Variety of ‘ingest’ methods for input streams
2) Large variety of output formats
3) Scalability and modular functionality make scaling flussonic for large or small environments a relatively simple process
There are more pros which ive hinted at already, but now is time to highlight some of the bad parts of Flussonic Media Server….
1) Pricing…. always a primary consideration for any company. When a site is VERY KEEN to offer you a FREE TRIAL, but you have to contact them to find out a purchase price, you are instantly turned OFF even looking! I would 99.9% of the time agree with you and look around for something else.
2) Support and ability for you to resolve issues yourself. As I said at the start of this review Flussonic is a rebranded (or renamed) product based on the russian product Erlyvideo. This means that a) most of the documentation was written in Russian first, and then translated into English, b) searching related forums for solutions to any questions you may have will also involve a hefty amount of Google Translate to find you any answers.
3) Reliability is always a major concern with a streaming environment, and unfortunately Flussonic fails to deliver. Please read the next section of this review where I will highlight some of the biggest reliability issues I have seen since using Flussonic Media Server
Reliability – Achilles Heel of Flussonic
The modular approach to Flussonic is one of its best features, but also its greatest downfall.
In order to get the best results from your Flussonic installations requires you to perform a HUGE amount of monitoring. That in itself is not neccesarily a bad thing, and as a Systems Administrator I would always advise strongly that monitoring of your services is core to ensuring high availability. What lets Flussonic down is a lack of a central monitoring methodology when you have built any multi-server flussonic environment. The Flussonic API is a start to help you program your own monitoring system, but (as is often the case) if the API or server has some problems, then your monitoring could potentially fall apart along with Flussonic as well.
Change Control seems very flakey within Flussonics technical support and development teams. With every new release (normally monthly approximately) they have a Google Group (https://groups.google.com/forum/#!forum/flussonic) where they publish the bug fixes and developments in each release. On the face of it that all looks pretty cool, however what they almost NEVER seem to do is any thorough TESTING of their code to test their solutions actually resolve the issues it is intended to fix, AND MORE IMPORTANTLY, from a non-disturbance point of view, to make sure previously working elements of Flussonic are still working !!
What that last paragraph should therefore confirm to you is that YOU should be very prepared to perform YOUR OWN TESTING PLAN once you upgrade or change ANYTHING within Flussonic Media Server. As I previously worked in a UK government systems administration role this was always a standard procedure, but in smaller companies like the one I work for here in Georgia attention to detail, change control, and implementation management is largely overlooked, which has caused us multiple instances where upgrades to Flussonic have caused us many more problems than solutions.
Building your custom testing plan for Flussonic
As I have already said Flussonic Media Server has a large suite of options and possibilities for any media streaming environment. However that means that with every option you decide to use you should have a suitable and thorough testing plan prepared. I have written my own set of both monitoring and testing scripts which mean I can not only keep on top of implementing new developments to my Flussonic environment, but more importantly be notified of issues on my current production environment.
Key elements you should consider monitoring are –
– Each used output format stream (HLS, RTMP, HDS etc). Flussonic API has a variety of tools you can use to test your streams, but it is only monitoring from a SERVER point of view. What is more important, is monitoring and testing your streams from a CUSTOMER point of view ! Are your end users able to view your streams using whatever devices you have enabled? You can read other articles on Bashworkz for tools such as ffmpeg and AdobeHDS, or get in touch on the contact page if you need some help or advice to implement a customised monitoring system which works for you!
– Checking your stream has both a video and an audio output stream. Nothing is worse for a viewer when they tune into your stream and either get a picture with no sound, or get sound but there is no picture!
– Linked to the previous point, you should be monitoring that a) your audio stream is working AND that it has some VOLUME (there are some instances for example a snooker game where sound is almost silent for periods of time that you should cater for), and b) that the video stream is MOVING (once again keep in mind for example if you are watching a live feed from the International Space Station the pic might not change very much)
– Im going to mention Video / Audio synchronisation although it is one of the most complex areas for pro-active monitoring to be performed. To add to the complication is any environment or stream which includes audio dubbing which can inherently be out of sync marginally. Its just something to be aware of, and you should put in place whatever (even manual) checks to ensure your streams are working as you expect.
– DVR functionality (if enabled) should always be checked following any upgrade of Flussonic. Whether you have it configured to work through a customer facing Edge server, if you have caching enabled, or if you have configured to view using a core Origin server, all variations should be checked for non disturbance. This sort of testing can also be automated using ffmpeg or AdobeHDS using elements of Flussonic API to view a previous timestamp of a stream with a timestamped url to your stream.
– Automated or manual checking of Flussonic log files is another element that should not be forgotten about in your testing plans. The logging within Flussonic Media Server is actually pretty good, so should be reviewed in either a script automated process, or at least manually following any changes or flussonic upgrades, as well as on a regular running day to day basis. Being familiar with the logs can be crucial in identifying ‘out of the ordinary’ issues, but be aware that on occasions Flussonic do change the formats or information shown within their logs between versions, once again highlighting the need for controlled testing prior to implementing a new release into a production environment.
Review of Flussonic Media Server Overall Summary
To summarise this Flussonic Media Server review I would say the following –
1) Big positive is Flussonic large variety of input and output methods and protocols
2) Impressive set of scalability options which makes it suitable for both large and small installations
3) However be prepared that stability can be very flakey especially in a multi server environment, therefore you should implement a thorough set of monitoring processes to ensure maximum availability
4) Upgrades should be treated with the same level of change control as any new system project implementation. It would be (in my opinion) a reckless decision to upgrade to the latest version, without performing a LOT of non disturbance testing yourself prior to implementation into your Production environment !!