- Real-time Video Broadcasting: Stream camera feed over local network
- Audio Support: Broadcast microphone audio alongside video
- Individual Controls: Toggle video and audio independently
- Web Browser Access: View stream in any modern web browser
- Protocols: MJPEG
- Modern UI: Clean, intuitive SwiftUI interface
- Network Discovery: Automatic local IP address detection
- Low latency (< 100ms)
- Native browser support
- Best for real-time applications
- No special software required
The app consists of several key components:
- CameraManager: Handles camera setup, permissions, and video/audio capture
- BroadcastManager: Coordinates broadcasting services
- HTTPServerManager: Serves web interface for browser access
- Build and run the app on your iOS device
- Grant camera and microphone permissions when prompted
- Tap the broadcast button to start streaming
- Note the displayed URL (e.g.,
http://192.168.1.100:8080
)
- Open any web browser on a device connected to the same network
- Navigate to the broadcast URL shown in the app
- Click "Connect" to establish connection
- View the live camera feed
- Video Toggle: Enable/disable video broadcasting
- Audio Toggle: Enable/disable audio broadcasting
- Broadcast Toggle: Start/stop the broadcast server
- Settings: Configure quality settings
- Port 8080: HTTP server for web interface and MJPEG stream
- Camera access for video capture
- Microphone access for audio capture
- Chrome (recommended)
- Firefox
- Safari
- Edge
- Xcode 15.0+
- iOS 15.4+
- Swift 5.9+
- Open
iP-Cam.xcodeproj
in Xcode - Select your iOS device as the target
- Build and run the project
- The app only broadcasts on your local network (for now...)
- Consider firewall settings for production use
- Can't see the stream: Ensure both devices are on the same network
- Permission denied: Check camera/microphone permissions in Settings
- Connection failed: Verify firewall settings and port availability
- Poor quality: Adjust quality settings in the app
- Ensure your router allows local network communication
- Check that ports 8080 is not blocked
- Multiple camera support
- Recording capabilities
- Motion detection
- Push notifications
- Cloud storage integration
- Multi-client support
- Quality adjustment based on network conditions
- Authentication system
This project is provided as-is for educational and personal use.
Feel free to submit issues and enhancement requests!