Last updated: January 2026
Video Capture SDK .NET vs Datastead TVideoGrabber
Comprehensive .NET Video Capture Component Comparison
Choosing the right video capture component for your .NET application determines your project's capabilities and long-term costs. This guide provides a detailed comparison between VisioForge Video Capture SDK .NET — a modern dual-engine capture platform supporting five operating systems — and Datastead TVideoGrabber, a mature DirectShow-based capture component for Windows. We examine architecture, features, multi-output support, streaming, pricing, and real-world code so you can make an informed decision.
Executive Summary
| Aspect | Video Capture SDK .NET | TVideoGrabber |
|---|---|---|
| Architecture | Dual engine: native DirectShow/Media Foundation + embedded FFmpeg pipelines | Single engine: DirectShow property-based component |
| Platform Support | Windows, macOS, Linux, Android, iOS (5 platforms) | Windows only |
| Pricing | EUR 489 – EUR 6,999/year (all features included) | EUR 695 base + EUR 950 NDI + EUR 950 encoder add-on = EUR 2,595+ for comparable features |
| Best For | Cross-platform capture apps with streaming, multi-output, and real-time effects | Windows-only single-output capture with OCR requirements |
| API Style | Async-first .NET API with events and await patterns | Property-based component model with synchronous calls |
Architecture Deep Dive
Video Capture SDK .NET Architecture
The Video Capture SDK uses a dual-engine design. The primary engine wraps DirectShow and Media Foundation on Windows, giving native access to every capture device exposed by the OS. A secondary embedded FFmpeg pipeline handles advanced codec operations, IP camera ingestion, and cross-platform recording. Both engines share a unified .NET API surface, so switching between them requires no code changes.
- ▶Native Windows capture via DirectShow and Media Foundation filter graphs
- ▶Embedded FFmpeg for codec flexibility without external CLI dependencies
- ▶GPU-accelerated preview via Direct3D / OpenGL renderers
- ▶Event-driven architecture with .NET async/await support
- ▶Single-process model — no child process management required
- ▶Cross-platform support: Windows, macOS, Linux, Android, iOS
TVideoGrabber Architecture
TVideoGrabber is a single-engine DirectShow-based component developed by Datastead. It exposes capture device properties and recording settings through a property-based API. Configuration is done by setting component properties before starting capture, following a traditional Delphi/VCL component pattern adapted for .NET.
- ▶DirectShow filter graph for device access and recording on Windows
- ▶Property-based configuration model (set properties, then start)
- ▶Built-in ONVIF PTZ camera control support
- ▶OCR text recognition during capture (unique feature)
- ▶Optional add-on modules for NDI and advanced encoding
- ▶Windows-only operation — no macOS, Linux, or mobile support
Key Architectural Differences
| Aspect | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Engine Design | Dual engine (DirectShow/MF + FFmpeg) | Single engine (DirectShow only) |
| Platform Scope | 5 OS platforms, 7 UI frameworks | Windows only, WinForms/WPF |
| API Pattern | Async/await, events, managed objects | Property-based, synchronous calls |
| Multi-Output | Simultaneous record + stream + snapshot | Single output at a time |
| Streaming | RTMP, RTSP, SRT, HLS, NDI built-in | No streaming protocols included |
| Add-on Model | All features included in license | Base + paid add-ons (NDI EUR 950, Encoder EUR 950) |
Feature-by-Feature Comparison
Capture Sources
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| USB Webcams | ✅ | ✅ |
| Integrated Laptop Cameras | ✅ | ✅ |
| Screen / Desktop Capture | ✅ | ✅ |
| IP Cameras (RTSP/ONVIF) | ✅ | ✅ |
| ONVIF PTZ Control | ✅ | ✅ |
| Capture Cards (Blackmagic, Magewell) | ✅ | ⚠️(Via DirectShow only) |
| TV Tuners (BDA/DVB) | ✅ | ⚠️(Limited support) |
| NDI Sources | ✅ | ⚠️(Requires EUR 950 add-on) |
| Virtual Cameras (OBS Virtual Cam) | ✅ | ✅ |
| DECKLINK Input | ✅ | ❌ |
Recording
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| MP4 (H.264 / H.265) | ✅ | ✅ |
| MKV Container | ✅ | ❌ |
| WebM (VP8 / VP9 / AV1) | ✅ | ❌ |
| AVI | ✅ | ✅ |
| WMV / ASF | ✅ | ✅ |
| MOV (ProRes) | ✅ | ❌ |
| MPEG-TS | ✅ | ⚠️(Limited container support) |
| Animated GIF | ✅ | ❌ |
| Audio-Only (MP3, AAC, WAV) | ✅ | ⚠️ |
| File Splitting by Time/Size | ✅ | ❌ |
| Pre-Event Recording (Circular Buffer) | ✅ | ❌ |
Multi-Output
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Simultaneous Record + Stream | ✅ | ❌ |
| Multiple Recording Outputs | ✅ | ❌ |
| Record + Snapshot Simultaneously | ✅ | ⚠️(Basic snapshot support) |
| Different Resolutions per Output | ✅ | ❌ |
| Virtual Camera Output | ✅ | ❌ |
| Timeshift / Delayed Playback | ✅ | ❌ |
Streaming Protocols
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| RTMP Push (YouTube, Twitch) | ✅ | ❌ |
| RTSP Server Mode | ✅ | ❌ |
| SRT (Caller / Listener) | ✅ | ❌ |
| HLS Segment Generation | ✅ | ❌ |
| NDI Output | ✅ | ❌ |
| UDP / TCP Unicast / Multicast | ✅ | ❌ |
Video Processing
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Real-Time Resize / Crop | ✅ | ✅ |
| Deinterlacing | ✅ | ✅ |
| Color Adjustment (Brightness, Contrast) | ✅ | ✅ |
| Text Overlay (Timestamp, Watermark) | ✅ | ✅ |
| Image Overlay / Logo | ✅ | ✅ |
| GPU-Accelerated Video Effects | ✅ | ❌ |
| Chroma Key (Green Screen) | ✅ | ❌ |
| Picture-in-Picture | ✅ | ❌ |
Audio
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Audio Device Capture | ✅ | ✅ |
| System Audio (Loopback) Capture | ✅ | ❌ |
| Audio Mixing (Multiple Inputs) | ✅ | ❌ |
| Real-Time Volume / Gain Control | ✅ | ⚠️ |
| Audio Effects (Echo, Reverb) | ✅ | ❌ |
| VU Meter / Level Monitoring | ✅ | ⚠️ |
Detection & Analysis
| Feature | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Motion Detection | ✅ | ✅ |
| Face Detection | ✅ | ❌ |
| Barcode / QR Code Reading | ✅ | ❌ |
| OCR Text Recognition | ❌ | ✅ |
| Object Tracking | ✅ | ❌ |
| Audio Level Detection | ✅ | ⚠️ |
Platform Support
Operating System Compatibility
| Platform | Video Capture SDK | TVideoGrabber |
|---|---|---|
| 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 | TVideoGrabber |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Console / Service | ✅ | ❌ |
| ASP.NET Core (Background Service) | ✅ | ❌ |
| Blazor (Server-Side Processing) | ✅ | ❌ |
Pricing Comparison
Video Capture SDK .NET Pricing
1 developer, non-commercial use
1 developer, commercial use, all features included
Up to 3 developers, commercial use, 1 year updates
Up to 8 developers, commercial use, 1 year updates
All licenses include:
- ✓ Royalty-free distribution
- ✓ All features included (streaming, NDI, GPU effects, multi-output)
- ✓ All source-code examples
- ✓ Priority ticket support
- ✓ All 5 platform targets included
TVideoGrabber Pricing
Single-output capture, basic features, Windows only
Adds NDI source/output support
Adds advanced hardware encoding support
All add-ons combined — still Windows only, no streaming, single output
Total Cost of Ownership
When comparing equivalent feature sets, the pricing picture changes significantly. A TVideoGrabber license with all add-ons costs EUR 2,595 and delivers Windows-only single-output capture. The Video Capture SDK Professional at EUR 1,000 includes cross-platform support, streaming, multi-output, GPU effects, and more — at less than half the price.
- ⚠SDK Professional (EUR 1,000) includes everything vs TVideoGrabber full stack (EUR 2,595) with gaps
- ⚠SDK includes streaming protocols (RTMP, SRT, HLS) — TVideoGrabber has none at any price
- ⚠SDK includes multi-output recording — TVideoGrabber has none at any price
- ⚠SDK covers 5 platforms — TVideoGrabber covers Windows only
- ⚠SDK includes GPU-accelerated effects — TVideoGrabber has basic processing only
Code Examples
Example 1: Webcam Recording 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();TVideoGrabber
C#// TVideoGrabber — property-based approach
var grabber = new TVideoGrabber();
// Select video device by index
grabber.VideoDevice = 0;
// Select audio device by index
grabber.AudioDevice = 0;
// Set recording mode
grabber.RecordingMethod = TRecordingMethod.rmMP4;
// Set output filename
grabber.RecordingFileName = "recording.mp4";
// Set video bitrate
grabber.VideoBitrate = 4000000;
// Set audio bitrate
grabber.AudioBitrate = 192000;
// Start capture and recording
grabber.StartPreview();
grabber.StartRecording();
// Note: Properties set before starting
// No async/await — synchronous calls
// Single output onlyExample 2: IP Camera with ONVIF PTZ Control
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
var capture = new VideoCaptureCore();
// Connect to ONVIF IP camera
capture.IP_Camera_Source = new IPCameraSourceSettings
{
URL = "rtsp://192.168.1.100:554/stream",
Login = "admin",
Password = "password",
Type = IPCameraType.RTSP
};
// ONVIF PTZ control
var ptz = new ONVIFPTZController(
"192.168.1.100", "admin", "password");
await ptz.MoveAsync(PanDirection.Left, TiltDirection.Up, 0.5);
await ptz.ZoomAsync(ZoomDirection.In, 0.3);
await ptz.GoToPresetAsync("entrance");
// Record while controlling PTZ
capture.Output_Format = new MP4Output();
capture.Output_Filename = "camera_feed.mp4";
// Simultaneously stream to RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = new RTMPOutput
{
URL = "rtmp://stream.example.com/live",
StreamKey = "KEY"
};
await capture.StartAsync();TVideoGrabber
C#// TVideoGrabber — ONVIF PTZ support
var grabber = new TVideoGrabber();
// Set IP camera URL
grabber.IPCameraURL = "rtsp://192.168.1.100:554/stream";
grabber.IPCameraLogin = "admin";
grabber.IPCameraPassword = "password";
// ONVIF PTZ — built-in support
grabber.ONVIF_PTZ_Move(
ePTZ_Direction.Left, 50);
grabber.ONVIF_PTZ_Zoom(
ePTZ_ZoomDirection.In, 30);
grabber.ONVIF_PTZ_GotoPreset("entrance");
// Record to file
grabber.RecordingMethod = TRecordingMethod.rmMP4;
grabber.RecordingFileName = "camera_feed.mp4";
grabber.StartPreview();
grabber.StartRecording();
// Note: No streaming capability
// Cannot simultaneously record + stream
// PTZ control is a strong point
// Windows onlyExample 3: Multi-Output Recording + Streaming
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
var capture = new VideoCaptureCore();
// Set webcam source
var devices = await capture.Video_CaptureDevice_ListAsync();
capture.Video_CaptureDevice = devices[0];
// Output 1: High-quality local recording
capture.Output_Format = new MP4Output
{
Video = new H264EncoderSettings
{
Bitrate = 8000,
Profile = H264Profile.High
}
};
capture.Output_Filename = "archive.mp4";
// Output 2: Stream to YouTube via RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = new RTMPOutput
{
URL = "rtmp://a.rtmp.youtube.com/live2",
StreamKey = "YOUR_KEY",
Video = new H264EncoderSettings { Bitrate = 4500 }
};
// Output 3: Low-res recording for thumbnails
capture.AdditionalOutputs.Add(new OutputConfig
{
Filename = "preview.mp4",
Format = new MP4Output
{
Video = new H264EncoderSettings
{
Bitrate = 1000,
Width = 640, Height = 360
}
}
});
// All three outputs run simultaneously
await capture.StartAsync();TVideoGrabber
C#// TVideoGrabber — single output only
var grabber = new TVideoGrabber();
// Select video device
grabber.VideoDevice = 0;
// Can only record to ONE file at a time
grabber.RecordingMethod = TRecordingMethod.rmMP4;
grabber.RecordingFileName = "archive.mp4";
grabber.VideoBitrate = 8000000;
grabber.StartPreview();
grabber.StartRecording();
// LIMITATIONS:
// - Cannot stream while recording
// - Cannot record multiple files simultaneously
// - No RTMP/SRT/HLS streaming support
// - No additional outputs at different resolutions
// - To stream, you would need a separate tool
// alongside TVideoGrabber
//
// Multi-output and streaming are simply
// not available in TVideoGrabber at any
// price point.Example 4: Motion Detection with Recording
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
var capture = new VideoCaptureCore();
// Set video source
var devices = await capture.Video_CaptureDevice_ListAsync();
capture.Video_CaptureDevice = devices[0];
// Enable motion detection
capture.Motion_Detection.Enabled = true;
capture.Motion_Detection.Sensitivity = 70;
capture.Motion_Detection.HighlightMotion = true;
capture.Motion_Detection.HighlightColor = Color.Red;
// Motion event handler
capture.OnMotionDetected += (s, e) =>
{
Console.WriteLine(
$"Motion at {DateTime.Now}: " +
$"Level={e.Level:P0}");
// Start recording on motion
if (!capture.IsRecording)
{
capture.Output_Filename =
$"motion_{DateTime.Now:yyyyMMdd_HHmmss}.mp4";
capture.StartRecording();
}
};
// Configure output
capture.Output_Format = new MP4Output
{
Video = new H264EncoderSettings
{
Bitrate = 4000,
UseHardwareEncoder = true
}
};
// Start preview with detection
await capture.StartAsync();TVideoGrabber
C#// TVideoGrabber — motion detection
var grabber = new TVideoGrabber();
// Select video device
grabber.VideoDevice = 0;
// Enable motion detection
grabber.MotionDetection_Enabled = true;
grabber.MotionDetection_Sensitivity = 70;
// Motion event
grabber.OnMotionDetected += (s, e) =>
{
Console.WriteLine(
$"Motion detected at {DateTime.Now}");
};
// Set recording format
grabber.RecordingMethod = TRecordingMethod.rmMP4;
grabber.RecordingFileName = "motion.mp4";
grabber.StartPreview();
// Note: TVideoGrabber does support
// basic motion detection — this is
// a shared capability.
// However, no motion highlight overlay,
// no hardware encoding toggle,
// no dynamic filename switching,
// no simultaneous stream on motion.Decision Matrix
| Requirement | Video Capture SDK | TVideoGrabber | Winner |
|---|---|---|---|
| Cross-platform (Windows, Mac, Linux, Mobile) | Video Capture SDK | ||
| Multi-output (record + stream simultaneously) | Video Capture SDK | ||
| Real-time audio effects | Video Capture SDK | ||
| GPU-accelerated video effects | Video Capture SDK | ||
| RTMP / HLS / SRT streaming | Video Capture SDK | ||
| Virtual camera output | Video Capture SDK | ||
| File splitting / timeshift | Video Capture SDK | ||
| Hardware encoding (NVENC, QSV) | Video Capture SDK | ||
| NDI without add-on cost | Video Capture SDK | ||
| OCR during capture | TVideoGrabber |
Conclusion
Video Capture SDK .NET
The Video Capture SDK offers a comprehensive, modern capture platform that covers five operating systems, seven UI frameworks, and includes every feature — streaming, multi-output, GPU effects, NDI, and hardware encoding — in a single license starting at EUR 1,000. For teams building cross-platform capture applications or any project requiring streaming and multi-output recording, the SDK delivers significantly more value at a lower total cost than TVideoGrabber with add-ons.
TVideoGrabber
TVideoGrabber is a mature Windows-only capture component with solid DirectShow integration and a unique OCR capability. It is a reasonable choice for simple Windows-only capture projects that require text recognition from the video feed. However, its lack of streaming, multi-output support, cross-platform compatibility, and the high cost of add-ons (EUR 2,595 total) limit its appeal for modern application development.
The Reality
For Windows-only projects with OCR requirements and no need for streaming or multi-output, TVideoGrabber is a viable option. For virtually every other video capture scenario — cross-platform, streaming, multi-output, GPU effects, or cost-conscious development — the Video Capture SDK is the stronger choice at a lower total price.
