Live Streaming to IOS and Android Devices Latency

Just brainstorming a bit.

I’m trying to work out the best way to distribute a live event to IOS and Android smart phones that are getting internet connection using either local wi-fi or native carrier data plan.

My current set up is:

Laptop encoding at the Live Event via 300kbs link, connecting to EC2 with Wowza server

Smartphones then connect to EC2 stream via HTTP for IOS and RTSM URL for Android.

If I do Audio Only , I can get it down to about 10-15 sec latency from event transmission to the audio being played on the smartphone via its data connection from the native service provider.

Is it possible to reduce that latency?

The goal is to have a live audio input play at the local event the broadcast is originating.

I hope to get as close to real time as possible.

Any ideas would be welcome.

There is the Low Latency tutorial.

The useful parts there that apply to your setup are the low-latency StreamType, and increasing audio sample rate. Other things that will decrease latency:

  1. Increase framerate

  2. Decrease keyframe interval

  3. Reduce network hops/latency

  4. Switch to Flash on Android instead of RTSP

Your 300kbps uplink is likely a major part of the latency issue here. Is it possible to offer wifi at the event and serve the stream from a local copy of Wowza?

Thanks for the reply.

I followed the Low Latency Tutoria. Please verify that I did it correctly in the conf/live/application.xml below

  1. I can increase uplink to higher number 800-1.2MB but if I’m only sending 64bit audio would it make a difference?

  2. The best I can do from encoding location to Amazon EC2 is about 40ms latency. I figured the phone carriers would be closest to the amazon backbone to pick up the streams.

  3. Do you have an example to use Flash instead of RTSP? Is it just adjusting the URL?

  4. I guess broadcasting live at the event via 802.11x would be the fastest possible. But was hoping to use the carrier bandwidth first if possible.

Thanks for you help.

  • <!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications

–>

chunkDurationTarget

2000

Integer

maxChunkCount

3

Integer

playlistChunkCount

2

Integer

repeaterChunkCount

2

Integer