Live stream taking 10-20 seconds to load for the first time.
Encoder > Edge (wowza) > Browser
1) using HLS and RTSP URLs
2) Works perfectly on pc/mac and apple devices. Only on Android devices the live stream takes 15 seconds to load. Once it's playing, the stream runs fine.
3) Created several test streams and I get the same issue.
4) Reduced all my settings (bit rate, frame rate, resolution) and nothing changed.
5) Integrated callback URL script as well.
I know that mobile devices will take a longer time to load the live stream because wowza needs to transcode from RTMP to RTSP/HTTP according to the devices. Still, 10-15 seconds seems a bit too long. I have access to streams on other servers and they're up within 4 seconds. What's the difference?
I want to debug this further but I don't know what else to do. Anybody have any ideas?
The delayed playback is normally due to the device making a request to the Wowza server using TCP and tells Wowza that it can stream using UDP. When Wowza sends the stream via UDP the device does not receive it due to it being blocked somewhere between the device and Wowza. After the set timeout duration is reached, the device will then send a message to Wowza asking for the stream via TCP because the data was not received and the TCP stream is successful. The time it takes for the device to decide it has waited long enough without receiving data and then tell Wowza to send the data via TCP is the delay you're seeing.
You can't change this on the server as it's a timeout on the device itself.
Keep in mind chunks must start on a key frame. So it is best to use a key frame interval that is factor of the cupertinoChunkDurationTarget setting. For instance if cupertinoChunkDurationTarget is set to 10 seconds then use a key frame interval of either 2, 2.5, 5, or 10 seconds.