Search packages, repositories and app categories

Package detailsv1.2.0

apivideo_live_stream

Flutter RTMP live stream client for your audio/video application. Made with ♥ by api.video.

AndroidiOS
30-day downloads
6.7K
Likes
99
Pub points
140

Install package

flutter pub add apivideo_live_stream

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter RTMP live stream client enabling real-time audio and video broadcasting in Flutter applications. Built with ❤️ by api.video, it supports seamless integration with live streaming workflows on Android and iOS. The package simplifies the setup and management of live streams using RTMP protocols, making it ideal for interactive apps like live events, webinars, or social streaming platforms. It provides a reliable foundation for developers aiming to deliver high-quality, low-latency live content.

Use cases

  • Live event broadcasting
  • Webinar streaming
  • Social media live feeds
  • Interactive video chat
  • Real-time content sharing

Key features

  • RTMP live stream support
  • Android and iOS compatibility
  • Simple integration with api.video
  • Low-latency streaming
  • Secure connection handling

Suitable for

  • Developers building live video apps
  • Teams using api.video for streaming
  • Apps requiring real-time audio/video
  • Startups launching live features
  • Mobile-first streaming solutions

Considerations

  • Requires api.video account and API key
  • Limited to RTMP protocol
  • Depends on stable internet connection
  • May need additional configuration for custom streaming settings
  • Not suitable for non-live video playback

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

badge   badge   badge

Flutter RTMP live stream client

api.video is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.

Table of contents

Project description

This module is made for broadcasting RTMP live stream from smartphone camera.

Getting started

Installation

Run the following command at the root of your project:

flutter pub add apivideo_live_stream

In your dart file, import the package:

import 'package:apivideo_live_stream/apivideo_live_stream.dart';
Permissions

To be able to broadcast, you must:

  1. On Android: ask for internet, camera and microphone permissions:

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
</manifest>

The library will require android.permission.CAMERA and android.permission.RECORD_AUDIO at runtime. You don't need to request them.

  1. On iOS: update the Info.plist with a usage description for camera and microphone

<key>NSCameraUsageDescription</key>
<string>Your own description of the purpose</string>
<key>NSMicrophoneUsageDescription</key>
<string>Your own description of the purpose</string>
Code sample
  1. Creates a live stream controller

final ApiVideoLiveStreamController _controller = ApiVideoLiveStreamController(
    initialAudioConfig: AudioConfig(), initialVideoConfig: VideoConfig.withDefaultBitrate());
  1. Initializes the live stream controller
await _controller.initialize();
  1. Adds a CameraPreview widget as a child of your view
@override
Widget build(BuildContext context) {
  return SizedBox(
      width: 300.0,
      height: 300.0,
      child: ApiVideoCameraPreview(controller: _controller));
}

ApiVideoCameraPreview parameters:

  • controller: the live stream controller
  • fit: the fit of the preview (default is BoxFit.contain, see BoxFit for more information)
  • child: a child widget to overlay on top of the preview (optional)
  1. Starts a live stream
_controller.startStreaming("YOUR_STREAM_KEY");
  1. Stops streaming and preview
_controller.stop();
Manage application lifecycle

On the application side, you must manage application lifecycle:

@override
void didChangeAppLifecycleState(AppLifecycleState state) {
  if (state == AppLifecycleState.inactive) {
    _controller.stop();
  } else if (state == AppLifecycleState.resumed) {
    _controller.startPreview();
  }
}

Example App

You can try our example app, feel free to test it.

Setup

Be sure to follow the Flutter installation steps before anything.

  1. Open Android Studio
  2. File > New > Project from Version Control

In URL field, type:

git@github.com:apivideo/api.video-flutter-live-stream.git

Wait for the indexation to finish.

Android

Connect an Android device to your computer and click on the Run main.dart button.

iOS
  1. Connect an iOS device to your computer and click on the Run main.dart button.

  2. The build will fail because you haven't set your development profile, sign your application:

Open Xcode, click on "Open a project or file" and open the YOUR_PROJECT_NAME/example/ios/Runner.xcworkspace file.
Click on Example, go in Signin & Capabilities tab, add your team and create a unique bundle identifier.

Plugins

api.video Flutter live stream library is using external native libraries:

Plugin README
StreamPack StreamPack
HaishinKit HaishinKit

FAQ

If you have any questions, ask us in the community or use issues.

Categories

Dependencies

Dependency list 4 items

Source repository

Projects using this package