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.