Wowza Community

Best HLS packetizer setting for given bandwidth

Hello and good time of day.

Can you give some tips how to determine the most suitable settings for given channel bandwidth to minimize stalled time?

We using version 4.0.4

Thanks in advance.

Hello there.

I am not sure exactly what you are asking here.

You can use this guide to configure the HLS packetization:

How to configure Apple HLS packetization (cupertinostreaming)

To estimate how much memory is used to store the chunks for a single live stream, use the following formula:

[total-memory-mb] = ([stream-bitrate-kbps]/([1024-kb-per-mb]*[8-bits-per-byte])) * [cupertinoChunkDurationTarget-seconds] * [cupertinoMaxChunkCount]

For example, a 500 kbps stream consumes the following amount of memory, given the default settings from the guide:

(500/(1024*8)) * 10 * 10 = 6 MB of memory

To calculate the number of connections you can support, you can use this formula:

number of users * stream bitrate + 20% IP overhead = total server bandwidth

With a 1g nic (20% overhead accounted for) = 800mbs throughput, which is 800 1 mbs streams, or 1600 500kbs streams.

You will have to test your actual server/network using the load test tool, or monitoring utilization in production. You must be properly tuned. And to achieve maximum levels you may have to tune your server and network in other ways outside Wowza.

I hope this is helpful.

Kind regards,

Salvadore

HTTP streaming sends chunks to the client. The client needs 3 chunks cached before it starts playing.

By default Wowza is set to send 3, 10 second chunks (cupertinoPlaylistChunkCount) in each packet sent to the client.

Chunks must start on a key frame. So it is best to use a key frame interval that is factor of the cupertinoChunkDurationTarget setting.

Try 2 second key frame frequency and cupertinoChunkDurationTarget “2000” (2 seconds)

cupertinoMaxChunkCount is the total number of chunks that are maintained. So as the stream moves a bit further off of live, the player will start to request segments from further in the past. Having a larger list of chunks in reserve will insure this does not lead to a missing chunk error.

Kind regards,

Salvadore

I am sorry, but I am not clear on what you are asking.

Can you please try to explain it again?

Thank you.

Salvadore

Big thanks, i read this article and it was helpful, but i it not what i asking.

I should detect what values of cupertinoChunkDurationTarget, cupertinoMaxChunkCount, cupertinoPlaylistChunkCount, cupertinoRepeaterChunkCount are the best for live channel when broadcasting to mobile devices, but have no idea how to check channel health with set of parameters not only by own eyes.

Thanks, it helps keep stream live, but don’t helps determine it’s quality.

Ok, i try to search not so strait method, may be javascript script that scan video current time and alert if video stalled for more then 2 seconds.

Hmm, i need a tool to check channel health not only by my own eyes.

I wrote this javascript, but it register only errors, and if no stalled times, then i don’t know how it goes with current settings and what difference between two set of configuration variables.

[HTML]

video{

width: 854px;

height: 480px;

}

#liniya {

float:left;

margin-left:15px;

text-align:center;

}

videotime 0: 0.00 videotime 1: 0.00 | 0.00 | 0

[/HTML]