HaishinKit Plugin
- A Flutter plugin for iOS, Android. Camera and Microphone streaming library via RTMP.
Note
This project is being developed with the goal of defining a Flutter interface for HaishinKit. However, since development is progressing slowly, I recommend using other plugins if you need something stable or are in a hurry.
| Android | iOS | macOS | |
|---|---|---|---|
| Support | SDK 21+ | iOS 15.0+ | 12.0+ |
💖 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, we can provide the support you need.
Sponsor: $50 per month: Technical support via GitHub Issues/Discussions with priority response.
💬 Communication
- GitHub Issues and Discussions are open spaces for communication among users and are available to everyone as long as the code of conduct is followed.
- Whether someone is a contributor to HaishinKit is mainly determined by their GitHub profile icon. If you are using the default icon, there is a chance your input might be overlooked, so please consider setting a custom one. It could be a picture of your pet, for example. Personally, I like cats.
- If you want to support e-mail based communication without GitHub.
- Consulting fee is $50/1 incident. I'm able to response a few days.
🎨 Features
- Protocols ✨Publish and playback feature are available RTMP.
- Multi Streaming ✨Allowing live streaming to separate services. Views also support this, enabling the verification of raw video data.
- 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.
🌏 Dependencies
| Project name | Notes | License |
|---|---|---|
| HaishinKit for iOS, macOS and tvOS. | Camera and Microphone streaming library via RTMP, HLS for iOS, macOS and tvOS. | BSD 3-Clause "New" or "Revised" License |
| HaishinKit for Android. | Camera and Microphone streaming library via RTMP for Android. | BSD 3-Clause "New" or "Revised" License |
🔧 Setup
Please contains macos/Runner/Info.plist and ios/Runner/Info.plist files.
<key>NSCameraUsageDescription</key>
<string>your usage description here</string>
<key>NSMicrophoneUsageDescription</key>
<string>your usage description here</string>
Please contains macos/Runner/Debug.Entitlements and macos/Runner/Release.Entitlements files.
<key>com.apple.security.device.audio-input</key>
<true />
<key>com.apple.security.device.camera</key>
<true />
🔧 Develop
Use freezed for development. When creating data classes, please try running the following command.
flutter pub run build_runner build --delete-conflicting-outputs
🐾 Example
An example project is available for both iOS and Android. https://github.com/HaishinKit/HaishinKit.dart/tree/main/example
📜 License
BSD-3-Clause
Libraries
- haishin_kit
- src/haishin_kit/method_channel_haishin_kit
- src/haishin_kit/platform_interface_haishin_kit
- src/haishin_kit/video_gravity
- src/media_mixer/audio_mixer_settings
- src/media_mixer/audio_source
- src/media_mixer/media_mixer
- src/media_mixer/media_mixer_exception
- src/media_mixer/media_mixer_options
- src/media_mixer/method_channel_media_mixer
- src/media_mixer/platform_interface_media_mixer
- src/media_mixer/video_mixer_settings
- src/media_mixer/video_source
- src/screen_object/horizontal_alignment
- src/screen_object/image_screen_object
- src/screen_object/method_channel_screen
- src/screen_object/platform_interface_screen
- src/screen_object/screen
- src/screen_object/screen_object
- src/screen_object/screen_object_container
- src/screen_object/screen_object_edge_insets
- src/screen_object/screen_object_size
- src/screen_object/screen_object_snapshot
- src/screen_object/screen_renderer
- src/screen_object/text_screen_object
- src/screen_object/vertical_alignment
- src/screen_object/video_screen_object
- src/stream_session/audio_codec_settings
- src/stream_session/av_capture_session_preset
- src/stream_session/method_channel_stream_session
- src/stream_session/platform_interface_stream_session
- src/stream_session/stream_session
- src/stream_session/stream_session_exception
- src/stream_session/stream_session_mode
- src/stream_session/stream_session_ready_state
- src/stream_session/stream_session_view_texture
- src/stream_session/stream_session_view_texture_snapshot
- src/stream_session/video_codec_settings