Last updated: January 2026
Video Capture SDK .NET vs Medialooks MFormats SDK
Pipeline Engine vs Frame-Based Capture Comparison
Choosing between VisioForge Video Capture SDK .NET and Medialooks MFormats SDK is a decision between two fundamentally different architectural models. The Video Capture SDK uses a pipeline-based engine where you configure sources, processing, and outputs declaratively, while MFormats follows a frame-based grab-process-output loop where you manually pull each frame and route it. This guide compares architecture, features, platform support, pricing, and real-world code so you can make the right choice for your project.
Executive Summary
| Aspect | Video Capture SDK .NET | MFormats SDK |
|---|---|---|
| Architecture | Dual engine: native DirectShow/Media Foundation + embedded FFmpeg pipelines | Frame-based grab-process-output loop with COM objects |
| Platform Support | Windows, macOS, Linux, Android, iOS (5 platforms) | Windows only |
| Pricing | EUR 250-500/year (subscription) or EUR 1,500 team/lifetime | ~$4,508/developer/year (subscription mandatory) |
| Best For | Cross-platform capture apps, multi-output pipelines, video effects, detection | Multi-vendor SDI broadcast, HTML5 CG overlays, playlist/playout workflows |
| SDI Hardware | Blackmagic DeckLink support | Blackmagic, AJA, Bluefish444, Deltacast multi-vendor SDI |
| UI Frameworks | WinForms, WPF, MAUI, Avalonia, Uno, Console, Blazor | WinForms, WPF, Console |
| License Model | Perpetual or annual subscription; works after expiry | Annual subscription only; watermark added if subscription lapses |
| Support | Dedicated ticket system, priority SLA | Email support, forum |
Architecture Deep Dive
Video Capture SDK .NET Architecture
The Video Capture SDK uses a pipeline-based design. You configure source, processing stages, and outputs declaratively. The engine assembles the internal filter graph automatically, handling threading, synchronization, and buffer management. A dual engine wraps DirectShow/Media Foundation for native device access and an embedded FFmpeg pipeline for advanced codecs and IP camera ingestion.
- ▶Declarative pipeline configuration: set properties, call StartAsync()
- ▶Dual engine: native OS capture APIs + embedded FFmpeg
- ▶GPU-accelerated preview via Direct3D / OpenGL renderers
- ▶Event-driven architecture with .NET async/await support
- ▶Single-process model with automatic thread management
- ▶Multi-output from one pipeline: record + stream + snapshot simultaneously
MFormats SDK Architecture
MFormats uses a frame-based grab-process-output model built on COM objects. You create an MFReader to grab frames, process each frame through MFTransform objects, and push them to MFWriter or MFRenderer outputs. This gives fine-grained per-frame control but requires you to write the capture loop, manage threading, and handle frame timing manually.
- ▶Frame-based loop: grab frame from MFReader, process, push to MFWriter
- ▶COM-based architecture with .NET interop wrappers
- ▶Manual threading and frame timing management required
- ▶Per-frame control allows custom routing logic
- ▶Separate objects for each pipeline stage (Reader, Transform, Writer, Renderer)
- ▶Built-in playout and playlist scheduling for broadcast workflows
Key Architectural Differences
| Aspect | Video Capture SDK | MFormats SDK |
|---|---|---|
| Programming Model | Declarative pipeline: configure and start | Imperative loop: grab, process, output per frame |
| Threading | Automatic internal thread management | Developer manages capture loop threading |
| Frame Routing | Automatic via pipeline configuration | Manual per-frame routing in code |
| Multi-Output | Built-in simultaneous outputs from one pipeline | Developer clones frames and routes to multiple writers |
| Platform | Cross-platform (.NET 6-10, MAUI) | Windows only (COM-based) |
| Object Model | Pure .NET managed API | COM interop with .NET wrappers |
Feature-by-Feature Comparison
Capture Sources
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| USB Webcams | ✅ | ✅ |
| Screen / Desktop Capture | ✅ | ✅ |
| IP Cameras (RTSP/ONVIF) | ✅ | ✅ |
| Blackmagic DeckLink SDI | ✅ | ✅ |
| AJA SDI Cards | ❌ | ✅ |
| Bluefish444 SDI Cards | ❌ | ✅ |
| Deltacast SDI Cards | ❌ | ✅ |
| TV Tuners (BDA/DVB) | ✅ | ❌ |
| NDI Sources | ✅ | ✅ |
| Industrial Cameras (GenICam/GigE Vision) | ✅ | ❌ |
| Virtual Cameras (OBS Virtual Cam) | ✅ | ⚠️(Via DirectShow) |
Recording & Output
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| MP4 (H.264 / H.265) | ✅ | ✅ |
| MXF Container | ⚠️ | ✅(MFormats strong in broadcast MXF) |
| MKV Container | ✅ | ❌ |
| WebM (VP8 / VP9 / AV1) | ✅ | ❌ |
| AVI | ✅ | ✅ |
| MOV (ProRes) | ✅ | ✅ |
| WMV / ASF | ✅ | ✅ |
| MPEG-TS | ✅ | ✅ |
| Animated GIF | ✅ | ❌ |
| Audio-Only (MP3, AAC, WAV, FLAC) | ✅ | ⚠️ |
| Pre-Event Recording (Circular Buffer) | ✅ | ❌ |
Multi-Output
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| Simultaneous Record + Stream | ✅ | ✅ |
| Multiple Independent Recording Outputs | ✅ | ⚠️(Requires manual frame cloning) |
| Independent Output Control (start/stop/pause each) | ✅ | ⚠️(Manual per-writer control) |
| Different Codecs Per Output | ✅ | ✅ |
| Snapshot During Recording | ✅ | ✅ |
Streaming
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| RTMP Push | ✅ | ✅ |
| RTSP Server | ✅ | ❌ |
| SRT Streaming | ✅ | ✅ |
| HLS Output | ✅ | ⚠️ |
| NDI Output | ✅ | ✅ |
| UDP / TCP Multicast | ✅ | ✅ |
Video Processing & Effects
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| Real-Time Resize / Crop | ✅ | ✅ |
| Deinterlacing | ✅ | ✅ |
| Color Adjustment | ✅ | ✅ |
| Text / Image Overlays | ✅ | ✅ |
| HTML5 CG Overlays | ❌ | ✅ |
| Chroma Key (Green Screen) | ✅ | ✅ |
| GPU-Accelerated Video Effects (40+) | ✅ | ⚠️(Limited built-in effects) |
| Picture-in-Picture | ✅ | ✅ |
| Transitions and Wipes | ✅ | ✅ |
Audio
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| Audio Device Capture | ✅ | ✅ |
| Audio Mixing (Multiple Inputs) | ✅ | ✅ |
| Audio Effects (40+ built-in: EQ, compressor, reverb, etc.) | ✅ | ❌ |
| VU Meter / Level Monitoring | ✅ | ✅ |
| System Audio Loopback Capture | ✅ | ⚠️ |
| Embedded Audio Routing (SDI) | ✅ | ✅ |
Detection & Analysis
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| Motion Detection | ✅ | ❌ |
| Face Detection | ✅ | ❌ |
| Barcode / QR Code Reading | ✅ | ❌ |
| Object Tracking | ✅ | ❌ |
| Audio Level Detection | ✅ | ✅ |
Broadcast & Playout
| Feature | Video Capture SDK | MFormats SDK |
|---|---|---|
| Playlist / Playout Scheduling | ❌ | ✅ |
| Multi-Vendor SDI Output | ⚠️ | ✅(MFormats supports AJA, Bluefish, Deltacast output) |
| HTML5 CG (Character Generator) Overlays | ❌ | ✅ |
| Virtual Camera Output | ✅ | ❌ |
| Genlock / Reference Sync | ❌ | ✅ |
Platform Support
Operating System Compatibility
| Platform | Video Capture SDK | MFormats SDK |
|---|---|---|
| Windows x64 | ✅ | ✅ |
| Windows ARM64 | ✅ | ❌ |
| macOS (Apple Silicon + Intel) | ✅ | ❌ |
| Linux x64 (Ubuntu, Debian, Fedora) | ✅ | ❌ |
| Linux ARM64 (Raspberry Pi) | ✅ | ❌ |
| Android (via .NET MAUI) | ✅ | ❌ |
| iOS (via .NET MAUI) | ✅ | ❌ |
UI Framework Compatibility
| Framework | Video Capture SDK | MFormats SDK |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Uno Platform | ✅ | ❌ |
| Console / Service | ✅ | ✅ |
| Blazor (Server-Side) | ✅ | ❌ |
Pricing Comparison
Video Capture SDK .NET Pricing
1 developer, commercial use, annual updates and support
Up to 3 developers, perpetual license, 1 year updates included
Up to 8 developers, perpetual license, 1 year updates included
All licenses include:
- ✓ Royalty-free distribution
- ✓ All source-code examples
- ✓ Priority ticket support
- ✓ All platform targets included
- ✓ Perpetual option: keep using after subscription ends (no watermark)
MFormats SDK Pricing
Annual subscription, single developer, Windows only
5 developer seats, 3-year subscription commitment
May require per-deployment runtime fees depending on configuration
Subscription Lapse Warning
MFormats SDK uses a mandatory annual subscription model. If your subscription lapses or is not renewed:
- ⚠A watermark is automatically added to all video output
- ⚠You cannot continue using the SDK in production without an active subscription
- ⚠There is no perpetual fallback license option
- ⚠Your deployed applications will show watermarks if the license server cannot validate
The Video Capture SDK offers perpetual licenses that continue working indefinitely after purchase, with no watermark penalties for lapsed renewals.
Code Examples
Example 1: Webcam Capture to MP4
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;
// Create the capture engine
var capture = new VideoCaptureCore();
// Set video source (first available webcam)
var devices = await capture.Video_CaptureDevice_ListAsync();
capture.Video_CaptureDevice = devices[0];
// Set audio source
var audioDevices = await capture.Audio_CaptureDevice_ListAsync();
capture.Audio_CaptureDevice = audioDevices[0];
// Configure MP4 output with H.264
capture.Output_Format = new MP4Output
{
Video = new H264EncoderSettings
{
Bitrate = 4000,
Profile = H264Profile.Main
},
Audio = new AACEncoderSettings
{
Bitrate = 192
}
};
capture.Output_Filename = "recording.mp4";
// Enable preview
capture.Video_Preview_Enabled = true;
// Start recording with preview
await capture.StartAsync();MFormats SDK
C#// MFormats: Frame-based capture loop
MFDeviceClass devClass = new MFDeviceClass();
MFReaderClass reader = new MFReaderClass();
MFWriterClass writer = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();
// Configure video device
reader.DeviceSet(eMFDeviceType.eMFDT_Video, 0, "");
reader.DeviceSet(eMFDeviceType.eMFDT_Audio, 0, "");
// Configure writer output
writer.WriterSet("recording.mp4", 0, "");
// You must run the capture loop yourself
while (capturing)
{
MFFrame frame;
reader.SourceFrameGet(-1, out frame, "");
if (frame != null)
{
// Preview
renderer.RenderSet("preview", frame, "");
// Write to file
writer.WriterPut(frame, "");
// Release frame manually
Marshal.ReleaseComObject(frame);
}
Thread.Sleep(1); // Manual timing
}Example 2: IP Camera with Overlay + Streaming
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;
var capture = new VideoCaptureCore();
// IP camera source
capture.IP_Camera_Source = new IPCameraSourceSettings
{
URL = "rtsp://192.168.1.100:554/stream",
Type = IPCameraType.RTSP
};
// Add text overlay
capture.Video_Overlays.Add(new VideoOverlayText
{
Text = "{timestamp} - Camera 1",
Position = new System.Drawing.Point(10, 10),
Font = new System.Drawing.Font("Arial", 14),
Color = System.Drawing.Color.White
});
// Stream to RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = new RTMPOutput
{
URL = "rtmp://streaming-server/live",
StreamKey = "stream_key",
Video = new H264EncoderSettings { Bitrate = 4500 },
Audio = new AACEncoderSettings { Bitrate = 128 }
};
// Also record locally
capture.Output_Filename = "backup.mp4";
capture.Output_Format = new MP4Output();
await capture.StartAsync();MFormats SDK
C#// MFormats: Manual frame loop with overlay + streaming
MFReaderClass reader = new MFReaderClass();
MFWriterClass localWriter = new MFWriterClass();
MFWriterClass rtmpWriter = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();
// Configure RTSP source
reader.ReaderOpen("rtsp://192.168.1.100:554/stream", "");
// Configure outputs
localWriter.WriterSet("backup.mp4", 0, "");
rtmpWriter.WriterSet("rtmp://streaming-server/live/stream_key", 0, "");
while (capturing)
{
MFFrame frame;
reader.SourceFrameGet(-1, out frame, "");
if (frame != null)
{
// Add overlay manually via MFTransform
MFOverlayClass overlay = new MFOverlayClass();
overlay.OverlayTextSet(frame,
DateTime.Now.ToString() + " - Camera 1",
10, 10, 14, "Arial", 0xFFFFFF, 0, "");
// Clone frame for second output
MFFrame clone;
frame.MFClone(out clone, eMFrameClone.eMFC_Full, eMFCC.eMFCC_Default);
// Write to local file
localWriter.WriterPut(frame, "");
// Write to RTMP stream
rtmpWriter.WriterPut(clone, "");
Marshal.ReleaseComObject(clone);
Marshal.ReleaseComObject(frame);
}
}When to Choose Each Solution
Choose Video Capture SDK When You Need
- ✓Cross-platform capture applications (Windows, macOS, Linux, mobile)
- ✓Pipeline-based architecture with automatic threading and buffer management
- ✓40+ built-in GPU-accelerated video effects and audio effects
- ✓Motion detection, face detection, barcode scanning during capture
- ✓Virtual camera output for OBS, Zoom, Teams integration
- ✓Budget-friendly licensing with perpetual license option
- ✓Multiple independent outputs with individual start/stop control
- ✓Industrial camera support (GenICam, GigE Vision)
- ✓TV tuner and DVB capture support
Choose MFormats SDK When You Need
- ✓Multi-vendor SDI support: AJA, Bluefish444, Deltacast alongside Blackmagic
- ✓Broadcast playout with playlist scheduling and automation
- ✓HTML5-based CG (character generator) overlays for live broadcast
- ✓Genlock and reference sync for broadcast studio environments
- ✓Per-frame manual control over every processing step
- ✓MXF container format with full broadcast metadata support
- ✓Integration with existing broadcast infrastructure and SDI routers
Decision Matrix
| Requirement | Video Capture SDK | MFormats SDK | Winner |
|---|---|---|---|
| Cross-platform support | Video Capture SDK | ||
| Multi-output with independent control | Video Capture SDK | ||
| Audio effects (40+ built-in) | Video Capture SDK | ||
| GPU video effects | Video Capture SDK | ||
| Motion / face / barcode detection | Video Capture SDK | ||
| Virtual camera output | Video Capture SDK | ||
| Budget under EUR 2,000 | Video Capture SDK | ||
| Perpetual license option | Video Capture SDK | ||
| Industrial cameras (GenICam) | Video Capture SDK | ||
| TV tuner / DVB capture | Video Capture SDK | ||
| Multi-vendor SDI (AJA, Bluefish444) | MFormats SDK | ||
| HTML5 CG overlays for broadcast | MFormats SDK |
Conclusion
Video Capture SDK .NET
The Video Capture SDK excels as a cross-platform, pipeline-based capture engine for .NET developers who need rich video processing, detection features, multiple independent outputs, and broad device support. Its declarative API, 40+ GPU effects, and perpetual licensing make it the cost-effective choice for most capture applications from desktop to mobile.
MFormats SDK
MFormats SDK is a strong choice for broadcast-centric workflows that require multi-vendor SDI hardware support (AJA, Bluefish444, Deltacast), HTML5 CG overlays, and playlist-based playout automation. Its frame-based architecture gives granular per-frame control suited to professional broadcast environments. However, it is Windows-only, significantly more expensive, and adds watermarks if the subscription lapses.
The Reality
For the majority of .NET video capture projects — especially those requiring cross-platform support, detection features, or budget-conscious licensing — the Video Capture SDK is the clear choice. MFormats earns its place specifically in multi-vendor SDI broadcast studios where AJA/Bluefish hardware integration and CG overlay workflows are essential.
