I am trying to understand conceptually the best way to deliver real streaming audio and video content. I would want it to be consumed with a web browser, utilizing the least amount of proprietary technology. I wouldn't be serving static files and using progressive download, this would be real audio streams being captured live. How does one broadcast a stream that will be reasonably in sync with the source? What kind of protocol is suitable?
Edit:
In research I've found that there are a few protocols: RTSP, HTTP Streaming, RTMP, and RTP.
HTTP streaming is somewhat unsuitable if you are streaming a live performance/communication of some kind because it relies on TCP (as its HTTP based) and you don't lose packets. In a low bandwidth situation, the client can get significantly behind in playback. ref
RTMP is a proprietary technology, requiring flash media server. Crap on that. The reason I looked at flash is because they are extremely flexible as far as user experience goes. SoundManager2 provides an excellent javascript interface for playing media with flash. This is what I would look for in a client application.
RTSP/RTP is what Microsoft switched to using, deprecating their MMS protocol. RTSP is the control protocol. Its similar to HTTP with a few distinct difference -- server can also talk to the client, and there are additional commands, like PAUSE. Its also a stateful protocol, which is maintained with a session id. RTP is the protocol for delivering the payload (encoded audio or video). There are a few open sourced projects, one of them being supported by apple here. It seems like this might do what I want it to, and it looks like quite a few players support it. It sounds like it would be suitable for a "live" broadcast from this page here.
Thanks, Josh
First, let me knock off two incorrect points quickly. Details to follow below:
My read is that complex and UDP-based streaming is tapering off. I'm not forecasting death, just a lesser and lesser share of the market. UDP-based streaming servers consume huge resources, relative to TCP-based solutions (like 10x or more), and the benefits just aren't that tangible.
You say you don't want proprietary technology, and "crap on [Flash]", but you still want to do Real streaming? Hate to break it to you, but both RealAudio and RealVideo are both proprietary.
If going Open Source really is that important to you, which I can understand, then you'll need to ignore the vast majority of the streaming media market. Have a look at
If pragmatism gets the best of you, then reconsider your aversion to Adobe products. Remember, Flash is more widely distributed than any other browser-based player (namely Windows Media Player, Quick Time and Real Players.)
You can still use RTMP with open source: Red5 is probably of greatest interest--it can stream live to Flash-enabled browsers.
I would recommend thinking about your priorities. Spell them out for us in your question.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With