Windows · Blackmagic DeckLink · Chromium
A live webpage,
out of an SDI port.
web2sdi renders any page — graphics, a scoreboard, a clock, a playing video with its sound — and plays it out as broadcast SDI through a DeckLink card. The same trick as a browser source and a DeckLink output in OBS, without the rest of OBS: a box that boots, goes on air, and takes its orders from a web page.
Get started Screenshots Source
Verified on a DeckLink Duo 2 at 1080p59.94: 601 frames in 10 seconds, none late, none dropped.
What it looks like
What you get
The card keeps time
SDI's clock is the master, as it is in OBS. A page that renders slower than the wire repeats its last frame; one that renders faster drops the spares. The output never starves.
Sound, in sync
--audioembeds the page's audio in the SDI signal at 48kHz, scheduled on the video timeline. Measured on a loopback cable: −0.03ms mean offset.See what is going out
The control page streams a live preview of the rendered page. Switch on Interact to click and type into it — log in, dismiss a banner, pick from a dropdown — without a monitor on the box.
Drive the video
When the page has a
<video>, the control page grows a transport: seek, skip ten seconds, play, pause, mute and rate.Change it live
A new URL, render size or frame rate applies without touching the wire. Mode, device and audio rebuild the card, and the page says so before you commit.
An appliance, not an app
Tray icon, one copy at a time, settings saved to disk, and an optional startup shortcut so a power cut ends with the box back on air.
One installer
An NSIS installer carries Chromium and everything else. The only prerequisite is Blackmagic's Desktop Video driver, and it warns you if that is missing.
Built from Linux
Zig cross-compiles the Windows build and packages the installer — no Visual Studio, no Windows CI, no Docker.
How it works
The Chromium Embedded Framework renders the page offscreen and hands over every frame it paints. Those land in a small buffer that only ever keeps the newest one. Once per output frame, the DeckLink card's completion callback takes whatever is newest, converts it to YUV if the mode calls for it, and schedules it.
That split is the whole design: the browser renders as fast as it can, the card plays out exactly as fast as SDI demands, and neither waits for the other.
Run it
Install Blackmagic Desktop Video, run the installer, and start web2sdi from the Start Menu. The tray icon opens the control page. From a terminal:
web2sdi.exe
web2sdi.exe --lan --port 8787
dltest.exe --probe
web2sdi.exe --url https://example.com --device 0 --audio
Then open http://127.0.0.1:8787. With --lan
anyone on the network can reach it — and so change what goes to air.
Chromium's stock builds carry no H.264 or AAC. An .mp4
renders as a black frame and says nothing; use WebM (VP8/VP9 with
Opus/Vorbis) for video you play locally.