Media Streaming Libraries for Native Android Applications


Introduction

This page is only about native Android libraries. If you're looking for Xamarin solution then refer to our dedicated Xamarin page for details.

Android has a standard API for a certain set of streaming protocols, e.g. RTSP and HLS. However, built-in streaming protocols usually provide limited functionality and are not usable in many corner cases. Besides, it means that all those who use these protocols will have very close set of functions in their software products, so if you wish to make your product any different from the other video streaming Android apps, you need to consider and use something else.

VASTreaming not only offers the streaming protocols not present in the standard Android API, such as RTMP, but also provides extended and flexible implementation of already existing protocols, such as HLS and TS.

Streaming Server

Streaming server is an easy to use, all-in-one solution for a server application tailored to customer needs. Only single-protocol RTMP server for Android is available for native Android at the moment. Server can be scaled to work on a low performance devices, such as low-end smartphones.

See server library page for more details about the available features as well as our implementation details and specifics.

Capture

Our streaming and writing libraries come together with flexible and easy configurable media capture and encoding libraries for Android. If you only need to capture built-in or attached camera/mic then our libraries already have all the necessary functionality for that.

See capture library page for more details about the available features as well as our implementation details and specifics.

Playback

Playback client for Android, suitable for both off-screen and on-screen reception, allows you to receive and watch live streams via any modern streaming protocol. On-screen reception is provided as an UI component, specific for each platform, along with video and audio decoders and renderers. Off-screen reception can be used to obtain original compressed frames received from remote peer as well as it provides the ability to decode frames and get uncompressed data for further processing in user code.

See playback library page for more details about the available features as well as our implementation details and specifics.

RTMP Protocol

RTMP is an old protocol, owned by Adobe and tightly bound to Flash technology from the very beginning of its existence. Even though Flash has been deprecated after dominating over the content rich web for many years, RTMP is still alive. It is due to the fact that RTMP supports so-called publishing when a live media stream is pushed by a client to a server for further distribution. Many modern protocols lack this publishing feature.

Starting from the Flash days, existing server infrastructure still uses RTMP and will be using it for a long time. YouTube, Facebook, Twitch - you name it, all of them use RTMP ingestion for live streams. If a future app is expected to provide their user with a feature of publishing video streams in social networks, it should use RTMP. Therefore, investing into a RTMP library is not a waste of money but quite the opposite. In fact, it guarantees the compatibility with most popular content distribution networks.

VASTreaming RTMP library for Android provides the ability to publish a live stream to RTMP server, pull and watch a stream from RTMP server as well as run RTMP server with the ability to ingest published streams and re-distribute streams to connected clients.

See RTMP library page for more details about the protocol itself as well as our implementation details and specifics.

WebRTC Protocol

VASTreaming WebRTC wrapper for Android utilizes Google's native implementation of WebRTC protocol and provides WebRTC communication for Android application. Custom signaling HTTP/HTTPS server is also available.

Supported one-way media data flow, i.e. broadcasting to one or more peers as well as two-way media data flow, i.e. peers exchange media data.

See WebRTC library page for more details about the protocol itself as well as our implementation details and specifics.

MP4 Files

VASTreaming MP4 reader and writer library for Android is a flexible and highly configurable library to read and write MP4 files and MP4 fragments. If you are not satisfied with the functionality of the standard MP4 reader/writer on Android, then this library is for you. MP4 file reader and writer for Android can be easily paired with our streaming clients and servers to provide either streaming source or streaming sink (recording) functionality.

See MP4 library page for more details about our implementation.

Video Processing

VASTreaming image library for Android provides the ability to mix multiple video, image and text sources into a single output stream in realtime.

The video mixer is available for client applications, e.g. for capture and publishing to a server. In such scenario, user controls the library via its own code.

But the mixer is also available for server applications and can be a part of our multi-protocol server. In this case, it can be controlled via a user code or via JSON API.

See this page for more details about the available features as well as our implementation details and specifics.

Audio Processing

VASTreaming audio library for Android provides the ability to mix multiple audio sources into a single output stream in realtime.

The audio mixer is available for client applications, e.g. for capture and publishing to a server. In such scenario, user controls the library via its own code.

But the mixer is also available for server applications and can be a part of our multi-protocol server. In this case, it can be controlled via a user code or via JSON API.

See this page for more details about the available features as well as our implementation details and specifics.

Decoding and Encoding

VASTreaming always relies on native media frameworks available on each supported platform. On Android it's android.media.MediaCodec.

See this page for more details about the available features as well as our implementation details and specifics.

Implementation

VASTreaming streaming library for Android is available in pure Java for maximum compatibility and the easiest integration into existing Android Studio projects. Although some parts are written in C++ to be built with NDK.

For customer needs, any custom streaming features could be easily implemented with this library, including the protocol extensions.

Don't hesitate to contact us to request a demo applications and a demo projects.

contact us

info@vastreaming.net