Your page runs fine in Chrome. In OBS it stutters and eats a CPU core. It is not your machine. A browser source is a capture path, your page is a guest in it, and it has been reported since 2017. Sialk runs the page itself, on the GPU, with nothing downstream of it but the screen.
Four settings to try first
- Hardware acceleration on - Settings → Advanced. OBS does share textures with the browser; with this off, rendering falls back to the CPU.
- Stop Windows throttling it. Efficiency mode and process priority on
obs-browser-page.exeare a known cause of stutter when OBS loses focus. - Match frame rates. A 25 fps source in a 30 fps show judders, silently.
- WebGL, not a canvas fallback. The same drawing costs far more in 2D.
If one of them fixes it, you are done.
Why it is still slow after all four
| 2017 | "Very laggy and overload CPU for canvas or WebGL renderer." Maintainer: "There is nothing that can be done about that." |
| 2020 | 50-60% of a CPU core on an iMac Pro, while Chrome renders the same page smoothly. "Even on the most powerful Macs Apple currently offers." |
| 2025 | The same collapse on an RTX 3070, OBS 31.0.1. An OBS contributor: "It is CPU related, yeah." |
Your page shares one frame budget with a composite and an encoder, and both get a say in when your frame lands. That is what OBS is for. It is not what a stage is for.
What Sialk does instead
Runs the page itself. Your sketch is a layer inside Sialk, rendered on the GPU as a shared texture. A frame that did not arrive as one is dropped and logged, never quietly drawn on the CPU.
Nothing downstream. The window is the output. No composite, no encoder, no second process taking a turn on your frame.
Measured. Two layers at 120.1 fps, none dropped; 4K at 119.9 fps, 12 dropped in 14,383, on an M3 Max.
Still streaming? Keep OBS for the stream and capture Sialk's screen. Every rig takes a screen.
Download the beta - free, macOS
Sources, obsproject.com forum thread 69768 (2017), thread 133655 (2020), thread 171175 (2023), thread 184305 (2025); spout.discourse.group thread 522.