We are using RTSP/RTP streams from our servers and transrate them on Wowza in to multiple qualities, Transcoder template has set up to insert keyframe after every 90 frames, which is around 3 sec as we have (30 fps) video.
We have noticed that some times when the server sending RTSP/RTP stream is under heavy load it reduces the FPS and bitrate on the source stream hence we see keyframe being generated on Wowza anywhere after 8 to 9 sec. This results into issues when the stream is being pushed to Akamai.
Is there a way in the transcoding profile to generate a keyframe exactly after 3 sec instead of 90 frames?
A constant framerate is important, particularly for packetizing http streams. I would suggest setting your rtsp stream, ip camera or encoder? to maintain frame rate vs. quality, as the later will possibly make the frame rate variable, but you will likely need to increase the overall bitrate of the stream.
There isn't a way of setting a time based keyframe interval, it is based on frames in the transcoder, as it is with most encoders.
However, there are some more
advanced parameters you can set down in the encode if you want to try experimenting with those.