Screen mirroring
LensLink Screen receives an iOS screen broadcast — the whole screen with its audio, from any app — encoded in HEVC.
Setting it up#
-
Add the source in OBS
Sources → + → LensLink Screen, then point it at the phone exactly as you would a camera source.
-
Start the broadcast on the phone
Screen mirror → Start screen broadcast, choose LensLink Screen, tap Start Broadcast. iOS requires its own picker here.
-
Leave the app
Unlike the camera, a broadcast keeps running across apps — that's the point of it.
Each source type accepts only its own stream. Mismatch one and the Status field says which source to switch to, rather than showing nothing.
Audio#
- App and system audio comes through — game sound, browser video, app effects.
- DRM-protected audio is muted by iOS during any broadcast (Apple Music, Spotify, Netflix). That applies to every broadcast extension on the platform; LensLink can't opt out.
- Your microphone is not sent. Mic yourself in OBS. (The camera source can carry the phone's mic; this one deliberately doesn't.)
To hear it rather than only record it, set the source's Audio Monitoring to Monitor and Output in OBS's Advanced Audio Properties.
Locking the source size#
A mirror reports whatever resolution iOS is broadcasting, and that changes between apps and orientations — so the source can resize mid-stream and disturb your layout. Pin it to a fixed box:
- Right-click the source → Transform → Edit Transform…
- Set Bounding Box Type to Scale to inner bounds ("Fit").
- Give the bounding box the size you want the mirror to occupy.
What the Screen source doesn't have#
No camera controls and no browser panel — there's nothing to zoom or focus. Its properties are the connection, decoding and diagnostics.
Sharing one phone between two sources#
A phone feeds one source at a time. Enable Disconnect when this source isn't shown anywhere on both and a hidden source releases the phone, so switching scenes hands the device over.
When the broadcast will not connect#
The broadcast extension is a separate process, so its failures are hard to see. The app checks it directly:
- Screen mirror tools → Check broadcast link, while a broadcast is running: it verifies the extension is alive, independent of OBS.
- Failing on a sideloaded build usually means re-signing broke the extension — a known consequence of rewriting bundle IDs. TestFlight builds are unaffected.
- Passing while OBS shows nothing means the connection is at fault: see Reading the Status field.