Creating a live broadcasting app

The main goals of the Bambuser broadcast SDKs for Android and iOS are, in order:

  • easy to integrate, with a sensible default configuration
  • low broadcasting latency
  • solid audio broadcasting
  • high video frame rate

In order to reach these goals, the SDKs offer fully automatic adaptive scaling of the broadcast video resolution, bitrate and frame rate. By automatically scaling according to the available upload bandwidth, the live broadcast quality will always be as high as the environment allows.

Broadcast lifecycle

  1. A client integrating the broadcasting library starts a broadcast.

  2. The Bambuser backend assigns a unique broadcastId to the broadcast and sends it to the client.

  3. The broadcast is registered in the Bambuser backend and is now visible in the listing APIs. The broadcast's state is now live.

The live broadcast can now be viewed by other clients or on the web.

  1. The client stops broadcasting.

  2. The backend changes the broadcast's state from live to archived.

The archived broadcast can now be viewed on-demand using the same method as when the broadcast was live.

How to start a broadcast

  1. Include the SDK in your app project.

  2. Create a broadcaster instance and configure it with your applicationId.

  3. Run your app and start broadcasting.

Supported instruction set architectures

The Bambuser SDKs for Android and iOS contain native code, optimized and compiled to machine code for specific instruction set architectures.

Android

The Bambuser SDK contains native code built for the armeabi-v7a and arm64-v8a ABIs, compatible with all modern devices and ARM emulator images.

Make sure to not build apps targeting other architectures, since the native libs will be missing for those architectures. In particular, x86 emulator images are not supported. Real x86 devices are supported, as they can translate ARM machine code.

You may need to add abiFilters to the build.gradle file for your app. For example:

android {
  defaultConfig {
    ndk {
      abiFilters 'armeabi-v7a', 'arm64-v8a'
    }
  }
}

iOS

The Bambuser SDK contains native code built for all architectures currently supported by Apple, on devices as well as the simulator.