Live video streaming

Hey Tek Syndicate

I've been working on streaming live video over a network, preferably the internet.

How would you go by streaming live video from a (as example) webcam and load-balancing/failover streaming servers, we are currently not in a very (out of the box thinking) productive mood, you probably know what i'm talking about.

How would you failover stream live video guys? we have our plan but just out of curiosity i would like to know how other people think about it.

Here are 2 visio drawings, as you can see i actually colored the lines in groups since matching colors to servers should be failover.

EDIT: This last image is a bit outdated but the streamingservers are "STREAMSRV1 STREAMSRV2" and both have a public ip like 145.118.5.3 and 145.118.5.4.

How should i impro. (inprovise, inprove, i'm pro) my stuff

 

dankje

Interesting, very interesting.

I presume your two servers that going to be providing the failover are connecting to a single storage pool, such as a SAN or NAS? or are they both going to hold copies of everything steam-able?

Also I presume the "webacc" machine is going to be the load balancer (reverse proxy)?

Anyway, look at implmenting nginx (1) (2) using the rtmp module. However I am unsure how well it works, as nginx is mainly for dealing with static content (not dynamic like video streaming) It's also more for use with flash and is also no longer being developed.

You may wish to preferably look into FlusSonic. Although it supports more media formats it is however not free.

Also look at Wowza as they have a cluster based streaming engine.

I do not really know what to suggest as I don't know your level of knowledge regarding load-balancing and failover clusters.

Indeed the "webacc" server will load balance on something we still have to figure out, based on active connections per server would be the best option. but one thing is that all systems are Windows based, not best in my opinion but we have to work with it.

What you won't see on the drawings is that we have added a encoder that sends the streams to the 2 streamservers. there will be live video that comes from the encoder, then send it through the streamservers.

Static content, (or just plain video files) could be rendered to anything the browser supports, we will use that idea for the archived videos, based on what the browser supports webm mp4 or flv

The protocol of which the encoder sends the streams to the streamservers is rtmp, each stream server again sends the rtmp stream to the user. We where also thinking about HDS (HLS)

Each streamserver now has a apache webserver which came preconfigured with adobe media server 5, i still need to learn a lot about rtmp, i think next week will be the right time for some study. And i will definitely look into FlucSonic and Wowza. maybe nginx

And as far as knowledge on failover and load-balancing, i just started i will also look into streaming the archive as well which would replace the idea of archived static content.