HaishinKit Plugin

pub package

  • 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