Transrate Segment Length for HLS and IOS Spec GOP Length

Big fan of Wowza and AWS and working hard to get up to speed with the rest of you to make a contribution to this forum. In the mean time I have another question.

Apple wants the .ts chunks (segments) to be 10 seconds long for HLS AKA Cupertino Streaming. When I feed an H.264 RTMP stream into the Wowza Streaming Engine I am required to use Transrate

since the codec from the source is already H.264.

My question/problem is I can find no place in the Transrate section to set the segment length (chunk) for the HLS renditions. Instead it seems like the .ts segment length is a function of the Key Frame spacing of the original RTMP encode. So what this means is for me to make Apple happy I have make my GOP 300 frames long if I am encoding at 30 FPS. Do I have this right?

This workflow requires me to make my initial encode GOP much longer than I would prefer. I know that each .ts chunk needs to start with a Key frame and if the segment length was 10 seconds I could make my initial encode GOP Key frame insert every 5 seconds (GOP 150) @ 30 FSP. A 300 length length GOP is on the long end.

Is this a “you get what you get” situation ( I am not complaining) or am I missing a setp(s)

Appreciate all the support the Forum Members provide to people like myself.

Bruce W.

Hello Bruce and welcome to the Wowza support forum.

I am not 100% clear on what you are saying here. So I will try to explain.

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 in each packet sent to the client. You can modify this behavior by editing the Application.xml file.

This guide explains how to control how the Cupertino (iOS device) segmenter segments an incoming live stream:

How to configure Apple HTTP Live Streaming packetization (cupertinostreaming)

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)

I hope this helps answer your question.

Kind regards,

Salvadore

You are welcome. Please let us know if we can assist you in the future.

Salvadore

Did not know the “chunk duration” was default at 10 seconds. Perfect. Thank you for the assist Salvadore. All set.

Bruce

Hello Bruce and welcome to the Wowza support forum.

I am not 100% clear on what you are saying here. So I will try to explain.

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 in each packet sent to the client. You can modify this behavior by editing the Application.xml file.

This guide explains how to control how the Cupertino (iOS device) segmenter segments an incoming live stream:

How to configure Apple HTTP Live Streaming packetization (cupertinostreaming)

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)

I hope this helps answer your question.

Kind regards,

Salvadore