Frame-accurate loops
We render at integer-second durations and snap motion curves to loop boundaries. No stutter, no jump.
The animated stream overlay generator with mathematically seamless loops. Export transparent WebM and MOV overlays for OBS Studio, Streamlabs, Twitch, YouTube, and Kick — no stutter at the loop point, no After Effects, no exporting at 3am before going live.
Every overlay is rendered with frame-accurate loop matching, so the last frame meets the first like nothing happened. Your viewers never see the cut.
We render at integer-second durations and snap motion curves to loop boundaries. No stutter, no jump.
True 1080p, 1440p and 4K. Crisp text, clean edges, real transparency — not a screen-record of your monitor.
Export transparent WebM / MOV / PNG sequences. Add as a Media Source. Done. No plugins.
Pick a preset, tweak the colors, hit render. Skip the After Effects rabbit hole.
Inject your palette, fonts and channel name. Every overlay in your kit comes out cohesive.
Use what you generate. Forever. Across every channel and platform you stream to.
Webcam frames, lower thirds, BRB screens, follower toasts, transitions, ambient backgrounds — start from a template that already loops.
Drop in your colors, your handle, your accent font. A live preview re-renders as you type — including the loop.
Transparent WebM for browser-source workflows, MOV with alpha for OBS Media Source, or a PNG sequence if you're picky. Drag, drop, go live.
“I've been hand-keying loops in After Effects for years. StreamOverlay nails the seam in seconds. I'm never opening AE for an overlay again.”
The short, factual breakdowns of where StreamOverlay differs from the obvious alternatives — so you can decide if it fits your workflow.
Why a generator that produces unique overlays beats picking from a 900-pack catalog — and where OWN3D still wins.
Read the OWN3D comparison vs StreamElementsTransparent video file in a Media Source vs full Chromium in a Browser Source. The CPU cost, the loop quality, and when each is right.
Read the StreamElements comparison vs CanvaWhy Canva's MP4 export can't carry an alpha channel — and what to use when you actually need a transparent looping overlay.
Read the Canva comparisonThe two-second version: WebM (VP9 alpha) for streaming, MOV (ProRes 4444) for editing, PNG sequence when nothing else works. StreamOverlay exports all three.
Most overlay tools export a fixed-length clip and rely on the player to restart it on a loop. If the last rendered frame doesn't match the first frame at the pixel level, you get a visible pop, flicker, or jump every time the clip restarts. The seam is exactly as wide as one frame, but the human eye picks it up — especially on motion graphics with continuous rotation, drift, or pulse.
StreamOverlay constrains the animation math so the seam is mathematically continuous: phase, position, opacity, and motion blur all return to their starting state on the final frame. There is no fade-and-crossfade hack — the loop is built into the animation, not patched on at the end.
| Format | Codec | Alpha | File size | Best for |
|---|---|---|---|---|
| WebM | VP9 with alpha (yuva420p) | Yes — 8-bit | Smallest | Live streaming overlays in OBS, Streamlabs, Kick |
| MOV | ProRes 4444 | Yes — 12-bit | Large | Higher quality, re-editing in Premiere or DaVinci Resolve |
| PNG sequence | Per-frame PNG (image sequence) | Yes — 8-bit | Largest | Fallback when WebM or MOV won't decode cleanly |
All three preserve a full alpha channel. WebM (VP9 alpha) is what we recommend for 95% of streamers — smallest file, lowest CPU, and OBS Studio decodes it natively without StreamFX or third-party plugins.
VP9 is a royalty-free video codec with native alpha-channel support via the yuva420p pixel format. WebM files using VP9 alpha play back inside OBS Studio, Streamlabs Desktop, Twitch Studio, and Kick Studio with transparency intact — no extra plugin, no chroma key hack.
StreamOverlay encodes VP9 alpha at the bitrate you need (we default to constant-quality CRF) so the file stays small and your GPU has headroom for the actual game.
Why not just use Canva's MP4 export? Canva exports H.264 MP4, which doesn't have an alpha-plane spec — there's no setting to make the background transparent. Read the full StreamOverlay vs Canva comparison →
Apple ProRes 4444 is the codec After Effects users export when they need to keep an alpha channel. It carries 12-bit colour and a separate alpha plane, so motion graphics composite cleanly in any non-linear editor. The trade-off is file size — a 10-second 1080p ProRes 4444 clip is typically 100–200 MB, vs ~2–5 MB for the equivalent VP9 WebM.
Use ProRes 4444 when you plan to re-edit the overlay later in Premiere Pro, Final Cut, or DaVinci Resolve — or when you're sending the asset to a video editor. For dropping directly into OBS, prefer WebM.
A PNG sequence is just a folder of numbered PNG frames (overlay_0001.png, overlay_0002.png, …). OBS Studio's Image Slide Show source plays them as a loop. PNG sequences are large (every frame is fully compressed PNG) but they're the most compatible format that exists — if a tool struggles with WebM or MOV alpha, it will read PNGs.
StreamOverlay exports PNG sequences at the same resolution and framerate as the video formats, so you can swap formats without changing your OBS scene.
The exact issues we built StreamOverlay to make go away — explained for the people still wrangling them by hand.
Cause: Your overlay's HTML or CSS has a solid background colour applied to html or body. OBS renders that colour as-is — it doesn't strip white or black.
Fix: Set html, body { background: transparent !important; } in your overlay's CSS. Then right-click the Browser Source in OBS → Refresh. If you're using a third-party overlay service, check its "Custom CSS" field for an explicit background rule and remove it.
The StreamOverlay way: exports are transparent video files, not browser pages — there's no HTML/CSS layer to misconfigure. Drop the WebM in as a Media Source and transparency Just Works.
Most common cause: the overlay file is a high-bitrate H.264 or uncompressed format that taxes the CPU on every decode. Animated PNGs (APNGs) and oversized MOV files are repeat offenders.
Fix: re-encode the overlay to VP9 alpha WebM at a sensible CRF (28–32 for streaming-grade quality). The file shrinks 30–50×, decodes on the GPU, and stops competing with the game for CPU cycles. Also: lower the overlay's framerate to 30 fps unless it genuinely needs 60.
If you're already on VP9 WebM and still dropping frames, check OBS → Stats for "missed frames due to rendering lag" vs "encoding lag" — the cause and fix are different for each.
Using a browser source for the animated overlay? Each browser source runs a full Chromium instance — typically 100–300 MB of memory and a constant CPU draw. A transparent video file in a Media Source is ~10× lighter. Why a video file beats a browser source for decorative overlays →
Cause: the WebM was encoded with VP8 or VP9 in yuv420p (no alpha) instead of yuva420p. Most online video converters silently strip the alpha channel.
Fix: re-export the source with VP9 + yuva420p. If you have the source as a transparent MOV (ProRes 4444), the FFmpeg command is: ffmpeg -i in.mov -c:v libvpx-vp9 -pix_fmt yuva420p -auto-alt-ref 0 out.webm — the -auto-alt-ref 0 flag is required for VP9 alpha to encode correctly.
The StreamOverlay way: WebM exports are always yuva420p. There is no "non-transparent" toggle to forget.
Cause: the ProRes 4444 export uses straight alpha but OBS expects premultiplied alpha. After Effects defaults to straight alpha unless you change it.
Fix: in After Effects, set Channels → RGB + Alpha with Color → Premultiplied (Matted With Black) in the output module before render. In DaVinci Resolve, set the Render Settings → Advanced → Alpha to Premultiply.
Alternatively, use a WebM (VP9 alpha) export — the codec specification handles premultiplication consistently across players.
Cause: the first and last frames of the overlay don't match at the pixel level. The clip restarts on a frame that's almost identical to frame one, and your eye catches the discontinuity.
Manual fix: open the source in your editor and constrain the animation so the final frame's transform, opacity, and motion blur match frame one exactly. Trim to a whole-second duration. If your animation uses noise or random motion, freeze the seed.
The StreamOverlay way: the seam is built in. The math is constrained from the start — phase, position, opacity, blur all return to their starting state on the final frame.
Pick the smallest format that still has alpha. From most to least efficient:
Resolution matters as much as codec — a 720p overlay is roughly 2.25× smaller than 1080p with no visible difference at 4K stream output, because OBS upscales the overlay layer cleanly.
30 fps for most overlays, 60 fps only when the overlay has fast camera-style motion (whip pans, fast strobes) that benefits from doubled temporal resolution. A 30 fps overlay on a 60 fps stream looks indistinguishable from a 60 fps overlay in real-world testing — and uses half the encode and decode cost.
Match the overlay framerate to a whole-second division of your stream framerate so the loop point lands cleanly: 30 fps with a 3-second loop = 90 frames, 60 fps with the same loop = 180 frames.
Yes. StreamOverlay exports the formats OBS already loves — transparent WebM (VP9 alpha), MOV (ProRes 4444), and PNG sequence. Drag in as a Media Source, set it to loop, done.
The first and last frames are identical, motion velocities at the boundary match, and timing snaps to whole-second durations. Result: no stutter or pop when the clip restarts.
No. Every preset already looks good and already loops. You only change the things you want to change — colors, handle, accent font.
Free during early access. After launch, a friendly monthly plan plus a free tier with watermarked exports. Early-access list gets a launch discount and grandfathered pricing.
We're inviting users in waves through 2026. Drop your email below to get bumped up the list.
Join 4,217 streamers already on the list. We send one email when your invite is ready — and nothing else.