LensLink

Install

Both halves are required: the plugin in OBS, the app on the phone. For just the steps that match your setup, use the setup guide.

Requirements#

Download page

The plugin#

Restart OBS after any of these. Sources → + should then offer LensLink Camera and LensLink Screen.

Windows#

Run LensLink-installer-windows-x64.exe. It finds your OBS folder and removes any pre-1.0 copy of the plugin.

Manual alternative: unzip lenslink-windows-x64.zip into C:\Program Files\obs-studio\, merging the obs-plugins and data folders.

macOS#

Open LensLink-installer-macos-universal.pkg. The package isn't notarized, so the first time you need right-click → Open. The build is universal — Apple silicon and Intel.

From the zip instead? Extract into ~/Library/Application Support/obs-studio/plugins/ and clear the quarantine flag, or OBS will refuse to load it:

xattr -dr com.apple.quarantine \
  ~/Library/Application\ Support/obs-studio/plugins/lenslink.plugin

Linux#

tar -xzf lenslink-linux-x86_64.tar.gz -C ~/.config/obs-studio/plugins/

If the plugin doesn't appear and the log says libavcodec.so.60: cannot open shared object file, you're on a release before 1.8, whose tarball linked the build machine's FFmpeg. Update, or build from source.

From source#

Full instructions: obs-plugin/BUILDING.md. On a Debian-family system:

sudo apt install cmake build-essential pkg-config \
     libobs-dev libavcodec-dev libavutil-dev qt6-base-dev

cd obs-plugin
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

qt6-base-dev is optional: it adds the status-bar readout and the dockable panel. Everything else builds without Qt.

The app#

Join at testflight.apple.com/join/N7Rth6m3. Updates arrive on their own and Siri phrases work.

Sideloading#

Install LensLink-unsigned.ipa from the latest release with Sideloadly or similar.

Two Apple limits come with this route. A free Apple ID expires sideloaded apps after 7 days — re-install to refresh; settings are kept.

Re-signing also rewrites the bundle ID, which orphans the compiled Siri phrase data: "Hey Siri, start streaming with LensLink" gets a generic refusal even though the same action works from Shortcuts. Use lenslink://start in a Shortcut, or use TestFlight.

Xcode#

No .xcodeproj is checked in; XcodeGen generates it.

brew install xcodegen
cd ios-app && xcodegen generate && open LensLink.xcodeproj

Signing and older-Xcode notes: ios-app/BUILDING.md.

What differs by operating system#

The app, the protocol and every camera feature are identical wherever OBS runs. What changes is how the plugin reaches the phone over USB and how it gets decoded frames onto the GPU.

WindowsmacOSLinux
USB needs iTunes, for the Apple Mobile Device Service Nothing — built into the OS The usbmuxd daemon. Most desktop distributions ship it for phone access; install the usbmuxd package if the source reports no device.
Hardware decoding D3D11VA, then DXVA2 VideoToolbox VAAPI, then VDPAU
GPU pipeline needs Windows 10 1909+ macOS 13+ OBS on EGL, plus a VAAPI driver
10-bit on the GPU pipeline Yes, as P010 No — VideoToolbox converts to 8-bit itself, so HDR renders through the standard path Yes, as P010

Everything else — resolutions, codecs, HDR and Apple Log capture, the green screen, lip sync, remote start, the browser panel — is decided on the phone or in shared code, and behaves the same on all three.

Updating#

Run the new plugin installer over the old one and restart OBS; the app updates through TestFlight, or by re-installing the new .ipa. The two halves negotiate a protocol version, so a slightly older app and a newer plugin keep working — if a release ever needs both sides, its notes say so.

Uninstalling#