I am streaming from a camera, live, transcoded to H.264, and sent via RTMP to Wowza. RTSP seems to work just fine, but HLS has a significant delay. The stream is live and will not be rewound, I would like to try and minimize the delay. I tried to change the duration to one second
<Name>cupertinoChunkDurationTarget</Name>
<Value>1000</Value>
This resulted in unreliable video and streaming on the client would occasionally abort. Is there any way I can reduce how long HLS needs to buffer before it begins to stream? Thanks!
Changes to cupertinoChunkDuration have to done in conjunction with key frame frequency, as described in the note in the cupertino settings article:
https://www.wowza.com/docs/how-to-configure-apple-hls-packetization-cupertinostreaming)
It is a high latency type of streaming. These settings and key frame frequency can help, but might take some experimenting.
Richard
If you set it chunkDurationTarget to 1000 but key frame frequency is 10 seconds, chunk size will still be 10 seconds. Change key frame frequency to 1 second. Because Wowza has to start a chunk on key frame. There is a note in the article.
Richard
Use -r and -g. Theses ffmpeg examples
https://www.wowza.com/docs/how-to-encode-video-on-demand-content
Use “-r 24” and “-g 48” for a 2 second key frame frequency.
Richard
One thing I found strange is that even when I change the cupertinoChunkDurationTarget, it still gives me ten second chunks. Wowza doesn’t seem to care if I set it to 1000 ms, I still get 10kms. Is this a limitation of the software?
I’m using ffmpeg for the transcoding and had set the GoP to 15, which I thought would give me 500ms/key frame, but I was still getting 10s. I’ll do more research. Perhaps ffmpeg is not generating the output I am expecting.