MacStream brings source setup, layout, streaming controls, and live health into one native macOS workspace. Compose a screen or window with your camera and microphone, then send exactly what you see in the preview to one or more streaming services.
Early release: MacStream is under active development and uses
0.xversioning. Test your complete setup with a private stream before an important broadcast, and keep a fallback available for critical events.
- Native capture: Stream a display or individual window alongside built-in, external, or Continuity cameras.
- Flexible layouts: Use split-screen presets, picture-in-picture, or a freely positioned presenter overlay.
- Presenter Cutout: Use on-device person segmentation to remove the webcam background and place the presenter over shared content. Cutout is experimental; edge quality depends on the camera, lighting, movement, and background.
- Direct canvas editing: Select, drag, resize, crop, zoom, and pan sources in the preview.
- Custom scenes: Adjust source framing, padding, gaps, corner radius, background colors, and background images.
- Multi-destination streaming: Publish the same output to as many as three RTMP or RTMPS destinations simultaneously.
- Local recording: Save the composed output while streaming, or record it independently.
- Output controls: Choose resolution, frame rate, preview quality, and a capture-performance profile.
- Live diagnostics: Monitor microphone level, connection state, network throughput, dropped frames, audio/video timing, and reconnect attempts.
- Private credentials: Stream keys are stored in the macOS Keychain and redacted from the interface, logs, and exported reports.
| Area | Current support |
|---|---|
| Streaming | RTMP and RTMPS using a server URL and stream key |
| Service presets | Twitch, YouTube, Facebook, Kick, X, and custom RTMP |
| Video | H.264 at 720p, 1080p, 2K, or 4K |
| Frame rate | 24, 30, or 60 FPS |
| Audio | AAC |
| Recording | QuickTime .mov with the same composed output |
Available resolution and frame rate combinations are not a guarantee that every Mac, camera, network, or streaming service can sustain them. MacStream currently uses stream keys and does not sign in to streaming-platform accounts.
- Download the latest
.dmgfrom GitHub Releases. - Open the disk image and drag
MacStream.appintoApplications. - Launch MacStream and grant access to the camera, microphone, and screen sources you intend to use. Denied permissions can be changed later in System Settings > Privacy & Security.
- Choose your sources and arrange the output from the Layout tab.
- Add the server URL and stream key supplied by your streaming service, run a private test, and go live.
Official releases are signed with Developer ID, notarized by Apple, and include published SHA-256 checksums. MacStream can install subsequent signed updates through its built-in updater.
- Apple silicon Mac
- macOS 26 or later
- Camera, Microphone, and Screen Recording permissions as required by your setup
- An RTMP or RTMPS server URL and stream key for livestreaming
MacStream currently targets the macOS 26 SDK and APIs. Earlier macOS versions and Intel Macs are not supported.
- Camera, microphone, and screen capture are processed on the Mac.
- Captured media is sent only to the streaming servers you configure.
- MacStream has no account system, advertising SDK, product analytics, or telemetry service.
- Stream keys are stored in the macOS Keychain. macOS may request Keychain approval when a key is first saved or accessed.
- Recordings and exported reports are written under
~/Movies/MacStream. - Update checks read the public MacStream update feed hosted on GitHub.
The project is focused on live capture, composition, publishing, and optional recording. It is not a post-production video editor or a replacement for a full broadcast automation suite.
Bug reports and focused contributions are welcome in GitHub Issues.
Building MacStream requires Xcode with Swift 6 and the macOS 26 SDK.
git clone https://github.com/moinulmoin/macstream.git
cd macstream
MAC_STREAM_ENABLE_HAISHINKIT=1 swift build
swift test
MAC_STREAM_ENABLE_HAISHINKIT=1 ./script/build_and_run.shRunning swift build without the environment variable creates a smaller
development build without the RTMP publishing dependency. Official downloads
include RTMP publishing.
To create a local application bundle:
MAC_STREAM_ENABLE_HAISHINKIT=1 ./script/package_macos_app.shMacStream is licensed under the GNU Affero General Public License v3.0.

