Skip to main content

Stream iPhone Blackmagic Camera to OBS on Mac with Local RTMP

March 10, 2026

Stream your iPhone to OBS Studio with full manual camera controls. Use OBS plugins, filters, and scenes with your iPhone camera. Keep your entire streaming setup while using iPhone as a camera source.

Stream iPhone Blackmagic Camera to OBS on Mac with Local RTMP

Your iPhone can be a professional wireless camera for OBS Studio on macOS. The Blackmagic Camera app gives you full manual controls - ISO, shutter angle, Apple Log, focus - streaming over your local network.

Note: This guide is for macOS. While the general approach works on Windows, the specific commands and paths differ.

What you’ll get:

  • iPhone camera as an OBS source - use all your plugins and filters
  • Full Blackmagic Camera app manual controls (ISO, shutter, Apple Log)
  • Keep your entire OBS streaming setup - overlays, alerts, scenes
  • Local network only (no cloud, no subscriptions)
  • Multiple camera support (add more iPhones as sources)

What you need:

  • Mac (this tutorial is macOS-specific)
  • iPhone 15 Pro or later (for Apple Log profile in Blackmagic Camera app)
  • Blackmagic Camera app (free from App Store)
  • OBS Studio 30+
  • Docker Desktop (free)
  • Same WiFi network for both devices
  • 15 minutes for setup

Note: The Blackmagic Camera app works on iPhone XR or later (iOS 17+), but Apple Log is only available on iPhone 15 Pro and later. If you want the professional color grading features, you need an iPhone 15 Pro, 15 Pro Max, or newer Pro models.

Tech stack: Docker + nginx-rtmp + Blackmagic Camera + OBS Studio

Quick Navigation: Setup | iPhone Config | OBS Setup | Troubleshooting

Why This Setup?

The key advantage: your iPhone becomes just another source in OBS. You keep your entire streaming setup - overlays, alerts, browser sources, plugins, filters, scenes. Everything you’ve built in OBS still works.

Other iPhone streaming solutions bypass OBS entirely or require expensive hardware. This gives you a wireless camera that integrates directly into your existing workflow.

The Blackmagic Camera app provides manual controls - ISO, shutter speed, white balance, focus, Apple Log. Professional camera features without professional camera prices.

No monthly fees. No cloud services. No special hardware. Just Docker, a free RTMP server, and your iPhone.

How It Works

┌──────────┐          ┌────────────────┐          ┌─────────────┐
│          │  WiFi    │                │ localhost│             │
│  iPhone  ├─────────►│  RTMP Server   ├─────────►│ OBS Studio  │
│          │  publish │  (Docker)      │  receive │             │
└──────────┘          └────────────────┘          └─────────────┘
                      Port 1935                    rtmp://localhost

The flow:

  1. Docker runs nginx-rtmp server on your Mac/PC (port 1935)
  2. iPhone publishes stream via RTMP over WiFi
  3. OBS connects to localhost and receives the stream
  4. You get full camera controls on the iPhone, live video in OBS

Note on latency: Expect several seconds of delay, especially with 4K streaming. This works fine for live streaming to platforms (YouTube/Twitch already have delay), but may not be suitable for real-time monitoring or live events where immediate feedback is needed.

Setup RTMP Server

Install Docker Desktop

Download Docker Desktop for Mac:

Install and launch it. Wait for the Docker whale icon to appear in your menu bar.

Start RTMP Server

Open Terminal and run:

docker run -d --name rtmp-server -p 1935:1935 -p 8080:8080 alfg/nginx-rtmp

What this does:

  • Downloads nginx-rtmp container (~50MB, first time only)
  • Starts RTMP server on port 1935
  • Opens stats page on port 8080
  • Runs in background (-d flag)

Verify it’s running:

docker ps

You should see rtmp-server in the list.

Check stats page (optional): Open browser to http://localhost:8080/stat - shows connected streams and bandwidth.

Configure Firewall

Allow Docker through the macOS firewall:

  1. System SettingsNetworkFirewall
  2. Click Options
  3. Find Docker or com.docker.backend
  4. Set to Allow incoming connections

Configure iPhone

Find Your Mac’s IP Address

Run this in Terminal:

ipconfig getifaddr en0

Write this down - mine is 192.168.1.143, yours will be different.

Create XML Configuration File

The Blackmagic Camera app uses XML files to configure custom RTMP servers.

Create a file called blackmagic-rtmp.xml:

<?xml version="1.0" encoding="UTF-8"?>
<streaming>
    <service>
        <name>Local OBS</name>
        <servers>
            <server>
                <name>Mac</name>
                <url>rtmp://192.168.1.143:1935/stream</url>
                <key></key>
            </server>
        </servers>
        <profiles>
            <profile>
                <name>1080p30</name>
                <config resolution="1080p" fps="30">
                    <bitrate>8000000</bitrate>
                    <audio-bitrate>128000</audio-bitrate>
                    <keyframe-interval>2</keyframe-interval>
                </config>
            </profile>
            <profile>
                <name>4K30</name>
                <config resolution="2160p" fps="30">
                    <bitrate>15000000</bitrate>
                    <audio-bitrate>128000</audio-bitrate>
                    <keyframe-interval>2</keyframe-interval>
                </config>
            </profile>
        </profiles>
    </service>
</streaming>

Replace 192.168.1.143 with YOUR computer’s IP address from the previous step.

Save this file to iCloud Drive or AirDrop it to your iPhone.

Import to Blackmagic Camera App

  1. Install Blackmagic Camera from the App Store (free)
  2. Open the app
  3. Tap Settings/Menu (gear icon)
  4. Find Streaming or Custom RTMP
  5. Tap Import Service
  6. Select the blackmagic-rtmp.xml file
  7. You’ll see “Local OBS” in your services list

Important: Make sure your iPhone is on WiFi, not cellular.

Configure OBS Studio

Add Media Source

  1. Open OBS Studio
  2. In Sources panel (bottom), click +
  3. Select Media Source
  4. Name it: iPhone Camera
  5. Click OK

Configure Media Source

Settings:

  • UNCHECK “Local File”
  • Input: rtmp://localhost:1935/stream/iphone
  • Input Format: flv (or leave as auto)
  • Reconnect Delay: 2000 ms
  • Buffering: 1000 ms
  • Hardware Decoding (if available)
  • Click OK

You’ll see a black screen for now - that’s normal. We haven’t started streaming yet.

Start Streaming

On iPhone:

  1. Open Blackmagic Camera app
  2. Select “Local OBS” service (from the XML you imported)
  3. Choose “4K30” profile (or “1080p30” for lower CPU usage)
  4. Tap the Stream button (top right)
  5. Button turns red, shows “On Air”

In OBS:

The iPhone video feed should appear instantly (1-2 second delay is normal).

Adjust as needed:

  • Resize/crop the source in OBS
  • Add to different scenes
  • Apply filters (color correction, LUTs, etc.)

Using OBS Features with iPhone Source

The power of this setup is full OBS integration. Your iPhone stream is just another media source - apply any OBS features:

OBS Filters on iPhone Stream:

  • Color Correction: Apply LUTs for color grading
  • Chroma Key: Green screen with your iPhone
  • Crop/Pad: Frame exactly what you want
  • Scaling/Aspect Ratio: Match your canvas
  • Sharpening: Enhance image quality

Mix with Other Sources:

  • Layer iPhone video with screen captures
  • Add overlays, alerts, chat widgets
  • Picture-in-picture with other cameras
  • Transition between iPhone and other scenes

Blackmagic Camera Manual Controls:

  • ISO: Full manual control (50-25600)
  • Shutter: Shutter angle (45°, 90°, 180°, 360°)
  • White Balance: Kelvin or presets
  • Focus: Manual focus with peaking
  • Apple Log: Flat color profile for maximum dynamic range (requires iPhone 15 Pro+)

Example Workflow:

  1. Enable Apple Log color profile in Blackmagic Camera app (iPhone 15 Pro+ only)
  2. Stream to OBS - flat, log footage arrives
  3. Add Color Correction filter to iPhone source in OBS
  4. Apply LUT to convert from Apple Log to Rec. 709 or your preferred look
  5. Add scene with overlays, alerts, chat
  6. Stream to Twitch/YouTube with full production setup

Advanced Setup

Multiple iPhones

To use multiple iPhones as cameras:

  1. Create separate XML files with different stream keys:

    <key>iphone1</key>  <!-- First iPhone -->
    <key>iphone2</key>  <!-- Second iPhone -->
    
  2. Import each XML to respective iPhones

  3. Add multiple Media Sources in OBS:

    • Source 1: rtmp://localhost:1935/stream/iphone1
    • Source 2: rtmp://localhost:1935/stream/iphone2

Auto-Start RTMP Server

Create a startup script to launch the server automatically.

macOS/Linux:

Save as start-rtmp.sh:

#!/bin/bash

# Check if Docker is running
if ! docker ps &> /dev/null; then
    echo "Starting Docker..."
    open -a Docker
    sleep 15
fi

# Check if container exists
if docker ps -a | grep -q rtmp-server; then
    docker start rtmp-server
else
    docker run -d --name rtmp-server -p 1935:1935 -p 8080:8080 alfg/nginx-rtmp
fi

# Get local IP
LOCAL_IP=$(ipconfig getifaddr en0)

echo "RTMP Server running"
echo "iPhone URL: rtmp://$LOCAL_IP:1935/stream"
echo "OBS URL: rtmp://localhost:1935/stream/iphone"

Make it executable:

chmod +x start-rtmp.sh

Static IP Address

Set a static IP for your Mac/PC in your router’s DHCP settings. Then you won’t need to update the XML file when your IP changes.

Troubleshooting

iPhone Says “Connection Failed”

Check these in order:

  1. Same WiFi network?

    • Both devices must be on same WiFi
    • Not 5GHz on one and 2.4GHz on the other
    • iPhone must be on WiFi, not cellular
  2. Docker running?

    docker ps
    

    Should show rtmp-server running

  3. Firewall blocking?

    • macOS: System Settings → Network → Firewall → Options
    • Allow Docker incoming connections
  4. IP address correct?

    ipconfig getifaddr en0  # Mac
    ipconfig                # Windows
    

    Update XML if IP changed

  5. Port 1935 available?

    lsof -i :1935
    

    Should show Docker listening

Black Screen in OBS

  1. Verify iPhone is streaming:

    • Check iPhone shows “On Air”
    • Check stats: http://localhost:8080/stat
  2. Check Media Source settings:

    • Right-click source → Properties
    • Input: rtmp://localhost:1935/stream/iphone
    • Try changing Input Format to flv
  3. Check RTMP server logs:

    docker logs rtmp-server
    

    Should show:

    publish: name='iphone' type=live
    
  4. Restart the source:

    • Right-click → Remove
    • Add new Media Source with same settings

High Latency / Lag

Note: RTMP inherently has several seconds of latency due to buffering and transcoding. This is normal and expected.

If latency is excessive (10+ seconds):

  1. Lower buffering in OBS:

    • Media Source Properties → Buffering: 500 ms (minimum)
  2. Reduce resolution:

    • Stream 1080p instead of 4K
    • 4K significantly increases CPU load and latency
  3. Use 5GHz WiFi:

    • Both devices on 5GHz band (faster, less interference)
  4. Check CPU usage:

    • Run docker stats rtmp-server
    • High CPU = thermal throttling = more latency
    • Consider better cooling or lower resolution

Stream Drops / Stutters

  1. Check WiFi signal strength

    • Move iPhone/router closer
    • Reduce obstacles between devices
  2. Lower bitrate

    • 5-6 Mbps is usually stable
    • 8+ Mbps needs good WiFi
  3. Close bandwidth-heavy apps

    • Stop downloads/uploads
    • Pause cloud sync
  4. Restart RTMP server:

    docker restart rtmp-server
    

Can’t Find XML File on iPhone

  • Save to iCloud Drive - accessible in Files app
  • Or AirDrop from Mac to iPhone
  • Or email it to yourself and download on iPhone

Management Commands

Daily Use

Start server:

docker start rtmp-server

Stop server:

docker stop rtmp-server

View logs:

docker logs -f rtmp-server

Check status:

docker ps

Maintenance

Restart server:

docker restart rtmp-server

Remove and rebuild:

docker stop rtmp-server
docker rm rtmp-server
docker run -d --name rtmp-server -p 1935:1935 -p 8080:8080 alfg/nginx-rtmp

Update server image:

docker pull alfg/nginx-rtmp
docker stop rtmp-server
docker rm rtmp-server
docker run -d --name rtmp-server -p 1935:1935 -p 8080:8080 alfg/nginx-rtmp

Use Cases

Live streaming (primary use case):

  • Keep your entire OBS setup - overlays, alerts, scenes, plugins
  • Stream to Twitch/YouTube/Kick with iPhone as camera source
  • Apply OBS filters and effects to iPhone stream in real-time
  • Professional look with Apple Log + LUT color grading
  • Multiple angles with multiple iPhones as different sources

Content creation benefits:

  • Mix iPhone feed with screen capture, game footage, other cameras
  • Use StreamFX, Move Transition, and other OBS plugins on iPhone stream
  • Chroma key (green screen) with iPhone camera
  • Picture-in-picture layouts with iPhone as secondary angle
  • All your StreamElements/Streamlabs integrations still work

Not recommended for:

  • Real-time monitoring (use HDMI capture instead)
  • Live events requiring immediate feedback
  • Applications where sub-second latency is critical

Why This Setup?

This is built for live streaming to platforms like YouTube and Twitch. The latency doesn’t matter when you’re already streaming with platform delay. You get professional camera controls without expensive hardware.

The Blackmagic Camera app’s manual controls matter. Auto-exposure shifts constantly. Auto white balance changes colors mid-stream. Manual locks everything down - exactly what you want when streaming.

The Blackmagic Camera app’s Apple Log profile gives 10+ stops of dynamic range. Apply a LUT in OBS, get cinematic look for your streams. Much better than standard iPhone video or cheap webcams.

Performance note: Streaming 4K will use significant CPU on the RTMP server (400%+ CPU usage observed). Consider streaming 1080p to OBS and letting your streaming encoder handle the output resolution, or ensure you have adequate cooling for sustained high CPU use.

Security Notes

This setup is local only:

  • RTMP server binds to all interfaces (0.0.0.0:1935)
  • Only accessible on your local network
  • Not exposed to internet (unless you port forward - don’t do this)
  • No authentication required (fine for home network)

If you need public access:

  • Don’t expose port 1935 directly
  • Use VPN instead (Tailscale, Wireguard)
  • Or add nginx auth in front
  • Or use a proper streaming service

For home/studio use: This setup is fine as-is.

Resources

Download Links:

RTMP Server:

Blackmagic Camera App:

  • Free from Blackmagic Design
  • Requires iOS 17+ (iPhone XR or later)
  • iPhone 15 Pro or newer required for Apple Log
  • Supports manual controls, ProRes recording, custom LUTs
  • Resolution depends on iPhone model (check app settings for available options)

Conclusion

This setup turns an iPhone into a professional wireless camera for OBS Studio. Free, local, full manual controls.

15 minutes to set up. Zero recurring costs. Works with multiple iPhones for multi-camera productions.

The Blackmagic Camera app’s manual controls make this worthwhile. Lock ISO, set custom white balance, enable Apple Log profile. Much better than auto-everything webcam apps.

If you’re streaming or recording content, you probably have an iPhone. Why buy a separate camera when this works?

Quick start:

  1. Install Docker, run RTMP container (1 command)
  2. Create XML with your computer’s IP
  3. Import to Blackmagic Camera app
  4. Add Media Source in OBS
  5. Start streaming

Using this setup? Questions? Contact me.