Bezelbub frames screenshots and screen recordings in Apple device bezels. As of 3.3.0 it can export a framed screen recording with a fully transparent background, so the floating device can sit on top of any backdrop on a web page or in a video edit.
We built this for a mundane reason: we wanted device-framed demo videos on our own product pages, over the page's background, not in a black rectangle. Our previous "pipeline" for that was having Claude Code chroma-key exported videos for the site itself — which is amazing, and ridiculous. Transparency should come out of the exporter, not get reverse-engineered back in afterward.
The format situation
Transparent video on the web is two formats, not one. On Apple platforms it's HEVC with an alpha channel in a QuickTime .mov — AVFoundation encodes it directly, and it plays in Safari and anything built on Apple's media stack. Chrome and Firefox don't decode it; they want VP9 in a WebM. So a complete export is a pair of files, served as two <source> elements with the .mov listed first. The order matters: Safari will happily play a WebM but drops its alpha channel, so it has to be steered to the HEVC file, while Chrome and Firefox can't play QuickTime at all and fall through to the WebM.
The conversion between the two had one real gotcha: ffmpeg builds older than 8.0 can't decode HEVC's alpha layer, and rather than erroring they fill it with opaque — same command, exit code zero, silently black background. (We verified this on 7.1.5 vs 8.1.2.) So the CLI's --webm flag doesn't convert the HEVC file at all: it renders a temporary ProRes 4444 master and feeds that to ffmpeg, which works on any ffmpeg version and has the side benefit of encoding the WebM from a pristine master instead of re-compressing already-compressed HEVC.
What's available
In the macOS and iOS apps (3.3.0), choose the transparent background for a video export and you get the HEVC-with-alpha .mov; the Mac app then offers a copyable ffmpeg one-liner for the WebM (needs ffmpeg 8+, per the above). The CLI does both in one shot:
brew install cwooddgr/tap/bezelbub
bezelbub frame --input recording.mov --background transparent --webm
That writes the .mov and the .webm side by side, ready to serve. No green screens were harmed.