LensLink

Documentation

Two programs that talk to each other: a plugin in OBS, an app on the phone. These pages cover installing both, connecting them, and every setting either one exposes.

In a hurry? Install, then Connect. That's the whole setup; the rest is optional.

How it fits together#

The app captures, encodes in hardware to H.264 or HEVC, and listens on TCP port 9979. The plugin dials that port — over your network, or through Apple's USB device service — decodes on the GPU where it can, and hands OBS the frames as an ordinary source.

No cloud service, no account. If the two ends can see each other, LensLink works.

PieceWhere it runsWhat it does
LensLink appiPhone / iPadCaptures, encodes, listens. Streams only while on screen.
LensLink CameraOBS sourceThe camera stream, its controls, and lip sync.
LensLink ScreenOBS sourceAn iOS screen broadcast with its system audio.
Browser panelhttp://localhost:9980The same camera controls, on the computer.

Start here#

Vocabulary#

Each of these means one specific thing throughout the app, the plugin and these pages.

Setup screenThe app's first screen: pickers and Start buttons, before anything streams.
Live screenThe full-screen view while streaming, with the floating control panel.
StandbyApp open and idle, OBS connected and able to start the camera. Amber.
Tally lightThe colored border saying what the source is doing in OBS — on air, in preview, and other statuses you choose.
Idle viewWhat the Live screen becomes 10 seconds after your last touch.
Lip-sync referenceThe phone's mic sent as a timing signal only. Never heard on stream.

Getting help#

Troubleshooting covers the known failure modes with the log lines they produce. For anything new, open an issue on GitHub and attach the OBS log (Help → Log Files) and Options → Camera diagnostics.