rtmp_streaming 2.0.1
rtmp_streaming: ^2.0.1 copied to clipboard
A Flutter plugin for Camera and Microphone streaming library via RTMP.
2.0.1 #
- Android: Fix
Camera not initializedwhen calling encoder settings afterinitializebut beforeCameraPreviewmounts.setAudioSettings/setVideoSettings/setFrameRate/setForceBt709Color/setRtmpShouldSendPingsnow cache values and apply them when the platform view is created (and keep the cache on remount).
- Docs: Clarify Android timing for these APIs and that
CameraPreviewis still required before starting a stream.
2.0.0 #
-
Multi-protocol streaming
- Added
StreamingProtocol(rtmp/rtsp/srt/udp/whip/whep) forstartVideoStreaming. - Android (RootEncoder 2.8.0): RTMP, RTSP, SRT, UDP, WHIP.
- iOS (HaishinKit 2.2.5): RTMP, SRT; WHIP/WHEP via
RTCHaishinKit(alpha, Flutter SPM).
- Added
-
Overlay / watermark (Android + iOS)
setOverlayText/setOverlayImage/clearOverlay.- iOS: when overlay is enabled, canvas / encoder size follows portrait or landscape (avoids stretched/shrunk preview).
-
Multi-streaming (iOS only)
startMultiStreaming/stopStreamingDestination/stopMultiStreaming(WHIP/WHEP not allowed).- Example defaults to one RTMP + one SRT destination.
-
SRT URL compatibility (iOS)
SrtURLHelpersupports SRS/ZLMediaKit-style URLs such as
srt://host:10080?streamid=#!::r=live/livestream,m=publish
(#is applied viaSRTO_STREAMID, not as a URL fragment).- Clearer SRT connect error messages (
unsupportedUri/ reject reason).
-
iOS EventChannel
- Native → Flutter events are always posted on the platform (main) thread.
-
Android extras
setPitchShift(RootEncoder pitch effect;1.0disables).lockExposure/unlockExposure/isExposureLocked(after preview/stream start).- Target / toolchain updates (e.g. compileSdk 37, AGP 9.x).
-
Docs & example
- README / README_zhCN and example app updated for protocols, overlay, and iOS multi-streaming.
1.0.8 #
- Fixed an error in the prepareVideo parameter that could cause compilation errors.
1.0.7 #
-
Dependency upgrades
- iOS:
HaishinKitpod bumped from2.0.9to2.2.5(aligned with Swift Package; Xcode 26.4, multitasking camera, etc.). - Android:
com.github.pedroSG94.RootEncoder:librarybumped to2.7.5.
- iOS:
-
Cross-platform API alignment (previously iOS-only or Dart-only without native wiring)
prepareForVideoStreaming(): iOS pre-attaches audio to reduce start latency; Android no-op.getHasAudio/setHasAudio: query/set temporary mute while streaming (does not detach the mic).getHasVideo/setHasVideo: query/set temporary video mute (Android sends black frames; iOS mixer mute).setAudioSettings(bitrate): audio encoder bitrate in bps; applied on nextprepareAudio.setVideoSettings({ bitrate, ... }): video encoder settings; Android can hot-updatebitrateviasetVideoBitrateOnFlywhile live.setFrameRate(frameRate): target capture/encode frame rate (call before streaming when possible).switchAudio: now available on both Android and iOS (toggles mic capture; different fromsetHasAudio).
-
Stream statistics
StreamStatisticsaddsisVideoMuted.- iOS
getStreamStatisticsnow returnsisAudioMuted,isVideoMuted,bytesSend, etc. - Android
getStreamStatisticsaddsisVideoMuted.
-
Documentation
- README / README_zhCN updated method lists and cross-platform API usage.
1.0.6 #
- fix android issue #8 question
- update package name
1.0.5 #
-
update HaishinKit.swift to 2.2.5 fix xcode 26.4 build error
-
update com.github.pedroSG94.RootEncoder to 2.7.1
-
Documentation: Added usage notes in README / README_zhCN for the following
CameraControllermethods:- Android (RootEncoder 2.7.0+):
setForceBt709Color,setRtmpShouldSendPings— BT.709 color matrix for encoding; RTMP periodic ping for RTT (seegetStreamStatistics/rttMicroswhen pings are enabled). - iOS (HaishinKit 2.2.1+ / 2.2.2+ / 2.2.5+):
setVideoSettings— optionalexpectedFrameRate(onMetaDataframerate) andbitRateMode(average/constant/variable);setMultitaskingCameraAccessEnabled— multitasking / PiP camera access (iOS 17+ when supported).
- Android (RootEncoder 2.7.0+):
-
CHANGELOG: This entry records the above API documentation and usage guidance; behavior matches implementations added in plugin development for RootEncoder 2.7.x and HaishinKit 2.2.x.
1.0.3 #
- fix android permission bug
1.0.2 #
- update package
- fix bug not removeFilter
1.0.1 #
- update package
- add - 📸 Take snapshot during streaming:
takePicture
1.0.0 #
- Updated iOS HaishinKit to version 2.0.0 (stable release).
- Completely refactored iOS code, now managing dependencies via Swift Package Manager.
- Added numerous new methods for iOS.
- Updated examples: revised
camera.dart, removed redundant fields and duplicate methods. - Upgraded Android Gradle to 9.0, updated RTMP package to the latest version, unified return values with iOS, and improved disposal methods.
- Added filter functionality for Android.
0.0.6 #
- Updated iOS HaishinKit to version 2.0.0 (preview version, not stable, may contain bugs).
0.0.5 #
- Optimized Android example project.
- Added pause/resume recording functionality for Android.
0.0.4 #
- Fixed Android crash errors when switching cameras. Added camera switching and audio toggle features. Optimized the example project.
- Cleaned up unused methods.
0.0.3 #
- Upgraded iOS HaishinKit to version 1.9.9.
- Rewrote some deprecated methods.
0.0.2 #
- Removed redundant Android packages to reduce build size.
0.0.1 #
- Completely refactored the Android version. Upgraded Gradle and the RTMP streaming plugin
com.github.pedroSG94.RootEncoderto the latest version. - Added filters for the Android version.
- Improved deprecated methods and fixed crashes caused by camera switching on Android.
- Fixed the issue where live recording could not be captured on Android.
- Added a toggle for low-light environment settings on Android.