Libraries consist of multiple modules (assemblies). This architecture allows developers to use only what is really needed for an optimal solution. Most of assemblies are platform independent:
Common contains basic functions used in all libraries.
Audio contains signal processing functions such as echo cancellation.
Codec contains some audio codecs, implemented in C#, and a wrapper for FFmpeg encoders and decoders under .NET.
MPEG-DASH implements a MPEG-DASH server.
File.ISO implements ISO-14496 part 12 file format, an MP4 container. File reader and writer are available.
File assembly provides such functions as:
HLS implements an HLS server, including low latency LL-HLS protocol.
Image assembly provides:
Network - a multiprotocol streaming server operating, implementing various network protocols simultaneously. Streaming server exposes JSON API and can be controlled remotely. Also, the module contains mixing source, able to mix multiple other sources into a single output video and audio stream.
RTMP assembly provides RTMP client, publisher, and server functionality.
RTSP - RTSP client, publisher, and server. There is also RTP protocol implementation, which is utilized by RTSP as well as can be used independently.
TS contains a transport stream parser and a single / multi-program multicast client and server.
WebRTC implements WebRTC protocol through Google WebRTC library, so it is actually a wrapper for this library. Fully functional implementation of WebRTC is being developed at the moment and will be ready in the nearest future.
There are also several platform specific assemblies:
Common platform extensions assembly contains encoders, decoders and other platform specific components for Windows, Linux, UWP, Xamarin Android, and Xamarin iOS.
Capture contains platform native functionality for capturing audio and video under Windows, UWP, Xamarin Android, and Xamarin iOS.
Media implements streaming players for media content under Windows, UWP, Xamarin Android, and Xamarin iOS.