Adaptive screen capture in Bugsee iOS SDK 6.3
Session video is one of the reasons teams use Bugsee: when something goes wrong, you can watch exactly what the user saw. That fidelity has a cost. Until now, the iOS SDK captured the screen at a steady frame rate for as long as recording was on — including long stretches where the UI was completely still.
Starting with Bugsee iOS SDK 6.3.0 (current release 6.3.1), you can turn on adaptive screen capture: an opt-in mode that drops the capture rate when the interface is idle and ramps back up the moment something moves. Session videos stay useful. The device does less capture work when nothing is happening.
The idle-screen tax
Video recording has to keep pace with real interaction. Scrolling, animations, video playback, and Metal-drawn content all need frequent frames so the replay does not look stuttery or skip the moment a bug appears.
A static screen does not. If the user is reading an article, waiting on a network call, or left the app on a settled form, grabbing and encoding the same picture over and over is pure overhead — CPU time and battery drain that do not improve the report. Steady capture pays that cost for the entire session, whether the UI is moving or not.
What adaptive capture does
When the option is enabled, the SDK watches for visual activity — layer updates, animations, scrolling, Metal draws, AVPlayer frames, and related signals — and chooses a capture rate per display tick:
- Idle / static UI — about 1 frame per second, enough to keep the timeline fresh without burning the device.
- Active UI — scroll, animation, dirty layers, playing video, and similar activity ramp capture back up to your configured maximum frame rate.
A quiet heartbeat also means a missed signal never freezes the replay: at worst the video advances at ~1 fps until activity is seen again. When adaptive capture is off, behavior matches earlier SDK releases — steady capture at the configured rate, with the previous scroll-throttle rules.
Up to 4× more efficient when the screen is still
Most of a recorded session is not continuous scrolling or animation. Users read, wait, and sit on settled screens — and that is exactly where fixed-rate capture wastes the most work.
Adaptive capture is built for that reality. By throttling idle grabs and skipping encode work for frames you never needed, it is up to 4× more efficient than steady capture on a static screen in our device testing — while still ramping to full rate the moment something moves. You keep the session video you care about, without paying full capture cost for every quiet second in between.
Adaptive rate control is only part of the story in 6.3.x. We also tightened the screen and video capture pipeline itself — less work per frame on the hot path — so recording is leaner whether adaptive capture is on or off.
Opt-in by design
Adaptive capture defaults to off. Existing apps keep the same grab cadence after upgrading to 6.3.x until you enable the option. That keeps upgrades predictable: turn it on when you are ready to validate idle CPU, battery, and session video quality on your own screens.
How to enable it
Pass BugseeCaptureVideoAdaptiveKey ("CaptureVideoAdaptive") as YES / true in your launch options.
Swift
let options: [String: Any] = [
BugseeMaxRecordingTimeKey: 60,
BugseeCaptureVideoAdaptiveKey: true,
]
Bugsee.launch(token: "YOUR_APP_TOKEN", options: options)
Objective-C
NSDictionary *options = @{
BugseeMaxRecordingTimeKey: @60,
BugseeCaptureVideoAdaptiveKey: @YES,
};
[Bugsee launchWithToken:@"YOUR_APP_TOKEN" andOptions:options];
You can combine it with the usual video knobs — BugseeMaxFrameRateKey, BugseeMinFrameRateKey, and BugseeFrameRateKey — the same way you already tune recording for your app.
What you should expect
- Up to 4× more efficient idle capture on a static screen, versus a fixed grab rate.
- Full-rate capture when it matters — interaction, animation, and dynamic content still drive the session video.
- No change unless you opt in — leave the key unset (or set it to
NO) and 6.3.x matches prior capture behavior.
We recommend enabling it in a debug or internal build first, exercising your heaviest screens (scrollable lists, video, WebViews, games), then rolling it into production once you are happy with the replays.
Available now
Adaptive screen capture ships in Bugsee iOS SDK 6.3.0 and 6.3.1. Install or upgrade via Swift Package Manager, Carthage, or CocoaPods, then flip the launch option when you are ready.
Details and the full options list live in the iOS configuration guide and the iOS release notes. Questions, or feedback from enabling it in production? Reach us via in-app chat or support@bugsee.com.
