HaishinKit.swift
Camera and Microphone streaming library via RTMP and SRT for iOS, macOS, tvOS and visionOS.
Install / Use
/learn @HaishinKit/HaishinKit.swiftREADME
HaishinKit for iOS, macOS, tvOS, visionOS and Android.
- Camera and Microphone streaming library via RTMP and SRT for iOS, macOS, tvOS and visionOS.
- 10th Anniversary🎖️In development for 10 years, with 2,778 commits and 163 releases. Thank you. Since Aug 2, 2015.
💖 Sponsors
Do you need additional support? Technical support on Issues and Discussions is provided only to contributors and academic researchers of HaishinKit. By becoming a sponsor, I can provide the support you need.
Sponsor: $50 per month: Technical support via GitHub Issues/Discussions with priority response.
🎨 Features
- Protocols ✨Publish and playback feature are available RTMP, SRT and WHEP/WHIP(alpha).
- Multi Camera access ✨Support multitasking camera access.
- Multi Streaming ✨Allowing live streaming to separate services. Views also support this, enabling the verification of raw video data.
- Strict Concurrency ✨Supports Swift's Strict Concurrency compliance.
- Screen Capture ✨Supports ReplayKit(iOS) and ScreenCaptureKit(macOS) api.
- Video mixing ✨Possible to display any text or bitmap on a video during broadcasting or viewing. This allows for various applications such as watermarking and time display. |Publish|Playback| |:---:|:---:| |<img width="961" alt="" src="https://github.com/user-attachments/assets/aaf6c06f-d2de-43c1-a435-90907f370977">|<img width="849" alt="" src="https://github.com/user-attachments/assets/0a07b418-aa56-41cb-8e6d-e12596b25ae8">|
🌏 Requirements
Development
|Version|Xcode|Swift| |:----:|:----:|:----:| |2.2.0+|26.0+|6.0+| |2.1.0+|16.4+|6.0+|
OS
|iOS|tvOS|Mac Catalyst|macOS|visionOS|watchOS| |:-:|:-:|:-:|:-:|:-:|:-:| |15.0+|15.0+|15.0+|12.0+|1.0+|-|
- SRTHaishinKit is not avaliable for Mac Catalyst.
📖 Getting Started
[!IMPORTANT] There are several issues that occur when connected to Xcode. Please also refer to this document.
🔧 Examples
- Reference implementation app for live streaming
publishandplayback. - If an issue occurs, please check whether it also happens in the examples app.
Usage
You can verify by changing the URL of the following file. https://github.com/HaishinKit/HaishinKit.swift/blob/abf1883d25d0ba29e1d1d67ea9e3a3b5be61a196/Examples/Preference.swift#L1-L7
Download
git clone https://github.com/HaishinKit/HaishinKit.swift.git
cd HaishinKit.swift
open Examples/Examples.xcodeproj
🔧 Installation
Using Swift Package Manager
https://github.com/HaishinKit/HaishinKit.swift
🔧 Prerequisites
AVAudioSession
Make sure you setup and activate your AVAudioSession iOS.
import AVFoundation
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker, .allowBluetooth])
try session.setActive(true)
} catch {
print(error)
}
🔧 Cocoa Keys
Please make sure to contains Info.plist the following values when accessing the camera or microphone.
<key>NSCameraUsageDescription</key>
<string>your usage description here</string>
<key>NSMicrophoneUsageDescription</key>
<string>your usage description here</string>
📃 Documentation
🌏 Related projects
Project name |Notes |License ----------------|------------|-------------- HaishinKit for Android.|Camera and Microphone streaming library via RTMP for Android.|BSD 3-Clause "New" or "Revised" License HaishinKit for Flutter.|Camera and Microphone streaming library via RTMP for Flutter.|BSD 3-Clause "New" or "Revised" License
📜 License
BSD-3-Clause
Related Skills
node-connect
325.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
80.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
325.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
80.2kCommit, push, and open a PR
