Efficient tools to build your streaming infrastructure


Larix Broadcaster SDK for Android

Build live streaming Android apps with our SDK

Android
Larix Broadcaster
Softvelum Larix Broadcaster gives extended capabilities for creating content on mobile devices.
It's a freeware app however there are cases when you might want to build your own applications.
Softvelum provides SDKs for that case. Larix Broadcaster SDK for Android is one of them.

Why Larix SDK?

  • RTMP, SRT, RTSP, RIST: Larix streaming library provides ability to stream your media content via all of them. It's the best set of streaming protocols available for your mobile streaming scenarios.
  • SDK package includes source code for your reference, with full set of comments within the code. You can find out more about SDK package below.
  • New: WebRTC with WHIP signaling based on Pion.
  • Testing is crucial part of our product life cycle. Take a look at Larix Broadcaster connectivity tests for Android as example. Besides that, our SDK customers get their updates only after we make sure our free apps haven't shown any issues on larger device fleet. So it's a double quality check for our subscribed customers.
  • SDK is available on subscription basis. You pay as long as you need our software updates and technical support.

What is included into Larix Broadcaster Android SDK?

Larix Broadcaster Android SDK package has the following elements.

  • Larix Broadcaster application source code with comments for every important component and code fragment.
  • Binary libraries: libmbl (Softvelum closed-source streaming library), libsrt (official SRT Alliance library) and librist (official RIST Forum library).
  • Larix Screencaster application source code, it uses Media Projection API to capture and broadcast device screen.
  • BackgroundCamera is an advanced sample: record camera preview, broadcast from background service while running 2 instances of streamer to record HD video and broadcast SD video simultaneously; it also draws logo and text.
  • EncodeAndMuxTest sample to draw simple animation using OpenGL surface, encode and broadcast it.
  • Camera2demo sample uses Camera2 API to get preview, apply sepia filter, encode processed image and broadcast it.
  • CameraFX sample uses Camera or Camera2 API to get preview, apply filters, encode processed image and broadcast it.
  • LarixFragment from our github shows a minimal example of app which can be built with streaming library. Step-by-step guide explains the building process.
  • Getting started is a document which is provided as part of Larix Broadcaster SDK for Android. You can read it to see what you get in the SDK package and how you will start using the SDK.

Having all that you will be able to create your own apps based on Larix apps, as well as include streaming capabilities into your existing apps.

Notice on NDI support: we do not provide NDI as part of our SDKs by default. Contact us if you want to add NDI streaming capabilities into your application.

High-level overview of Larix Broadcaster

The diagram below shows the key components of our Larix Broadcaster free app and the system components it uses for its work. You can download full-size picture here

Click on elements, their respective details will be shown below the diagram.

Overview of Larix Broadcaster Android SDK

These elements represent Larix application Java source code which is available for editing.

These elements represent libmbl binary Larix streaming library Java components which perform content streaming.

These elements represent Android Java components which are used by Larix code or libmbl library.

These elements represent libmbl binary C++ components which perform content streaming.

These elements represent third-party C++ binary libraries for SRT and RIST streaming.

Application
Main class for application. Streamer can be placed into either Activity or Fragment. If Streamer instance is held by Service, then background streaming is possible.

Streamer
Main libmbl class. Binds application with libmbl Larix streamer library.

VideoListener
Handles operations related to Camera/Camera2 and binds it with libmbl Larix streamer library. Renders optional preview to preview surface. Also performs image manipulation (scaling, rotation, overlay, etc.) using OpenGL renderer.

VideoEncoder
Handles operations related to encoding video frames to AVC/HEVC. Uses MediaCodec that wraps hardware encoder of device.

Camera
Please refer to Android docs on Camera for details.

Camera2
Please refer to Android docs on Camera2 for details.

MediaCodec
Please refer to Android docs on MediaCodec for details.

AudioListener
Handles operations related to audio capture and binds it with libmbl Larix streamer library.

AudioRecord
Please refer to Android docs on AudioRecord for details.

AudioEncoder
Handles operations related to encoding audio frames to AAC. Uses MediaCodec to perform encoding.

MediaCodec
Please refer to Android docs on MediaCodec for details.

StreamRecorder
Writes compressed data to file using MediaMuxer.

MediaMuxer
Please refer to Android docs on MediaMuxer for details.

RTMPConnection
Sends data to server over RTMP protocol.

RTSPConnection
Sends data to server over RTSP protocol.

TcpConnection
An abstraction over Socket and SocketChannel. Java's SSLEngine is used for the SSL encryption.

SocketStream
Please refer to Java documentation for details.

SSLEngine
Please refer to Java documentation for details.

Mpeg2TsMuxer
Wraps data into 188-bytes MPEG2TS packets.

SrtConnection
Sends MPEG2TS data over SRT protocol using libsrt.

RistConnection
Sends MPEG2TS data over RIST protocol using librist.

libsrt
SRT library by SRT Alliance for streaming over SRT protocol.

librist
RIST library by RIST Forum for streaming over RIST protocol.



Larix Talkback and Larix Player SDK

Notice that Talkback for Larix Broadcaster functionality requires two SDKs for its functional availability: Larix Broadcaster SDK and Larix Player SDK. If you don't have Player SDK then you will not be able to use Talkback functionality after building your Larix-based app.
The playback library included by default in Broadcaster SDK package is a stub which does not provide any playback output.

Once you subscribe for Player SDK, you can replace it with the library from the Player package and build Larix app with Talkback feature set.

Related resources

  • Larix SDK FAQ has most popular questions about our mobile streaming technologies and some of the popular questions about SDK purchase and usage.
  • SDK releases history page shows currently available SDKs and their revision history. It helps customers who previously purchased SDK to decide whether they should subscribe to get updates.
  • Documentation reference page has a list of articles and videos about apps' setup and usage.
  • Contact our helpdesk regarding our mobile technologies.

Get Larix SDK

To obtain Larix Broadcaster SDK, contact us for more details.

Contact us

Download free apps

You can always test all features in action via our apps.
Larix Broadcaster
Get it on Google Play
Larix Screencaster
Get it on Google Play

This product uses SRT library distributed under MPL-2.0 license.
This product uses librist library distributed under BSD 2-clause "Simplified" license.
iOS Larix Broadcaster uses Scrollable Segmented Control distributed under MIT license.

This software uses libuvc library and libusb libraries.This software is based in part on the work of the Independent JPEG Group.
This software uses Mbed TLS library distributed under Apache-2.0 license. Library source code is available at github repo.