Wowza Community

Latency in ipad device while the wowza streaming engine in running continuously

Hi,

As suggested , I can able to solve the latency in ipad device while playing the url obtained from wowza streaming engine by using the following updation in application.xml

cupertinoChunkDurationTarget

1000

Integer

cupertinoMaxChunkCount

4

Integer

cupertinoPlaylistChunkCount

3

Integer

cupertinoRepeaterChunkCount

3

Integer

But if Iam running the wowza streaming engine for a long time continuously, again Iam observing the latency in ipad device for more than 25 secs while playing the url obtained from wowza streaming engine.

And I am displaying the wowza server console statements here:

INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/myStream]: chunkDurationTarget: 1000

INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/myStream]: audioGroupCount: 3

INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/myStream]: playlistChunkCount:3

INFO server comment - MediaStreamMap.getLiveStreamPacketizer[live/definst/myStream]: Create live stream packetizer: cupertinostreamingpacketizer:myStream

INFO server comment - MediaStreamMap.getLiveStreamPacketizer[live/definst/myStream]: Create live stream packetizer: mpegdashstreamingpacketizer:myStream

INFO server comment - CupertinoPacketHandler.startStream[live/definst/myStream]

INFO server comment - MediaStreamMap.getLiveStreamPacketizer[live/definst/myStream]: Create live stream packetizer: smoothstreamingpacketizer:myStream

INFO server comment - LiveStreamPacketizerPacketHandler.startStream[live/definst/myStream]

INFO server comment - SanJosePacketHandler.startStream[live/definst/myStream]

INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[live/definst/myStream]

INFO server comment - LiveStreamPacketizerCupertino.handlePacket[live/definst/myStream]: Audio codec:AAC isCompatible:true

INFO server comment - LiveStreamPacketizerSanJose.handlePacket[live/definst/myStream]: Audio codec: AAC

INFO server comment - LiveStreamPacketizerCupertino.handlePacket[live/definst/myStream][mp4a.40.2]: AAC Audio info: {AACFrame: codec:AAC, channels:2, frequency:44100, samplesPerFrame:1024, objectType:LC}

INFO server comment - LiveStreamPacketizerCupertino.handlePacket[live/definst/myStream]: Video codec:H264 isCompatible:true

INFO server comment - LiveStreamPacketizerSanJose.handlePacket[live/definst/myStream]: Video codec: H264

INFO server comment - LiveStreamPacketizerCupertino.handlePacket[live/definst/myStream][avc1.66.32]: H.264 (Video may not be playable on older iPhone and iPod touch devices where Main/Level 3.1 or lower is required) Video info: {H264CodecConfigInfo: codec:H264, profile:Baseline, level:3.2, frameSize:1290x900, displaySize:1290x900, crop: l:0 r:3 t:0 b:6}

INFO server comment - LiveStreamPacketizerPacketHandler.handlePacket[live/definst/myStream]: Video codec:H264 isCompatible:true

INFO server comment - LiveStreamPacketizerPacketHandler.handlePacket[live/definst/myStream]: Audio codec:AAC isCompatible:true

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:1 mode:TS[H264,AAC] a/v/k:34/60/1 duration:2410

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:2 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000

INFO server comment - LiveStreamPacketizerSmoothStreaming.flushPendingAudio: Bitrate[live/definst/myStream]: 105168

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:0 count:86 duration:2019

INFO server comment - LiveStreamPacketizerSmoothStreaming.handlePacket[live/definst/myStream]: Fragment durations: [2.0,2.0,2.0]

INFO server comment - LiveStreamPacketizerSmoothStreaming.flushPendingVideo: Bitrate[live/definst/myStream]: 1030817

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:0 count:60 duration:2000

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:3 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2066

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:1 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:1 count:60 duration:2000

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:4 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:2 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:2 count:60 duration:2066

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:5 mode:TS[H264,AAC] a/v/k:31/60/1 duration:2167

INFO server comment - LiveStreamPacketizerSanJose.endChunkTS[live/definst/myStream]: Add chunk: id:1 a/v/k:459/301/5 duration:10643

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:1 type:m4s_mux a/v/k:458/300/5 duration:10233

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:1 type:m4s_audio a:458 duration:10233

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:1 type:m4s_video v/k:300/5 duration:10233

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:3 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:3 count:60 duration:2000

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:6 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:4 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:4 count:60 duration:2167

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:7 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:5 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:5 count:60 duration:2000

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:8 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2033

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:6 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:6 count:60 duration:2000

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:9 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:7 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:7 count:60 duration:2033

INFO server comment - LiveStreamPacketizerSanJose.endChunkTS[live/definst/myStream]: Add chunk: id:2 a/v/k:439/301/5 duration:10167

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:10 mode:TS[H264,AAC] a/v/k:30/60/1 duration:2134

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:2 type:m4s_mux a/v/k:438/300/5 duration:10167

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:2 type:m4s_audio a:438 duration:10167

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:2 type:m4s_video v/k:300/5 duration:10167

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:8 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:8 count:60 duration:2000

INFO server comment - LiveStreamPacketizerCupertino.endChunkTS[live/definst/myStream]: Add chunk: id:11 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:9 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:9 count:60 duration:2134

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:audio id:10 count:87 duration:2020

INFO server comment - LiveStreamPacketizerSmoothStreaming.addFragment[live/definst/myStream]: Add chunk: type:video id:10 count:60 duration:2000

INFO server comment - LiveStreamPacketizerSanJose.endChunkTS[live/definst/myStream]: Add chunk: id:3 a/v/k:437/301/5 duration:10133

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:3 type:m4s_mux a/v/k:436/300/5 duration:10133

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:3 type:m4s_audio a:436 duration:10133

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:3 type:m4s_video v/k:300/5 duration:10133

INFO server comment - LiveStreamPacketizerSanJose.endChunkTS[live/definst/myStream]: Add chunk: id:4 a/v/k:438/301/5 duration:10133

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:4 type:m4s_mux a/v/k:437/300/5 duration:10133

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:4 type:m4s_audio a:437 duration:10133

INFO server comment - MPEGDashWriterHandler.createChunkM4S[live/definst/myStream]: Add chunk: id:4 type:m4s_video v/k:300/5 duration:10133

INFO server comment - LiveStreamPacketizerSanJose.endChunkTS[live/definst/myStream]: Add chunk: id:5 a/v/k:437/301/5 duration:10133

What my guess is cupertinoChunkDurationTarget is reverting back to 10000 again if Iam continuously running wowza server for long time. I dont know exactly.

Please provide me the solution to fix this problem.

Thanks in advance.

Hi,

The chunks are currently 2 seconds in duration even though you have configured a 1 second duration and this is because the chunks are created on keyframes and you only have 1 keyframe every 2 seconds.

The duration of the chunks will not change in size unless the keyframe interval changes for some reason. You can log the chunks created by Wowza beyond the 10 chunks which are logged by default.

To do so, add the following property to the LiveStreamPacketizer/Properties container in Application.xml. This instructs the Wowza server to log information for every HTTP chunk that’s created (not just the first 10 chunks).

<Property>
	<Name>maxChunkLogCount</Name>
	<Value>0</Value>
	<Type>Integer</Type>
</Property>

Regards,

Jason

Hi,

The chunks are currently 2 seconds in duration even though you have configured a 1 second duration and this is because the chunks are created on keyframes and you only have 1 keyframe every 2 seconds.

The duration of the chunks will not change in size unless the keyframe interval changes for some reason. You can log the chunks created by Wowza beyond the 10 chunks which are logged by default.

To do so, add the following property to the LiveStreamPacketizer/Properties container in Application.xml. This instructs the Wowza server to log information for every HTTP chunk that’s created (not just the first 10 chunks).

<Property>
	<Name>maxChunkLogCount</Name>
	<Value>0</Value>
	<Type>Integer</Type>
</Property>

By logging all the chunks not just the first 10 you will be able to see in the logs what the duration of the chunks are when you experience this problem.

To help further I recommend that you open a ticket by sending an email to support@wowza.com

When creating a ticket, please include a description of the issue, a link to this thread for reference and a ZIP file containing the following directories:

[Wowza-Install]/conf/

[Wowza-Install]/logs/

[Wowza-Install]/transcoder/

Please make sure you provide logs which show Wowza server starting.

If you are not sure how to get this information please see the following tutorial.

How to create a compressed zip file in Windows, OS X, and Linux

  • If you have a live stream please outline the type of encoder in use along with the encoding settings for the stream.

  • If you are using a .stream file to start re-streaming please provide this.

  • If you are using multiple bitrates (ABR) then please provide the SMIL file associated with your configuration.

Ensure that the maxChunkLogCount Property has been added and that you can see the chunks being created beyond the first 10 chunks.

Please also provide a time which you where experiencing the issue so we can check the chunks at this time.

Regards,

Jason

Hi,

Thanks for the update, we look forward to hearing from you.

Regards,

Jason

You can also modify the other packetizers:

How to configure Adobe HTTP Dynamic Streaming packetization (sanjosestreaming)

How to configure Microsoft Smooth Streaming packetization (smoothstreaming)

How to configure MPEG-DASH packetization (mpegdashstreaming)

Or, if you are only doing cupertino streaming, you can disable these packetizers for this application.

Kind regards,

Salvadore

Hi,

Initially as I set cupertinoChunkDurationTarget=1000 and keyframe interval=1 , I didn’t find any delay while playing the url in ipad. But if Iam running the wowza server for a long time continuously, then again I am observing the latency for more than 25 secs while playing in the ipad even though it was set correctly. Please suggest me what might be the problem for this?

Thanks in advance.

Hi,

Thanks a lot for your quick reply. I will try it out with the above modifications that you have mentioned and let you know.

Thanks

-bhagya