Keyframes Sent
Understand the keyframes sent metric in video streams — how CallMeter tracks I-frame production, and what the keyframe generation rate means for video quality and bandwidth.
Keyframes Sent counts the total number of keyframes (I-frames) your video encoder has produced and transmitted. A keyframe is a complete, self-contained picture that does not depend on any previous frame. It allows the remote decoder to fully reconstruct the video image from scratch.
Think of keyframes as chapter headings in a book. You need them to start reading or to find your place if you get lost, but having one on every page would waste a lot of paper. Too few keyframes means slow recovery from problems. Too many waste bandwidth.
How It Works
Video compression works by encoding most frames as the difference from the previous frame (delta frames or P-frames). This is very efficient but creates a dependency chain: if you miss one frame, you cannot decode the frames that follow it.
Keyframes break this dependency. They are encoded as complete images, so the decoder can use them as a fresh starting point. Keyframes are generated in three scenarios:
- Periodic intervals — The encoder produces keyframes at a regular cadence (e.g., every 2 seconds)
- On request — The remote side sends a PLI/FIR requesting a keyframe after detecting corruption
- Scene changes — Some encoders produce a keyframe when the video content changes dramatically
CallMeter counts all transmitted keyframes regardless of the trigger.
Why It Matters
The keyframe rate has a direct impact on both video quality and bandwidth:
- Too few keyframes — If a packet loss event corrupts the video, the decoder must wait until the next keyframe to recover. Long waits mean extended periods of video artifacts or freezes.
- Too many keyframes — Each keyframe is significantly larger than a delta frame (5x to 10x). Excessive keyframes consume bandwidth that could be used for higher quality delta frames.
For enterprise testing, monitoring keyframes sent helps you validate encoder configuration and understand how the encoder responds to network conditions.
Common Causes of Abnormal Keyframe Counts
| Cause | Explanation |
|---|---|
| Very high count | Frequent keyframe requests from the remote side due to persistent packet loss |
| Very low count | Encoder configured with a very long keyframe interval, slow error recovery |
| Irregular bursts | Scene changes or network events triggering clusters of keyframes |
| Constant high rate | Encoder misconfigured with an extremely short keyframe interval |
| Zero keyframes | Encoder not producing video, or media path broken |
How to Fix It
- Review keyframe interval — Check the Keyframe Interval metric. For typical video calls, a 2-second interval balances recovery speed and bandwidth.
- Investigate high request rates — If keyframes sent is high, check Keyframe Requests Received. Many keyframes produced on-demand indicate persistent corruption at the remote end.
- Monitor bandwidth impact — Each keyframe produces a bandwidth spike visible in Video Bitrate. If these spikes cause congestion, reduce the video resolution or target bitrate.
- Enable NACK retransmission — NACK-based recovery can fix isolated packet loss without requiring a full keyframe, reducing the overall keyframe count.
- Compare with keyframes received — If you are sending many more keyframes than you are receiving, the problem may be asymmetric: your outbound path is triggering recovery, but the inbound path is fine.
Related Metrics
- Keyframes Received — Keyframes from the remote side, compare for directional quality analysis
- Keyframe Requests Received — Inbound requests that trigger on-demand keyframe production
- Keyframe Interval — Time between consecutive keyframes
- Video Bitrate — Bandwidth; keyframes cause temporary spikes
- Video Freeze Events — Freezes that often resolve when a keyframe arrives
RFC Reference
Keyframe request mechanisms that trigger additional keyframe production are defined in RFC 4585 (PLI, Section 6.3.1) and RFC 5104 (FIR, Section 3.5.1). Keyframe generation behavior is codec-specific and described in the respective codec specifications (e.g., RFC 6184 for H.264, RFC 7741 for VP8).
Keyframe Requests Received
Understand inbound keyframe requests — what they measure, why the remote side is requesting keyframes from your endpoint, and what it means for overall video quality.
Keyframes Received
Understand the keyframes received metric in video streams — how CallMeter tracks inbound I-frames, and how to use the count to assess video recovery and remote encoder behavior.