Last updated: Enero 2026
Video Capture SDK .NET vs Datastead TVideoGrabber
Comparación completa de componentes de captura de video .NET
Elegir el componente de captura de video adecuado para su aplicación .NET determina las capacidades y costos a largo plazo de su proyecto. Esta guía proporciona una comparación detallada entre VisioForge Video Capture SDK .NET — una plataforma moderna de captura de doble motor compatible con cinco sistemas operativos — y Datastead TVideoGrabber, un componente de captura maduro basado en DirectShow para Windows. Examinamos arquitectura, características, soporte multi-salida, streaming, precios y código real para que pueda tomar una decisión informada.
Resumen ejecutivo
| Aspecto | Video Capture SDK .NET | TVideoGrabber |
|---|---|---|
| Arquitectura | Doble motor: DirectShow/Media Foundation nativo + pipelines FFmpeg integrados | Motor único: componente basado en propiedades DirectShow |
| Soporte de plataformas | Windows, macOS, Linux, Android, iOS (5 plataformas) | Solo Windows |
| Precios | EUR 489 – EUR 6.999/año (todas las funciones incluidas) | EUR 695 base + EUR 950 NDI + EUR 950 complemento codificador = EUR 2.595+ para funciones comparables |
| Ideal para | Aplicaciones de captura multiplataforma con streaming, multi-salida y efectos en tiempo real | Captura de salida única solo para Windows con requisitos de OCR |
| Estilo de API | API .NET async-first con eventos y patrones await | Modelo de componente basado en propiedades con llamadas sincrónicas |
Análisis profundo de la arquitectura
Arquitectura de Video Capture SDK .NET
El Video Capture SDK utiliza un diseño de doble motor. El motor principal envuelve DirectShow y Media Foundation en Windows, proporcionando acceso nativo a cada dispositivo de captura expuesto por el sistema operativo. Un pipeline FFmpeg secundario integrado maneja operaciones avanzadas de códec, ingesta de cámaras IP y grabación multiplataforma. Ambos motores comparten una superficie de API .NET unificada, por lo que cambiar entre ellos no requiere cambios de código.
- ▶Captura nativa de Windows a través de gráficos de filtros DirectShow y Media Foundation
- ▶FFmpeg integrado para flexibilidad de códec sin dependencias CLI externas
- ▶Vista previa acelerada por GPU a través de renderizadores Direct3D / OpenGL
- ▶Arquitectura basada en eventos con soporte async/await de .NET
- ▶Modelo de proceso único — no requiere gestión de procesos secundarios
- ▶Soporte multiplataforma: Windows, macOS, Linux, Android, iOS
Arquitectura de TVideoGrabber
TVideoGrabber es un componente basado en DirectShow de motor único desarrollado por Datastead. Expone propiedades de dispositivos de captura y configuraciones de grabación a través de una API basada en propiedades. La configuración se realiza estableciendo propiedades del componente antes de iniciar la captura, siguiendo un patrón tradicional de componente Delphi/VCL adaptado para .NET.
- ▶Gráfico de filtros DirectShow para acceso a dispositivos y grabación en Windows
- ▶Modelo de configuración basado en propiedades (establecer propiedades, luego iniciar)
- ▶Soporte integrado de control de cámara ONVIF PTZ
- ▶Reconocimiento de texto OCR durante la captura (función única)
- ▶Módulos complementarios opcionales para NDI y codificación avanzada
- ▶Solo Windows — sin soporte para macOS, Linux ni dispositivos móviles
Diferencias arquitectónicas clave
| Aspecto | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Diseño del motor | Doble motor (DirectShow/MF + FFmpeg) | Motor único (solo DirectShow) |
| Alcance de plataformas | 5 sistemas operativos, 7 frameworks UI | Solo Windows, WinForms/WPF |
| Patrón de API | Async/await, eventos, objetos administrados | Basado en propiedades, llamadas sincrónicas |
| Multi-salida | Grabación + stream + snapshot simultáneos | Una sola salida a la vez |
| Streaming | RTMP, RTSP, SRT, HLS, NDI integrados | Sin protocolos de streaming incluidos |
| Modelo de complementos | Todas las funciones incluidas en la licencia | Base + complementos de pago (NDI EUR 950, Encoder EUR 950) |
Comparación función por función
Fuentes de captura
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Webcams USB | ✅ | ✅ |
| Cámaras integradas de portátil | ✅ | ✅ |
| Captura de pantalla / escritorio | ✅ | ✅ |
| Cámaras IP (RTSP/ONVIF) | ✅ | ✅ |
| Control ONVIF PTZ | ✅ | ✅ |
| Tarjetas de captura (Blackmagic, Magewell) | ✅ | ⚠️(Solo vía DirectShow) |
| Sintonizadores de TV (BDA/DVB) | ✅ | ⚠️(Soporte limitado) |
| Fuentes NDI | ✅ | ⚠️(Requiere complemento de EUR 950) |
| Cámaras virtuales (OBS Virtual Cam) | ✅ | ✅ |
| Entrada DECKLINK | ✅ | ❌ |
Grabación
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| MP4 (H.264 / H.265) | ✅ | ✅ |
| Contenedor MKV | ✅ | ❌ |
| WebM (VP8 / VP9 / AV1) | ✅ | ❌ |
| AVI | ✅ | ✅ |
| WMV / ASF | ✅ | ✅ |
| MOV (ProRes) | ✅ | ❌ |
| MPEG-TS | ✅ | ⚠️(Soporte limitado de contenedor) |
| GIF animado | ✅ | ❌ |
| Solo audio (MP3, AAC, WAV) | ✅ | ⚠️ |
| División de archivos por tiempo/tamaño | ✅ | ❌ |
| Grabación Pre-Evento (Buffer Circular) | ✅ | ❌ |
Multi-salida
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Grabación + stream simultáneos | ✅ | ❌ |
| Múltiples salidas de grabación | ✅ | ❌ |
| Grabación + snapshot simultáneos | ✅ | ⚠️(Soporte básico de snapshot) |
| Diferentes resoluciones por salida | ✅ | ❌ |
| Salida de cámara virtual | ✅ | ❌ |
| Timeshift / reproducción retardada | ✅ | ❌ |
Protocolos de streaming
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| RTMP Push (YouTube, Twitch) | ✅ | ❌ |
| Modo servidor RTSP | ✅ | ❌ |
| SRT (Caller / Listener) | ✅ | ❌ |
| Generación de segmentos HLS | ✅ | ❌ |
| Salida NDI | ✅ | ❌ |
| UDP / TCP Unicast / Multicast | ✅ | ❌ |
Procesamiento de video
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Redimensionado / recorte en tiempo real | ✅ | ✅ |
| Desentrelazado | ✅ | ✅ |
| Ajuste de color (brillo, contraste) | ✅ | ✅ |
| Superposición de texto (marca de tiempo, marca de agua) | ✅ | ✅ |
| Superposición de imagen / logotipo | ✅ | ✅ |
| Efectos de video acelerados por GPU | ✅ | ❌ |
| Chroma Key (pantalla verde) | ✅ | ❌ |
| Picture-in-Picture | ✅ | ❌ |
Audio
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Captura de dispositivo de audio | ✅ | ✅ |
| Captura de audio del sistema (Loopback) | ✅ | ❌ |
| Mezcla de audio (múltiples entradas) | ✅ | ❌ |
| Control de volumen / ganancia en tiempo real | ✅ | ⚠️ |
| Efectos de audio (eco, reverberación) | ✅ | ❌ |
| Vúmetro / monitoreo de nivel | ✅ | ⚠️ |
Detección y análisis
| Función | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Detección de movimiento | ✅ | ✅ |
| Detección de rostros | ✅ | ❌ |
| Lectura de códigos de barras / QR | ✅ | ❌ |
| Reconocimiento de texto OCR | ❌ | ✅ |
| Seguimiento de objetos | ✅ | ❌ |
| Detección de nivel de audio | ✅ | ⚠️ |
Soporte de plataformas
Compatibilidad de sistemas operativos
| Plataforma | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Windows x64 | ✅ | ✅ |
| Windows ARM64 | ✅ | ❌ |
| macOS (Apple Silicon + Intel) | ✅ | ❌ |
| Linux x64 (Ubuntu, Debian, Fedora) | ✅ | ❌ |
| Linux ARM64 (Raspberry Pi) | ✅ | ❌ |
| Android (vía .NET MAUI) | ✅ | ❌ |
| iOS (vía .NET MAUI) | ✅ | ❌ |
Compatibilidad de frameworks UI
| Framework | Video Capture SDK | TVideoGrabber |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Console / Service | ✅ | ❌ |
| ASP.NET Core (servicio en segundo plano) | ✅ | ❌ |
| Blazor (procesamiento del lado del servidor) | ✅ | ❌ |
Comparación de precios
Precios de Video Capture SDK .NET
1 desarrollador, uso no comercial
1 desarrollador, uso comercial, todas las funciones incluidas
Hasta 3 desarrolladores, uso comercial, 1 año de actualizaciones
Hasta 8 desarrolladores, uso comercial, 1 año de actualizaciones
All licenses include:
- ✓ Distribución libre de regalías
- ✓ Todas las funciones incluidas (streaming, NDI, efectos GPU, multi-salida)
- ✓ Todos los ejemplos de código fuente
- ✓ Soporte prioritario por ticket
- ✓ Las 5 plataformas objetivo incluidas
Precios de TVideoGrabber
Captura de salida única, funciones básicas, solo Windows
Añade soporte de fuente/salida NDI
Añade soporte de codificación de hardware avanzada
Todos los complementos combinados — aún solo Windows, sin streaming, salida única
Costo total de propiedad
Al comparar conjuntos de funciones equivalentes, el panorama de precios cambia significativamente. Una licencia de TVideoGrabber con todos los complementos cuesta EUR 2.595 y ofrece captura de salida única solo para Windows. El Video Capture SDK Professional a EUR 1.000 incluye soporte multiplataforma, streaming, multi-salida, efectos GPU y más — a menos de la mitad del precio.
- ⚠SDK Professional (EUR 1.000) incluye todo vs. paquete completo TVideoGrabber (EUR 2.595) con carencias
- ⚠SDK incluye protocolos de streaming (RTMP, SRT, HLS) — TVideoGrabber no tiene ninguno a ningún precio
- ⚠SDK incluye grabación multi-salida — TVideoGrabber no tiene ninguna a ningún precio
- ⚠SDK cubre 5 plataformas — TVideoGrabber solo cubre Windows
- ⚠SDK incluye efectos acelerados por GPU — TVideoGrabber tiene solo procesamiento básico
Ejemplos de código
Ejemplo 1: Grabación de webcam a 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 onlyEjemplo 2: Cámara IP con control ONVIF PTZ
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 onlyEjemplo 3: Grabación multi-salida + 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.Ejemplo 4: Detección de movimiento con grabación
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.Matriz de decisión
| Requisito | Video Capture SDK | TVideoGrabber | Ganador |
|---|---|---|---|
| Multiplataforma (Windows, Mac, Linux, móvil) | Video Capture SDK | ||
| Multi-salida (grabar + transmitir simultáneamente) | Video Capture SDK | ||
| Efectos de audio en tiempo real | Video Capture SDK | ||
| Efectos de video acelerados por GPU | Video Capture SDK | ||
| Streaming RTMP / HLS / SRT | Video Capture SDK | ||
| Salida de cámara virtual | Video Capture SDK | ||
| División de archivos / timeshift | Video Capture SDK | ||
| Codificación por hardware (NVENC, QSV) | Video Capture SDK | ||
| NDI sin costo adicional | Video Capture SDK | ||
| OCR durante la captura | TVideoGrabber |
Conclusión
Video Capture SDK .NET
El Video Capture SDK ofrece una plataforma de captura moderna y completa que cubre cinco sistemas operativos, siete frameworks UI e incluye todas las funciones — streaming, multi-salida, efectos GPU, NDI y codificación por hardware — en una sola licencia desde EUR 1.000. Para equipos que construyen aplicaciones de captura multiplataforma o cualquier proyecto que requiera streaming y grabación multi-salida, el SDK ofrece significativamente más valor a un costo total menor que TVideoGrabber con complementos.
TVideoGrabber
TVideoGrabber es un componente de captura maduro solo para Windows con sólida integración DirectShow y una capacidad OCR única. Es una opción razonable para proyectos simples de captura solo para Windows que requieren reconocimiento de texto del flujo de video. Sin embargo, su falta de streaming, soporte multi-salida, compatibilidad multiplataforma y el alto costo de los complementos (EUR 2.595 en total) limitan su atractivo para el desarrollo de aplicaciones modernas.
The Reality
Para proyectos solo Windows con requisitos de OCR y sin necesidad de streaming o multi-salida, TVideoGrabber es una opción viable. Para prácticamente cualquier otro escenario de captura de video — multiplataforma, streaming, multi-salida, efectos GPU o desarrollo consciente de costos — el Video Capture SDK es la opción más sólida a un precio total menor.
