Turn your mobile phone (iPhone or Android) into a high-quality, ultra-low latency wireless camera feed for OBS Studio – no external application installations or account creations required.
Chromium browsers (used inside OBS Studio's Browser Sources) block secure features like WebRTC when loaded over self-signed HTTPS certificates. At the same time, mobile browsers require secure HTTPS contexts (getUserMedia) to access the physical cameras.
This project solves this dilemma using a Dual-Port HTTP/HTTPS Server architecture:
flowchart TD
subgraph PC ["PC Host"]
DB[Control Dashboard<br>http://localhost:8001]
OBS[OBS Browser Source<br>http://localhost:8001/obs]
Srv[Dual-Port Python Server]
end
subgraph Phone ["Mobile Phone"]
Cam[Phone Camera Page<br>https://IP:8000/camera]
end
%% Signaling
Cam -- 1. Sends SDP Offer / ICE Candidates (HTTPS:8000) --> Srv
OBS -- 2. Polls Offer & Responds with Answer (HTTP:8001) --> Srv
%% Direct WebRTC
Cam <== 3. Peer-to-Peer WebRTC Stream (Low Latency) ==> OBS
- Port 8000 (HTTPS): Runs over secure SSL so that mobile browsers allow camera access. The phone loads the page and captures the camera stream.
- Port 8001 (HTTP): Runs over plain HTTP for OBS Studio. Since it is loaded from
localhost, Chromium considers it a secure context and allows WebRTC without certificate checks. - Both ports share the signaling state in memory, establishing a direct WebRTC stream between your phone and OBS.
- Python 3.7+ installed.
- PC and Phone must be connected to the same Wi-Fi network.
- Clone this repository to your PC.
- Double-click the
start.batfile. (This script automatically installs the requiredcryptographylibrary, generates local SSL certificates, and starts the server). - Open your PC browser at http://localhost:8001 to access the Control Dashboard.
- Scan the QR Code displayed on the PC Dashboard (or enter the generated link, e.g.,
https://<PC-IP>:8000/camera). - Accept the self-signed SSL warning on your phone (see SSL Bypass Guide below).
- Allow camera/microphone access permissions.
- Press the green Start Stream button.
- Copy the OBS Browser Source URL from the PC Dashboard (
http://localhost:8001/obs). - In OBS Studio, click + in the Sources panel, and select Browser.
- Paste the URL into the URL field.
- Set Width: 1920 and Height: 1080 (or switch them for portrait mode).
- Click OK. The low-latency camera stream will appear instantly!
Because the SSL certificates are generated locally on your PC, mobile browsers will show a privacy warning. You must bypass this once:
- iOS (Safari):
- Tap Show Details at the bottom of the warning screen.
- Tap "visit this website" at the bottom.
- Tap Visit Website and verify using your passcode or Face ID.
- Android (Chrome / Samsung Internet):
- Tap the Advanced button.
- Tap "Proceed to (unsafe)" at the bottom.
You can customize the ports by running server.py directly from your command line:
python server.py --https-port 9000 --http-port 9001--https-port: Port for the secure camera input (Default:8000)--http-port: Port for the plain OBS Browser Source / Dashboard (Default:8001)
This project is open-source software licensed under the MIT License.