I’ve been rummaging the web looking for inexpensive solutions to live streaming, and came up with this feature comparison to help me decide.
The solutions are combinations of server software, client software and streaming formats. They all satisfy my basic criteria, which are:
- The video capturing equipment delivers an H.264 encoded media stream to the streaming server.
- The streaming client runs in a web browser.
- The solution supports both live streaming and video-on-demand.
H.264 is a recent MPEG-4 compliant standard for video compression, providing good video quality at substantially lower bit rates than eg. MPEG-2 (as used in DVD’s). Quicktime Broadcaster (see previous post) produces H.264 streams, and I’m happy with that.
Flex is a framework for creating rich Internet applications based on Flash, running in Flash Player 9 (which, according to Adobe, has 90,3% worldwide web browser coverage). With Flex you can, like you do with AJAX , build smooth web sites that feel like desktop applications. I like Flex. Flex looks nice:-) Flash Player 9 supports fullscreen video and H.264. Yes, it costs money if you want the Flex IDE software, but you can actually do with the free SDK.
Darwin is Apples free, open source version of the Quicktime Streaming Server, which supports Quicktime, MPEG-4 and 3GP streaming.
VLC is a free cross-platform media player that can also be used as a streaming server. It has to many features for me to comprehend, and I hope I’m not wrong about it’s capabilities to stream Flash.
The comparison
| Server: Client: Format: |
FMS1 Flex H.264 |
Darwin Flex/QT2 H.264 |
VLC Flex FLV |
| Server | |||
| Supports progressive download3 | Yes | Yes | Yes |
| Supports live streaming | Yes | Yes | Yes |
| Is cross-platform | Yes | Yes | Yes |
| Supports live transcoding4 | No | No | Yes |
| Supports mobile streaming5 | Yes | Yes | Yes |
| Client | |||
| Progressive download is cross-platform | Yes | Yes | Yes |
| Streaming is cross-platform | Yes | Kinda6 | Yes |
| Supports Rich Internet Applications | Yes | Kinda7 | Yes |
| Supports fullscreen video | Yes | Kinda8 | Yes |
| Format | |||
| Provides high quality at low bitrates | Yes | Yes | No |
| Is free for non-commercial use | Yes | Yes |
Yes |
| Is free for commercial use | Yes9 | Yes10 | Yes |
- Flash Media Server is very expensive, and I include it here merely as a comparison. [↩]
- Adobe has locked H.264 streaming to their proprietary RTMP protocol, allowing only their own Flash Media Server. This is a hybrid client side solution using Flex for VoD and a Quicktime browser plugin for live streaming. [↩]
- Progressive download means playback starts while the file is still loading. [↩]
- Transcoding from H.264 to Flash in this case. [↩]
- Mobile streaming with 3GP. [↩]
- Quicktime RTSP seems buggy on Linux. [↩]
- Flex supports true RIA, QT plugin doesn’t. [↩]
- Flex supports true RIA, QT plugin doesn’t. [↩]
- H.264 is free when broadcasting from Norway, at least. [↩]
- H.264 is free when broadcasting from Norway, at least. [↩]
I couldn’t understand some parts of this article ng low-budget streaming solutions at :::musikkteknologen, but I guess I just need to check some more resources regarding this, because it sounds interesting.
@Daniel
There’s plenty of other possible solution to streaming than the three I’ve covered here. I’m no expert, so I’m a bit confused myself
A plain Apache web server will do the job if you just want to do (progressive) downloads.
Live streaming is more complicated, and I have tried to cover the whole path from capturing the video with a camera, to viewing the video in a web page.
Have a look at http://forum.videolan.org/ . You’ll find a lot of useful info there.
Great article and comparison, and particularly the Flash server and client possibility are new to me.
There are a few points/questions I would like to make, for discussion purpose.
/1/ VLC is an extremely capable streaming client, and good streaming server too. I have
However notice two problems which is a pity (I used the latest version for Windows)
/a/ When VLC is used both as server and client for on-demand streaming,
Repositioning (drag the progress bar) will make both crash.
/b/ Its ActiveX control can have only one instance on a Window machine. Having
More instances will make its behaving crazily, and become instable.
If these two stability problems could be corrected in the next version, then VLS will be really something GRET – although it’s already quite nice.
/2/ Are you sure Darwin Streaming server supports H263 when streaming on-demand? In its document nothing about it has mentioned, and I suppose it doesn’t have it.
With live streaming, it can reflect basically all video formats form one a source to one or multiple unicast or a multicast destinations, no mater its H264 or anything else, am I right?
/3/ I think you may also add QuickTime as a free streaming client in your article. It’s free to download, and have excellent supports to RTSP/RCP, and H264 codec too. As client it is comparable to VLC, although less capable. It’s support to Apple’s own QickTime codec is, quite naturally, best among all clients.
The situation with RealNetwork’s steaming client is similar, although I think it is both a bit ugly and unpleasant to use.
Tongle
Stockholm
@Tongle
I apologize for the late reply. 24 hours a day aren’t always enough.
Too bad about the VLC instability issues on Windows. Hopefully the developers will sort that out for you.
If I decide to use VLC myself, it will probably be for transcoding the live video stream from a higher (eg. 640×480) to a lower resolution (eg. 320×240), as an intermediate stage between the capturing software and the streaming server. Also I prefer Linux to Windows:-)
I don’t know if DSS supports streaming H.263. It’s an older codec used for Flash streaming, right? DSS supports the newer H.264, that I now for sure.
You mention Quicktime as a possible streaming client. I agree, and one of the solutions I compared makes use of the QT browser plugin for H.264 streaming over RTSP. I want the video player to be integrated into the web page though, so any standalone player is out of the question.
Hello.
I’m curious about the solution where you use Darwin Streaming Server and a Flex client for video on demand. How is that possible? I’m trying to do something similar, but I was almost under the impression that it was impossible. I’d much appreciate some details about this solution.
- Adam
@Adam
I must admit I’m a bit unsure about on-demand streaming from DSS to Flex. I found it easier to work with plain progressive download from a standard Apache web server, using hinted MP4 movies.
As for live streaming, Adobe has recently released Flash Media Streaming Server 3, a cheaper version of their media server for just under US$1000. It’s still not free as DSS or Red5, but definetly something I’m willing to consider.
Cheers!
Please note that the flash player does not support 3. party streaming servers. The flash player only support streaming over RTMP which is only supported in FMS. There is away to get support for progressive download, but that’s not really streaming.
@Johan Sydseter
Thanks for pointing that out! I knew that Adobe has put a vendor lock on H.264 streaming to flash player, but not that it effects all formats like you say.
Progressive download works without problems for me, no special tricks required.
Cheers!
Thanks for that, very useful to me. I am gonna develop an application to watch video from a server (FMS, Darwin ?) on WM5/6. It seems to me that it is possible to develop with java thru J2ME if using Darwin, while this is not possible using flex at client side. Do you have any feedback on this? Definitely, I should learn another language and besides I am not quite sure there’s a development environment for WM based platform.
Agree on VLC, lot of problems when fwd/rew video
Attilio - Italy
@attilio
Glad you found this post and the comments useful. I don’t know anything noteworthy about implementing streaming client in J2ME, unfortunately.
Cheers,
Vegard
Hi there,
Just thought I would jump into this discussion and clarify something: Red5 can be used for streaming flash video as it implements the RTMP protocol (reverse engineered); so you don’t have to pay through the nose to stream to flash clients. I suspect that the emergence of Red5 was a big factor in Adobe bringing it’s insane prices down to earth.
Darwin is a no-go for flash.
@SHoe
I’ve read that the developers behind Red5 are working on H.264 support to be included in the next release, which is great news. I’m sure Red5 and Wowza Media Server are decent alternatives to Adobe Streaming Server.
No Flash for Darwin, but a new version has been released: http://dss.macosforge.org/
Subscribe to the DSS user mailing list if you need more information on supported platforms, streaming clients etc. A lot of skilled media specialists are on that list.
http://lists.apple.com/mailman/listinfo/streaming-server-users
Cheers,
Vegard
I also believe that RED5 might make a difference in being a cheap alternative to FMS, but on the other hand. There is a lot of things happening in the fiber community in Norway at the moment and it is happening all over Europa as well. Telenor will next year start selling fiber to the home to the biggest cities. That means tha you in a few years don’t need to tunnel http video streams anymore or make use of unicast. It will open up the use for Multicast and IPv6 and rtsp protocolling from start to finish. I guess we will see the same shift from ADSL to fiber as we saw in the end of the 90-ties from ISDN to ADSL. More on this here:
http://www.telenor.no/privat/internett/tipsognyheter/fiber.jsp
http://www.alcatel-lucent.com/wps/portal/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLd4×3tXDUL8h2VAQAURh_Yw!!?LMSG_CABINET=Docs_and_Resource_Ctr&LMSG_CONTENT_FILE=News_Releases_2007/News_Article_000512
Further more. Even though most of the connection will be sold as a QoS to the cable companies as part of their HD-products there will be more then enough available for the rest of us. Multicast also means that the RTMPT protocol will die of together with other similar solutions in the pre IPv6 era. So it is finally happening guys. What we all have been waiting for.
On another note. I just finished a project making a cheap streaming solution for The Norwegian Wind Ensemble. The report is in Norwegian, but the conclusion is that we found a very inexpensive way of doing Internet broadcasting. You can read the rapport here:
http://sydseter.blogspot.com/