Wowza Community

Programatically increase timeout for cupertino stream?

I have an application that acts as an edge server for an FMIS live stream.

In order to prevent bad data and timeout problems when clients first connect to the edge instance (when the instance hasn’t yet started), I’m waiting for the first audio or video packet to come in from the origin before accepting the RTP / HTTP session.

This works fine for RTSP, but if a cupertino stream client is the first to connect, the HTTPStreamer times out. The error I get in the log is:

HTTPStreamerAdapterCupertinoStreaming.service: Request timeout: 8000

Is there any way I can programatically adjust that timeout in my module?

You can change them on a per-application basis by adding the following properties to HTTPStreamer/Properties:

<Property>
	<Name>newSessionTimeout</Name>
	<Value>8000</Value>
	<Type>Integer</Type>
</Property>
<Property>
	<Name>validSessionTimeout</Name>
	<Value>25000</Value>
	<Type>Integer</Type>
</Property>
<Property>
	<Name>streamStreamType</Name>
	<Value>httpstreamer</Value>
</Property>
<Property>
	<Name>repeaterStreamType</Name>
	<Value>httprepeater-edge</Value>
</Property>
<Property>
	<Name>requestTimeout</Name>
	<Value>12000</Value>
	<Type>Integer</Type>
</Property>
<Property>
	<Name>tcpTimeToLive</Name>
	<Value>9000</Value>
	<Type>Integer</Type>
</Property>
<Property>
	<Name>tcpKeepAliveTimeout</Name>
	<Value>9000</Value>
	<Type>Integer</Type>
</Property>

Charlie

Hi,

it takes ~25 seconds for the destroy/disconnect messages to be genearted after the HLS player is stopped.

My guess is that this is defined by this parameter:

validSessionTimeout

25000

Integer

correct?

I lowered it to 10 seconds and the running session still needs 25 seconds for timeout after stop on player?

Thanks!

Hi,

I’ve lowered the time needed for disconect to arrive to approx. 500ms with these parameters:

newSessionTimeout

3000

Integer

validSessionTimeout

500

Integer

So far all seems to work fine. When the user disconnects, the destroy/disconnect message is generated right away.

I think it is actually the chunk duration * number of chunks in cache on the device. This is configurable through these Cupertino segment settings. Look at the 3 Cupertino*ChunkCount settings:

https://www.wowza.com/docs/how-to-configure-apple-hls-packetization-cupertinostreaming

Richard

Thanks Charlie. Upping the newSessiontimeout value to 16000 seems to do the trick.

Hi @Bojan Jovanovic I tried to add the above two properties in same in my application at /Root/Application/HTTPStreamer but it didn’t work. The destroy/disconnect message is generated after about 25 to 30 seconds.

Is there any additional configuration that I am missing? Thanks in advance for your help!