When encoding via WebRTC and playing back with WebRTC every other second the video “throbs” or “pulses”. The quality is fine but it seems to blur in and out in a pulsing fashion. I have tested this with several different cameras and computers and browsers. It doesn’t matter if the codec is VP8/H264 it is happening with both.
If I encode from a software encoder (OBS) the WebRTC playback is fine. Issue only happens with WebRTC encoding.
What could this be?
That’s a result of wowza sending intraframe requests to the webrtc publishing client, which seems to happen once per second by default. You can change the keyframe interval via WebRTCSession.setPublishKeyFrameInterval()
Also, increasing your publish bitrate can smooth out that pulsing effect a bit
@Jay Charles How do I go about setting the keyframe interval? Is that a Java method you’re referencing? Do I have to write a custom module for that? Thank you so much.
I’ve been doing this through a java module in the onRTPSessionCreate method:
public void onRTPSessionCreate(RTPSession rtpSession) {
if(rtpSession.isWebRTC()) rtpSession.getWebRTCSession().setPublishKeyFrameInterval(int);
}
I don’t know if there’s a property in Application.xml that sets this for all webrtc sessions. Perhaps someone from Wowza support will chime in on that one.
I am so thankful for your comment. I created a module that changes the keyframe to every 90 frames and not only is the pulsing effect significantly reduced, but I also no longer receive green artifacts. You are awesome, you saved me so much time.