Stoatworks Labs

Frame Ferret

A software virtual capture card

Field testingv0.1.1ApplicationC++
Frame Ferret — A software virtual capture card
Frame Ferret

What it does

Frame Ferret treats a protocol as a port on a router. NDI, OMT, SRT and ST 2110 are each a source and a sink; screen, window and region capture are sources; a DeckLink card, a Syphon server and a preview are sinks. A crosspoint in the middle connects any of it to any of the rest, and does not care which is which.

It is named for what a ferret does: go down the hole and bring back what is in there. Point it at a display, a window, or a stream on the network, and it will put that picture wherever you need it — over the wire, out of an SDI card, or into another application on the same machine.

  • NDI, OMT, SRT and ST 2110-20, each sending and receiving
  • Display, window, application and region-of-interest capture
  • DeckLink SDI output with 10-bit v210, and Syphon output on macOS
  • Audio routed through the same crosspoint as video
  • Explicit network interface binding, and an SDP for ST 2110 receivers
  • A browser control page with a live crosspoint grid and preview

Where it stands

Early, and measured rather than assumed. Every transport is checked against an implementation that is not this codebase: NDI and OMT against oxbow, SRT against a pure-Rust srt-tokio sender, ST 2110-20 against GStreamer's RFC 4175 payloader and depayloader, and Syphon against Resolume's own client. The DeckLink output ran on a real Duo 2 at 1080p50 with zero late or dropped frames by the card's own count, though the picture on the wire has not been read back yet. ST 2110 is a wide-profile sender clocked from the system clock, and says so in its SDP. The UVC virtual camera, virtual display, Spout and 2110 audio are not written.

Watch it running

Frame Ferret video thumbnail

Nothing loads from YouTube until you press play.Watch it there instead