Table of Contents

List of VASTreaming Libraries

VASTreaming is organized into multiple assemblies, allowing developers to include only the components needed for their specific application. This modular architecture minimizes dependencies and optimizes application size.

Assembly Overview

Assembly Description
VAST.Common Core interfaces, media types, buffer management, codec parsers
VAST.Audio Audio signal processing (echo cancellation)
VAST.Codec FFmpeg and NVENC/NVCUVID wrappers for encoding/decoding, Audio codecs in C#
VAST.DASH MPEG-DASH server implementation
VAST.File Playlist source, MP3/WAV file sources and sinks, MP4 utilities
VAST.File.ISO MP4 container (ISO 14496-12) reader and writer
VAST.HLS HLS and LL-HLS server and HLS client implementation
VAST.ICE ICE, STUN, and TURN protocol implementation for NAT traversal
VAST.Image Video mixing, MJPEG server and client, image source
VAST.NDI NDI protocol support for local network video
VAST.Network Multi-protocol streaming server with JSON API
VAST.ONVIF ONVIF client for IP camera discovery and control
VAST.RTMP RTMP client, publisher, and server
VAST.RTSP RTSP/RTP client, publisher, and server
VAST.SRT SRT protocol client and server
VAST.TS Transport stream parser, multicast client and server
VAST.Web MoC (Media over QUIC), WebTransport based protocol implementation
VAST.WebRTC WebRTC implementation via Google WebRTC library
VAST.UI Video rendering controls for WPF, WinForms, and MAUI

Core Libraries

VAST.Common

The foundational library required by all other VASTreaming assemblies. It provides:

  • Core interfaces (IMediaSource, IMediaSink)
  • Media type definitions and codec enumerations
  • Buffer management and memory pooling
  • Codec configuration parsers (H.264, H.265, AAC)
  • Logging and diagnostic utilities

See Common Library for detailed documentation.

VAST.Audio

Audio signal processing capabilities:

  • Acoustic echo cancellation (AEC)
  • Simple PCM over WebSocket server and client

See Audio Library for detailed documentation.

VAST.Codec

Encoding and decoding support:

  • FFmpeg wrapper for comprehensive codec support
  • NVENC/NVCUVID wrapper for efficient hardware-accelerated decoding and encoding on NVIDIA GPUs
  • Pure C# implementations of select audio codecs

See Codec Library for detailed documentation.

VAST.Image

Image and video processing:

  • MixingSource for real-time video compositing
  • Optional SixLabors ImageSharp-based image processor for video compositing on CPU-only setups
  • MJPEG over HTTP server and client
  • Static image source for overlays and placeholders

See Image Library for detailed documentation.

Streaming Protocol Libraries

VAST.RTSP

Complete RTSP implementation:

  • RTSP client for connecting to IP cameras and media servers, including interactive (VOD) streams
  • RTSP publisher for streaming to media servers
  • RTSP server implementation, including interactive VOD publishing point support
  • RTP/RTCP protocol support (can be used independently from RTSP)
  • UDP and TCP interleaved transport modes
  • RTSP over TLS (RTSPS) secure protocol
  • RTSP over HTTP/HTTPS transport for client and server connections
  • Secure SRTP protocol
  • Back channel for streaming audio to IP cameras
  • Virtual RTP source for ingesting RTP data received by user code

See RTSP Library for detailed documentation.

VAST.RTMP

Adobe RTMP protocol support:

  • RTMP client for connecting to media servers
  • RTMP publisher for streaming to platforms (YouTube, Twitch, etc.)
  • RTMP server implementation
  • RTMP over TLS (RTMPS) secure protocol
  • RTMP over HTTP/HTTPS transport for client and server connections
  • FLV file writer

See RTMP Library for detailed documentation.

VAST.HLS

HTTP Live Streaming:

  • HLS server implementation, including interactive VOD and Event publishing point support
  • LL-HLS (Low-Latency HLS) support
  • HLS client for connecting to media servers
  • Multiple bitrate variants for adaptive streaming

See HLS Library for detailed documentation.

VAST.DASH

MPEG-DASH streaming:

  • DASH server implementation, including interactive VOD and Event publishing point support
  • Multiple representation support

See MPEG-DASH Library for detailed documentation.

VAST.SRT

Secure Reliable Transport:

  • SRT client for connecting to IP cameras and media servers
  • SRT publisher for streaming to media servers
  • SRT server implementation capable of serving multiple resource IDs (publishing points) on a single endpoint (port)
  • Simplified SRT server serving a single publishing point per endpoint (port) to handle basic clients
  • File transfer over SRT
  • Rendezvous handshake support
  • Encryption support
  • Custom extension enabling sub-100ms latency on LAN
  • Custom extension enabling CRC checks to guarantee intact delivery
  • Custom extension enabling interactive (VOD) stream support in client and server modes

See SRT Library for detailed documentation.

VAST.WebRTC

WebRTC for real-time communication:

  • Based on Google's native WebRTC library
  • Peer-to-peer and server-mediated connections
  • Integration with VAST.ICE for NAT traversal

See WebRTC Library for detailed documentation.

VAST.ICE

NAT traversal support:

  • ICE (Interactive Connectivity Establishment) framework
  • STUN/TURN client
  • TURN relay server
  • Used by WebRTC

See ICE Library for detailed documentation.

VAST.Web

Web protocol support:

  • MoQ (Media over QUIC), WebTransport based protocol implementation
  • WebSocket fallback for clients that do not support WebTransport (e.g., Apple devices)

See Web Library for detailed documentation.

VAST.TS

MPEG Transport Stream:

  • Transport stream demuxer and muxer
  • Single and multi-program stream support
  • UDP multicast client and server
  • Transport stream over HTTP server
  • Transport stream file reader and writer
  • Used internally by HLS and other protocols

See Transport Stream Library for detailed documentation.

VAST.NDI

NewTek NDI protocol:

  • NDI source discovery
  • NDI receiver and sender
  • Low-latency local network video

See NDI Library for detailed documentation.

VAST.ONVIF

IP camera integration:

  • ONVIF device discovery
  • Camera configuration and control
  • PTZ (pan-tilt-zoom) operations
  • Event subscription

See ONVIF Library for detailed documentation.

File Format Libraries

VAST.File.ISO

MP4 container format (ISO 14496-12):

  • MP4 file reader supporting a wide range of playback rates
  • MP4 file writer for recording
  • Fragmented MP4 (fMP4) support for input and output
  • fMP4 over HTTP live stream client

See MP4 Library for detailed documentation.

VAST.File

File-based media sources:

  • Playlist source for seamless playback supporting a wide range of playback rates
  • MP1, MP2, MP3 audio file sources and sinks
  • WAV audio file source and sink
  • MP4 file utilities
  • File cache optimizing file readers by sharing media descriptor and indices

See File Library for detailed documentation.

Platform Extension Libraries

Platform-specific assemblies provide hardware acceleration and native functionality:

Assembly Platform Features
VAST.Common.Ext.Win32 Windows Media Foundation, DirectShow, Direct3D, ASIO, WASAPI, Screen Capture, Video/Audio Rendering, OpenGL
VAST.Common.Ext.Linux Linux Screen Capture, OpenGL
VAST.Common.Ext.iOS iOS VideoToolbox, AudioToolbox, Metal, AVFoundation, Video/Audio Rendering, OpenGL
VAST.Common.Ext.MacCatalyst Mac Catalyst VideoToolbox, AudioToolbox, Metal, AVFoundation, Video/Audio Rendering
VAST.Common.Ext.macOS macOS VideoToolbox, AudioToolbox, Metal, AVFoundation, Video/Audio Rendering, OpenGL
VAST.Common.Ext.Android Android MediaCodec, Video/Audio Capture, Video/Audio Rendering, OpenGL
VAST.Common.Ext.ASP ASP.NET Core ASP.NET Core specific integration
VAST.Common.Ext.ASP.Win32 ASP.NET Core VAST.Common.Ext.ASP + VAST.Common.Ext.Win32
VAST.Common.Ext.ASP.Linux ASP.NET Core VAST.Common.Ext.ASP + VAST.Common.Ext.Linux
VAST.Common.Ext.ASP.macOS ASP.NET Core VAST.Common.Ext.ASP + VAST.Common.Ext.macOS

See Common Extension Libraries for detailed documentation.

UI Libraries

VAST.UI

Video rendering controls for desktop and mobile applications:

  • WPF video renderer with hardware acceleration
  • WinForms video renderer
  • .NET MAUI controls for cross-platform applications

See UI Libraries for detailed documentation.

Dependency Graph

Most applications will reference a subset of these assemblies. A typical dependency structure:

Your Application
    └── VAST.RTSP (or other protocol library)
            └── VAST.Common
                    └── VAST.Common.Ext.Win32 (platform extension)

The protocol libraries automatically reference VAST.Common. Platform extensions are optional but recommended for hardware specific functionality.