apivideo_live_stream 1.1.3 copy "apivideo_live_stream: ^1.1.3" to clipboard
apivideo_live_stream: ^1.1.3 copied to clipboard

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

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 #

In your pubspec.yaml file, add the following:

dependencies:
  apivideo_live_stream: ^1.1.3

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.

  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

Ensure that _controller.create() has been finished before creating the CameraPreview widget.

child: ApiVideoCameraPreview(controller: _controller),
  1. Starts a live stream
_controller.startStreaming("YOUR_STREAM_KEY");
  1. Stops streaming and preview
_controller.stop();

Manages 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 library:

Plugin README
StreamPack StreamPack
HaishinKit HaishinKit

FAQ #

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

78
likes
130
pub points
90%
popularity

Publisher

verified publisherapi.video

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

Homepage
Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, json_annotation, meta, native_device_orientation, plugin_platform_interface

More

Packages that depend on apivideo_live_stream