RTMP vs HTTP live latency

Hi guys,

I know this has been discussed before, but trying to sort out a problem.

  1. New wowza server vs4 sitting on cloud 8GB RAM, 4vCPU. Tested up to 500 live and all fine harware wise.

Streaming with FLME or WireCast as h264 acc or mp3.

With RTMP playback all is fine, latency is like 0.5s (Encoder set to 1s keyframe with 25fps at 350kbps).

So RTMP playback is all fine.

When it comes to Android, iOS or Safari using html5 fallback, then latency is like 20-40sec!!! which is so far from ideal.

Server already set to “low latency” settings (without any further tuning)

Player in use is JW v6 (latest JW Player)

Code is:

That where my question comes in?

First of all is why? what is causing such a huge latency on http live playback?

Even bypassing JW Player on iOS and going dirctly to wawza link, saem result. So pointing back to wawza having such a big latency.

If anyone can please share some light or point to the right direction, that would be great.

Thanks,

Denis

CVP Media

You might try modifying the cupertinoMaxChunkCount and cupertinoChunkDurationTarget settings to 5 and 5000 respectively. Ensure you follow the guidance on your keyframe interval set on your encoder as well.

Hi,

You will also need to take into consideration the variables that are out of your control, like the internet bandwidth available on the client side. You will need to make sure there is no latency caused by the bad connection between the chat client and the Wowza server.

Also, if you are using the Flash application to encode the live stream, you will need to take into account the hardware specifications of the client PC running the chat Flash application. If that client PC doesn’t have sufficient hardware resources available, the chat application will have difficulties encoding the live stream, thus needing to buffer locally.

Zoran

Hi Denis,

You can add these properties through the manager. This section of the user guide will show you how. Follow Matt’s guide and add the properties like this:

Add a custom property

I hope this helps.

Salvadore

Hi there, 1-3 seconds would be about as good as it gets for iOS. As a rule 3 chunks are required by iOS devices for streaming to begin. Each chunk is set to 10 seconds by default.

If you use a keyframe interval of 1 frame per second you can lower the cupertinoChunkDurationTarget to 1 second(1000) and get the latency down to closer to 3 seconds.

Also, you might experiment with a setting of “1” for cupertinoPlaylistChunkCount but probably not a good idea for iOS.

This guide explains the configuration in more detail:

How to configure Apple HTTP Live Streaming packetization (cupertinostreaming)

Salvadore

Thanks,

Stupid question, can this be done by web manager on wowza (via browser) or do I need to get my coder guy to do it manually?

Just checking

Ok, managed to get latency on HTTP live to 5-6sec.

NOW the question is: is that the best there is with iOS / Android, or somebody else managed to get latency lower then that without comprimising the quality, so I know if to continue with my quest or just accpet this?

Thank you,

Denis

It’s really hard to find an explanation taking all in account …

I’ve tried all suggestions of the forum but there still seem to be variables that have some effect …

what settings within the .swf file change performance, I’ve tried a lot here too without getting any smarter, for example is the setting bufferlength taken into account …

the best video size seems to be 320 x 240 but also that is hard to get, that might be my arbitrary conclusion since I got the best latency with that setting (still fairly high (around 5 sec.) given that miserable resolution) …

I have to admit that I’m a beginner but its really a jungle of information that’s very hard to put together …

has someone worked out an overall acceptable live streaming solution ?

I’d be happy with 3 sec. latency on every resolution, the bandwidth of our servers should be capable to bear a lot of traffic …

gerry