I am doing some research on video streaming for a project I'm working on. I'm trying to figure out what the BEST format to stream out our content would be. Can someone share, or point me to, a comparison of these different streaming protocols and the pros/cons of each.
Our target device can accept any of these formats, so that is why we have the ability to take a step back and consider the best option.
We have noticed RTMP starts up quicker, and RTSP is a bit slower to start. MMS is an old format that wouldn't work natively on iPhone and Android devices. And HLS is iOS specific but its quickly become more common.
Some comparison considerations I can think of:
- bandwidth requirements
- audio and video quality
- compatibility with multiple devices
- correction of audio/video alignment
- quick connection and stream start-up
Thanks for any help.
+ Reply to Thread
Results 1 to 4 of 4
Quick question before I start - is this for Live or On-Demand (i.e. pre-recorded) content?
- Bandwidth requirements between the procotols are not much different - there are slight variances in the overhead above the rate you are encoding your content at - but really not a lot of difference.
- The protocols have nothing to do with "quality" - that is all down to the rate that you broadcast/encode your content at.
- Compatibility is a toughy. RTMP only will allow you to deliver content to Flash Players, RTSP - to VLC/Quicktime player & Android, Blackberry, MMS is pretty much a deprecated protocol nowdays - it was part of Windows Media Services (9 series) - and it's not much used nowadays. Really - you want to look at some software that will output over multiple protocols - we use Wowza Media Server to power the multi-platform delivery setup we run on our CDN. It can provide, RTMP, RTSP, HLS and HTTP Flash streams.
- Correction of audio/video alignment? I am not sure what you are asking here - but generally, the sync between the audio and video portions of your streams are handled by the encoder.
- Quick connection and start-up - for desktop clients RTMP is the way to go, HLS feeds require 30seconds of chunked playlists to start - so HLS streams are generally slightly behind the other protocols.
If you'd like further advice - or you want to set up a test account with us, please send me a PM.
We are also trying to pick a technology to use, our application is streaming live IP cameras both for recording and live viewing purposes.
Right now I'm playing around with the Live555 ProxyServer which takes an RTSP stream (from an IP camera) and allows you to open it multiple times so other processes can either transcode, analyse or copy the stream all at the same time. My experience so far is there is a significant delay between when the stream is opened and before it starts playing (even with a very low keyint) and even Axis cameras (which are arguably the leaders in stability and following standards) have issues with repeatedly opening and closing RTSP streams (RTSP freezes and requires camera reboot).
HLS seems to be what Apple are pushing right now, in fact you can't even install the DarwinStreamingServer (RTP/RTSP) on the Server version of the Mac anymore! - You have to explicitly remove the Mac version checking to get it to install. I don't have much experience with HLS but it looks promising and this is a good place to start: https://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/s...hitecture.html
What did you end up choosing in your project on why? - Care to share your experiences and maybe a quick comparison of the technologies out there?
Also, out of interest what are the differences, advantages/disadvantages of RTSP vs RTMP? - I'd rather not be tied in to the Flash platform so that is one disadvantage against RTMP, also no IP cameras seem to support RTMP but almost all support RTSP, often exclusively.
If one is simply trying to view pre-recorded video hosted on a free public video site such as filmon.com, which streaming format is best, RTMP or HLS? Thank you.