Media Streaming Libraries for Xamarin.Forms, Xamarin.Android and Xamarin.iOS


Introduction

Xamarin provides a unique possibility to re-use the same codebase for multiple platforms simultaneously. VASTreaming offers the streaming library for all platforms supported by Xamarin. Library can be used for platform specific project as well as in Xamarin.Forms in completely abstract fashion, hiding any device specific implementation.

Streaming Server

Streaming server for Xamarin is an easy to use, all-in-one solution for a server application tailored to customer needs. There are both single and multi-protocol servers available. Server can be scaled to work on a high performance environment, such as cloud streaming server, as well as on a very low performance devices, such as Raspberry Pi.

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 Xamarin. 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 Xamarin, 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 Xamarin 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.

RTSP and RTP Protocols

RTP and RTSP are among the oldest streaming protocols. But they are still actively used because of such protocol features as low latency (in regard of RTP) and support of so-called publishing (in regard of RTSP) when a live media stream is pushed by a client to a server for further distribution. Many modern protocols lack this publishing feature, because already created ones work well enough covering all needs for video streaming software development.

RTSP found wide adoption in security while RTP is actively used in VoIP. Even the relatively fresh WebRTC utilizes RTP as a media transport. So, there is no lack of applications for both RTSP and RTP protocols. Their wide popularity guarantees wide compatibility for new software products using them.

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

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

HLS Protocol

HLS was developed by Apple and earned its widespread popularity due to a relative simplicity and most of all because of the usage of the HTTP as a transport protocol. This simple decision allowed streaming reception in every location where the web is available. However, HLS has its own limitations and the biggest drawback is the protocol’s one-way direction: there is no method specified to publish a stream to HLS server. Despite of that for now HLS is among the most used streaming protocols and supported natively on many platforms.

The wide popularity of HLS guarantees wide compatibility for new software products using them.

VASTreaming HLS library for Xamarin provides the ability to pull and watch the stream from a server as well as run HLS server.

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

MPEG-DASH Protocol

VASTreaming MPEG-DASH library for Xamarin allows creating MPEG-DASH server to distribute streams to connected clients. Another protocols (such as RTMP or RTSP) can be used to ingest the live stream. Based on the server hardware configuration, it can serve from hundreds to tens of thousands of simultaneous connections.

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

SRT Protocol

SRT is a brand new protocol with promising capabilities. VASTreaming is working on our own in-house implementation of SRT protocol which is expected to be released later this year.

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

Other Streaming Protocols

In addition to widely used protocols, VASTreaming provides a number of niche protocols suitable for very limited scenarios but highly valuable for those who need them.

See this page for more details about these protocols as well as our implementation details and specifics.

MP4 Files

VASTreaming MP4 reader and writer library for Xamarin 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 Windows, Android, iOS, or macOS, then this library is for you. MP4 file reader and writer for Xamarin 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.

TS Protocol and Files

Transport stream (TS) is not a streaming protocol but a media format most suitable for streaming or media transmission systems. HLS as well as other protocols, most notably MPEG-DASH, utilizes TS for media data segments. In addition to that, TS itself can be used for direct streaming via multicast or even via pushing it by HTTP server (so-called TS over HTTP).

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

Playlists and File Tools

If user wants to present multiple files as a single seamless source and/or to use only a part of a file, then one can utilize a playlist feature for that purpose.

Also VASTreaming library for Xamarin provides user with several utilities for manipulating mp4 files directly from a user code.

See this page for more details about our file related features as well as our implementation details and specifics.

Other File Formats

VASTreaming library for Xamarin provides readers and writers for a number of other file formats.

See this page for more details about these formats as well as our implementation details and specifics.

Video Processing

VASTreaming image library for Xamarin 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 Xamarin 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.

If a user uses VASTreaming libraries to implement two-way communication, then the echo cancellation requirement arises immediately. VASTreaming satisfies this need with the echo cancellation feature. For now the feature is only available for Windows and Xamarin.Android but can be extended to other platforms by customer request.

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 Windows it's Media Foundation. On iOS and macOS it's AVFoundation. On Android it's android.media.MediaCodec. On Linux encoding and decoding is not supported at the moment.

In addition to that, to support wider range of codecs, the library also allows user to utilize FFmpeg.

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

Implementation

VASTreaming streaming library for Xamarin is written in C# for maximum compatibility and easiest integration into existing Visual Studio solutions.

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

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

contact us

info@vastreaming.net