What StreamElements does well
StreamElements is a full streaming platform. Beyond overlays, it includes alerts, a chatbot, a tip page, a song-request system, and a points/loyalty system. The overlay editor is genuinely powerful — you build HTML/CSS/JS widgets in their dashboard and they're served as a single browser-source URL.
If your overlay needs to react to events — new follower, new sub, donation goal, chat command — you want that browser-source model. The overlay is a live web page; the alert service can push updates into it in real time. That's not a job for a static video file.
Where StreamOverlay is different
For the visual layer — the animated borders, the looping accent flourishes, the background motion graphics — a transparent video file is almost always the better tool. The reasons compound:
- Lower CPU and memory. OBS decodes a WebM with one video thread on the GPU. A browser source spins up an entire Chromium instance and runs the animation in JavaScript at the CPU level.
- Pixel-continuous loops. An HTML/CSS/JS animation loop has whatever loop quality the template author coded; bugs show up as visible pops. StreamOverlay constrains the animation math at export so the seam is invisible.
- Portable. The WebM file lives on your disk. If StreamElements has a service outage (it has happened), your animated overlay still works. If you migrate to a new machine, copy the file.
- No transparency surprises. Browser sources sometimes render with a black background because of a misconfigured CSS rule, a service caching the page wrong, or a recent OBS update changing how transparency is handled. A transparent WebM is transparent.
The honest answer: use both
Many streamers run a transparent video overlay from StreamOverlay as the always-on visual layer, then a StreamElements browser source on top of it for live alerts and chat widgets. The video layer is purely decorative; the browser layer reacts to events. Each tool does the part it's best at.
If your current setup uses a StreamElements browser source for an animated background or border and it's costing you CPU during demanding games — try replacing just that one source with a StreamOverlay WebM. Keep the alerts and chat widgets where they are.
Browser source vs Media Source — the technical breakdown
A Media Source in OBS plays a video file through OBS's native media pipeline (FFmpeg-backed). Decoding runs on the GPU when the codec supports it, the alpha channel is read directly from the video stream, and the only state OBS tracks is the playback position. CPU and memory cost is roughly the cost of decoding one video.
A Browser Source embeds a full Chromium browser engine, loads an HTML page, runs its JavaScript, composites the resulting bitmap, and feeds the bitmap into OBS. Per browser source you pay: the cost of running Chromium, the cost of the page's JavaScript animation loop, and the cost of compositing. Memory is typically 100–300 MB per source. With four or five browser sources on a scene, the cost is real.
Neither model is "better" — they're optimal for different jobs. Decorative animation = Media Source. Interactive widget = Browser Source.