Live streaming to iOS - load balancing/fail-over

Hi,

looking at some specifications of HLS, is it possible to generate alternative locations of streams inside m3u8 file for iOS devices?

Since load balancing is not done for HLS streaming - but only Flash, how can the fail-over be taken care of in a multi edge server environment?

It seems that altenative (backup) locations can be defined. For example, using to different locations/servers for same content.

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1136296

http://x.x.x.x:8008/livetv/definst/cnn.stream/playlist.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1136296

http://x.x.y.y:8008/livetv/definst/cnn.stream/playlist.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000

http://x.x.x.x:8008/livetv/definst/cnn.stream/playlist.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000

http://x.x.y.y:8008/livetv/definst/cnn.stream/playlist.m3u8

Is this possible?

Thanks!

The Wowza load balancer works for any client. You can use the HTTP method of getting “least loaded server” as you form HTML for iOS device in your server page (php, asp, etc)

https://www.wowza.com/docs/how-to-get-dynamic-load-balancing-addon

Richard

You cannot do this. It will send Wowza into an infinite loop with the player.

Charlie

Hi,

so the idea is to pull information from LoadBalancer Listener which receives statuses from all Edge servers and to update the stream URL in the client application to point to the least loaded server. Right?

The problem is that we cannot dynamically update the stream URLs.

Is there any way of using a redirect or something?

Thanks!

Hi,

I’m trying to have an external M3U8 playlist that points to the each profile’s playlist. I do not use SMIL file, but manually created playlist (stream.m3u8).

This looks something like the example above :

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1136296

http://x.x.x.x:8008/livetv/definst…/playlist.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1136296

http://x.x.y.y:8008/livetv/definst…/playlist.m3u8

The IPhone opens the main stream.m3u8 list and opens the first stream:

2011-09-21 13:55:14 CEST connect cupertino INFO 200

2011-09-21 13:55:14 CEST create stream INFO 200

but nothing is streamed to the client. Why is this? It should be working, right?

Thanks!

No, It starts (connect/create), but seems that it does not go into play. Quite strange because I’m referencing a direct stream - not a smil file.

I’ve tried with multiple iOS devices.

I’ll repeat this and get back to you.

In your opinion, should it work?

Thanks!

I’ve tried with a m3u8 file from Wowza (from SMIL), but just removed the wowzasessionid to get a clean m3u8 file with reference to each bitrate.

This behaviour is the same - I see it connect/open the stream but play never arrives.

Very strange…

There is the HTTP method of getting least loaded server, and there is the NetConnection redirect method. The latter is essentially same as a standard web page redirect (302) where the server tells the client where to go, then the client goes there. With the HTTP method you can do this in your server page, or you could do it client-side with XMLHTTPRequest (ajax).

Richard

So this is not served by Wowza?

Richard

I don’t know

Richard