VisioForge

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

AspectVideo Capture SDK .NETMFormats SDK
ArchitectureDual engine: native DirectShow/Media Foundation + embedded FFmpeg pipelinesFrame-based grab-process-output loop with COM objects
Platform SupportWindows, macOS, Linux, Android, iOS (5 platforms)Windows only
PricingEUR 250-500/year (subscription) or EUR 1,500 team/lifetime~$4,508/developer/year (subscription mandatory)
Best ForCross-platform capture apps, multi-output pipelines, video effects, detectionMulti-vendor SDI broadcast, HTML5 CG overlays, playlist/playout workflows
SDI HardwareBlackmagic DeckLink supportBlackmagic, AJA, Bluefish444, Deltacast multi-vendor SDI
UI FrameworksWinForms, WPF, MAUI, Avalonia, Uno, Console, BlazorWinForms, WPF, Console
License ModelPerpetual or annual subscription; works after expiryAnnual subscription only; watermark added if subscription lapses
SupportDedicated ticket system, priority SLAEmail 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

AspectVideo Capture SDKMFormats SDK
Programming ModelDeclarative pipeline: configure and startImperative loop: grab, process, output per frame
ThreadingAutomatic internal thread managementDeveloper manages capture loop threading
Frame RoutingAutomatic via pipeline configurationManual per-frame routing in code
Multi-OutputBuilt-in simultaneous outputs from one pipelineDeveloper clones frames and routes to multiple writers
PlatformCross-platform (.NET 6-10, MAUI)Windows only (COM-based)
Object ModelPure .NET managed APICOM interop with .NET wrappers

Feature-by-Feature Comparison

Capture Sources

FeatureVideo Capture SDKMFormats 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

FeatureVideo Capture SDKMFormats 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

FeatureVideo Capture SDKMFormats 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

FeatureVideo Capture SDKMFormats SDK
RTMP Push
RTSP Server
SRT Streaming
HLS Output⚠️
NDI Output
UDP / TCP Multicast

Video Processing & Effects

FeatureVideo Capture SDKMFormats 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

FeatureVideo Capture SDKMFormats 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

FeatureVideo Capture SDKMFormats SDK
Motion Detection
Face Detection
Barcode / QR Code Reading
Object Tracking
Audio Level Detection

Broadcast & Playout

FeatureVideo Capture SDKMFormats 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

PlatformVideo Capture SDKMFormats 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

FrameworkVideo Capture SDKMFormats SDK
WinForms
WPF
.NET MAUI
Avalonia UI
Uno Platform
Console / Service
Blazor (Server-Side)

Pricing Comparison

Video Capture SDK .NET Pricing

Developer (Annual)EUR 250-500/year

1 developer, commercial use, annual updates and support

Team LifetimeEUR 1,500

Up to 3 developers, perpetual license, 1 year updates included

Team LifetimeEUR 1,500

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

MFormats SDK (1 Developer)~$4,508/year

Annual subscription, single developer, Windows only

5 Developers / 3 Years~$67,620

5 developer seats, 3-year subscription commitment

Runtime LicenseAdditional cost

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

RequirementVideo Capture SDKMFormats SDKWinner
Cross-platform supportVideo Capture SDK
Multi-output with independent controlVideo Capture SDK
Audio effects (40+ built-in)Video Capture SDK
GPU video effectsVideo Capture SDK
Motion / face / barcode detectionVideo Capture SDK
Virtual camera outputVideo Capture SDK
Budget under EUR 2,000Video Capture SDK
Perpetual license optionVideo Capture SDK
Industrial cameras (GenICam)Video Capture SDK
TV tuner / DVB captureVideo Capture SDK
Multi-vendor SDI (AJA, Bluefish444)MFormats SDK
HTML5 CG overlays for broadcastMFormats 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.

Frequently Asked Questions

What happens to my MFormats application if I do not renew the subscription?
MFormats uses a mandatory annual subscription model. If your subscription lapses, a watermark is automatically added to all video output in your deployed applications. There is no perpetual fallback license. The Video Capture SDK, by contrast, offers perpetual licenses that continue working indefinitely after purchase with no watermark penalties.
Does the Video Capture SDK support AJA or Bluefish444 SDI cards?
Currently, the Video Capture SDK supports Blackmagic DeckLink SDI cards but does not support AJA or Bluefish444 hardware. If your project requires multi-vendor SDI support across AJA, Bluefish, and Deltacast alongside Blackmagic, MFormats is the better choice for that specific requirement.
Can the Video Capture SDK run on macOS and Linux?
Yes. The Video Capture SDK supports Windows, macOS (Apple Silicon and Intel), Linux x64, Linux ARM64, Android, and iOS. MFormats is Windows-only due to its COM-based architecture.
How do the pricing models compare for a team of 5 developers over 3 years?
For 5 developers over 3 years, MFormats costs approximately $67,620. The Video Capture SDK Team Lifetime license costs EUR 1,500 as a one-time perpetual purchase for up to 8 developers. That's a single payment versus $67,620 — roughly 97% less than MFormats.
Does MFormats have built-in motion detection or face detection?
No. MFormats does not include built-in detection features. You would need to integrate third-party libraries for motion detection, face detection, or barcode scanning. The Video Capture SDK includes all of these as built-in features with event-driven callbacks.
Which SDK is better for broadcast playout applications?
MFormats is specifically designed for broadcast playout workflows. It includes playlist scheduling, HTML5 CG overlays, genlock support, and multi-vendor SDI output. If your primary use case is broadcast playout automation, MFormats is the stronger choice.
Can I migrate from MFormats to the Video Capture SDK?
Yes, but the programming models are different. MFormats uses a frame-based grab-process-output loop, while the Video Capture SDK uses a declarative pipeline. Migration typically involves replacing the manual frame loop with pipeline configuration and event handlers. Most teams find the SDK code is significantly shorter and easier to maintain. Expect 1-3 weeks for migration depending on project complexity.

Get Started

Related Comparisons