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.
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.
| Piece | Where it runs | What it does |
|---|---|---|
| LensLink app | iPhone / iPad | Captures, encodes, listens. Streams only while on screen. |
| LensLink Camera | OBS source | The camera stream, its controls, and lip sync. |
| LensLink Screen | OBS source | An iOS screen broadcast with its system audio. |
| Browser panel | http://localhost:9980 | The same camera controls, on the computer. |
Start here#
- InstallPlugin on Windows, macOS and Linux; app via TestFlight, sideloading or Xcode.
- Connect OBS to your phoneWi-Fi, USB, several phones, and every status message decoded.
- Camera, lenses and imageFormats, manual exposure, HDR, Apple Log, green screen, presets.
- Screen mirroringBroadcasting the screen, its audio, and pinning the source size.
- Audio and lip syncThe phone as a mic, and aligning your own mic automatically.
- Remote startStarting the camera from OBS, Siri, a Shortcut or a URL.
- Browser control panelThe panel on port 9980 and the HTTP API behind it.
- Settings referenceEvery source property, plugin setting and app option.
- Latency and performanceWhat the delay is made of, and the GPU decode pipeline.
- TroubleshootingSymptom by symptom, with the log lines to look for.
Vocabulary#
Each of these means one specific thing throughout the app, the plugin and these pages.
| Setup screen | The app's first screen: pickers and Start buttons, before anything streams. |
| Live screen | The full-screen view while streaming, with the floating control panel. |
| Standby | App open and idle, OBS connected and able to start the camera. Amber. |
| Tally light | The colored border saying what the source is doing in OBS — on air, in preview, and other statuses you choose. |
| Idle view | What the Live screen becomes 10 seconds after your last touch. |
| Lip-sync reference | The 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.