rtmp_broadcaster
An extension of the Flutter camera plugin that enables live video streaming over RTMP on Android and iOS devices.
Flutter camera plugin with RTMP live streaming support for Android and iOS.
{"sdk":"flutter"}^0.3.1^2.0.13^2.9.2^0.23.2{"sdk":"flutter"}{"sdk":"flutter"}English project snapshot. Visit GitHub for the latest content.
[!IMPORTANT] Development of version 3.0 is being restarted. Expect breaking changes to the API and Android/iOS build configuration while this work is in progress.
This plugin extends the Flutter camera plugin with RTMP streaming support for Android and iOS. Web is not supported.
It follows the same API structure as the camera plugin and adds a startStreaming(url) method to initiate real-time streaming to an RTMP endpoint.
Underlying implementation:
The controller extends the camera plugin's API with the following methods:
| Function | Description |
|---|---|
startVideoStreaming(String url, {int bitrate = 1200 * 1024, bool? androidUseOpenGL}) |
Starts streaming to an RTMP endpoint |
startVideoRecordingAndStreaming(String filePath, String url, {int bitrate = 1200 * 1024, bool? androidUseOpenGL}) |
Starts streaming to an RTMP endpoint while simultaneously recording to a local file |
pauseVideoStreaming() |
Pauses the active stream |
resumeVideoStreaming() |
Resumes a paused stream |
stopEverything() |
Stops any active streaming and recording |
Add the following keys to ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>App requires access to the camera for live streaming feature.</string>
<key>NSMicrophoneUsageDescription</key>
<string>App requires access to the microphone for live streaming feature.</string>
Set minSdkVersion to 21 or higher in android/app/build.gradle.
The example app demonstrates camera preview, snapshot capture, video recording, and RTMP streaming. Clone the repository and run the app on an Android or iOS device to try it.
A local RTMP test server is available under server/, set up via Docker Compose, for testing without a public endpoint.
Report bugs or unexpected behavior via GitHub issues. Availability for support is limited; for prioritized or paid support, contact [info@emiliodallatorre.it](mailto:info@emiliodallatorre.it).
If this plugin is useful to you, consider supporting its development via Buy Me a Coffee.