Last updated: Gennaio 2026
Video Capture SDK .NET vs Datastead TVideoGrabber
Confronto completo dei componenti di cattura video .NET
La scelta del componente di cattura video giusto per la tua applicazione .NET determina le capacità e i costi a lungo termine del tuo progetto. Questa guida fornisce un confronto dettagliato tra VisioForge Video Capture SDK .NET — una moderna piattaforma di cattura a doppio motore che supporta cinque sistemi operativi — e Datastead TVideoGrabber, un componente di cattura maturo basato su DirectShow per Windows. Esaminiamo architettura, funzionalità, supporto multi-output, streaming, prezzi e codice reale per aiutarti a prendere una decisione informata.
Riepilogo esecutivo
| Aspetto | Video Capture SDK .NET | TVideoGrabber |
|---|---|---|
| Architettura | Doppio motore: DirectShow/Media Foundation nativo + pipeline FFmpeg integrati | Motore singolo: componente basato su proprietà DirectShow |
| Supporto piattaforme | Windows, macOS, Linux, Android, iOS (5 piattaforme) | Solo Windows |
| Prezzi | EUR 489 – EUR 6.999/anno (tutte le funzionalità incluse) | EUR 695 base + EUR 950 NDI + EUR 950 add-on encoder = EUR 2.595+ per funzionalità comparabili |
| Ideale per | App di cattura multipiattaforma con streaming, multi-output ed effetti in tempo reale | Cattura a uscita singola solo Windows con requisiti OCR |
| Stile API | API .NET async-first con eventi e pattern await | Modello a componenti basato su proprietà con chiamate sincrone |
Analisi approfondita dell'architettura
Architettura di Video Capture SDK .NET
Il Video Capture SDK utilizza un design a doppio motore. Il motore primario incapsula DirectShow e Media Foundation su Windows, fornendo accesso nativo a ogni dispositivo di cattura esposto dal sistema operativo. Una pipeline FFmpeg secondaria integrata gestisce operazioni codec avanzate, acquisizione da telecamere IP e registrazione multipiattaforma. Entrambi i motori condividono una superficie API .NET unificata, quindi il passaggio tra di essi non richiede modifiche al codice.
- ▶Cattura Windows nativa tramite grafi di filtri DirectShow e Media Foundation
- ▶FFmpeg integrato per flessibilità codec senza dipendenze CLI esterne
- ▶Anteprima accelerata da GPU tramite renderer Direct3D / OpenGL
- ▶Architettura event-driven con supporto async/await .NET
- ▶Modello a processo singolo — nessuna gestione di processi figlio richiesta
- ▶Supporto multipiattaforma: Windows, macOS, Linux, Android, iOS
Architettura di TVideoGrabber
TVideoGrabber è un componente a motore singolo basato su DirectShow sviluppato da Datastead. Espone le proprietà dei dispositivi di cattura e le impostazioni di registrazione tramite un'API basata su proprietà. La configurazione viene effettuata impostando le proprietà del componente prima di avviare la cattura, seguendo un modello tradizionale di componente Delphi/VCL adattato per .NET.
- ▶Grafo di filtri DirectShow per l'accesso ai dispositivi e la registrazione su Windows
- ▶Modello di configurazione basato su proprietà (impostare le proprietà, poi avviare)
- ▶Supporto integrato per il controllo telecamera ONVIF PTZ
- ▶Riconoscimento testo OCR durante la cattura (funzionalità unica)
- ▶Moduli add-on opzionali per NDI e codifica avanzata
- ▶Solo Windows — nessun supporto per macOS, Linux o dispositivi mobili
Differenze architetturali chiave
| Aspetto | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Design del motore | Doppio motore (DirectShow/MF + FFmpeg) | Motore singolo (solo DirectShow) |
| Ambito piattaforme | 5 sistemi operativi, 7 framework UI | Solo Windows, WinForms/WPF |
| Pattern API | Async/await, eventi, oggetti gestiti | Basato su proprietà, chiamate sincrone |
| Multi-output | Registrazione + stream + snapshot simultanei | Un'uscita alla volta |
| Streaming | RTMP, RTSP, SRT, HLS, NDI integrati | Nessun protocollo di streaming incluso |
| Modello add-on | Tutte le funzionalità incluse nella licenza | Base + add-on a pagamento (NDI EUR 950, Encoder EUR 950) |
Confronto funzionalità per funzionalità
Sorgenti di cattura
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Webcam USB | ✅ | ✅ |
| Telecamere integrate del laptop | ✅ | ✅ |
| Cattura schermo / desktop | ✅ | ✅ |
| Telecamere IP (RTSP/ONVIF) | ✅ | ✅ |
| Controllo ONVIF PTZ | ✅ | ✅ |
| Schede di cattura (Blackmagic, Magewell) | ✅ | ⚠️(Solo tramite DirectShow) |
| Sintonizzatori TV (BDA/DVB) | ✅ | ⚠️(Supporto limitato) |
| Sorgenti NDI | ✅ | ⚠️(Richiede add-on da EUR 950) |
| Telecamere virtuali (OBS Virtual Cam) | ✅ | ✅ |
| Ingresso DECKLINK | ✅ | ❌ |
Registrazione
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| MP4 (H.264 / H.265) | ✅ | ✅ |
| Container MKV | ✅ | ❌ |
| WebM (VP8 / VP9 / AV1) | ✅ | ❌ |
| AVI | ✅ | ✅ |
| WMV / ASF | ✅ | ✅ |
| MOV (ProRes) | ✅ | ❌ |
| MPEG-TS | ✅ | ⚠️(Supporto container limitato) |
| GIF animata | ✅ | ❌ |
| Solo audio (MP3, AAC, WAV) | ✅ | ⚠️ |
| Divisione file per tempo/dimensione | ✅ | ❌ |
| Registrazione Pre-Evento (Buffer Circolare) | ✅ | ❌ |
Multi-output
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Registrazione + stream simultanei | ✅ | ❌ |
| Uscite di registrazione multiple | ✅ | ❌ |
| Registrazione + snapshot simultanei | ✅ | ⚠️(Supporto snapshot di base) |
| Risoluzioni diverse per uscita | ✅ | ❌ |
| Uscita telecamera virtuale | ✅ | ❌ |
| Timeshift / riproduzione ritardata | ✅ | ❌ |
Protocolli di streaming
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| RTMP Push (YouTube, Twitch) | ✅ | ❌ |
| Modalità server RTSP | ✅ | ❌ |
| SRT (Caller / Listener) | ✅ | ❌ |
| Generazione segmenti HLS | ✅ | ❌ |
| Uscita NDI | ✅ | ❌ |
| UDP / TCP Unicast / Multicast | ✅ | ❌ |
Elaborazione video
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Ridimensionamento / ritaglio in tempo reale | ✅ | ✅ |
| Deinterlacciamento | ✅ | ✅ |
| Regolazione colore (luminosità, contrasto) | ✅ | ✅ |
| Sovrapposizione testo (timestamp, filigrana) | ✅ | ✅ |
| Sovrapposizione immagine / logo | ✅ | ✅ |
| Effetti video accelerati da GPU | ✅ | ❌ |
| Chroma Key (schermo verde) | ✅ | ❌ |
| Picture-in-Picture | ✅ | ❌ |
Audio
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Cattura dispositivo audio | ✅ | ✅ |
| Cattura audio di sistema (Loopback) | ✅ | ❌ |
| Mixaggio audio (ingressi multipli) | ✅ | ❌ |
| Controllo volume / guadagno in tempo reale | ✅ | ⚠️ |
| Effetti audio (eco, riverbero) | ✅ | ❌ |
| VU meter / monitoraggio livello | ✅ | ⚠️ |
Rilevamento e analisi
| Funzionalità | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Rilevamento movimento | ✅ | ✅ |
| Rilevamento volti | ✅ | ❌ |
| Lettura codici a barre / QR | ✅ | ❌ |
| Riconoscimento testo OCR | ❌ | ✅ |
| Tracciamento oggetti | ✅ | ❌ |
| Rilevamento livello audio | ✅ | ⚠️ |
Supporto piattaforme
Compatibilità sistemi operativi
| Piattaforma | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Windows x64 | ✅ | ✅ |
| Windows ARM64 | ✅ | ❌ |
| macOS (Apple Silicon + Intel) | ✅ | ❌ |
| Linux x64 (Ubuntu, Debian, Fedora) | ✅ | ❌ |
| Linux ARM64 (Raspberry Pi) | ✅ | ❌ |
| Android (tramite .NET MAUI) | ✅ | ❌ |
| iOS (tramite .NET MAUI) | ✅ | ❌ |
Compatibilità framework UI
| Framework | Video Capture SDK | TVideoGrabber |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Console / Service | ✅ | ❌ |
| ASP.NET Core (servizio in background) | ✅ | ❌ |
| Blazor (elaborazione lato server) | ✅ | ❌ |
Confronto prezzi
Prezzi di Video Capture SDK .NET
1 sviluppatore, uso non commerciale
1 sviluppatore, uso commerciale, tutte le funzionalità incluse
Fino a 3 sviluppatori, uso commerciale, 1 anno di aggiornamenti
Fino a 8 sviluppatori, uso commerciale, 1 anno di aggiornamenti
All licenses include:
- ✓ Distribuzione royalty-free
- ✓ Tutte le funzionalità incluse (streaming, NDI, effetti GPU, multi-output)
- ✓ Tutti gli esempi di codice sorgente
- ✓ Supporto prioritario tramite ticket
- ✓ Tutte e 5 le piattaforme target incluse
Prezzi di TVideoGrabber
Cattura a uscita singola, funzionalità di base, solo Windows
Aggiunge supporto sorgente/uscita NDI
Aggiunge supporto codifica hardware avanzata
Tutti gli add-on combinati — ancora solo Windows, nessun streaming, uscita singola
Costo totale di proprietà
Confrontando set di funzionalità equivalenti, il quadro dei prezzi cambia significativamente. Una licenza TVideoGrabber con tutti gli add-on costa EUR 2.595 e offre cattura a uscita singola solo per Windows. Il Video Capture SDK Professional a EUR 1.000 include supporto multipiattaforma, streaming, multi-output, effetti GPU e altro — a meno della metà del prezzo.
- ⚠SDK Professional (EUR 1.000) include tutto vs. pacchetto completo TVideoGrabber (EUR 2.595) con lacune
- ⚠SDK include protocolli di streaming (RTMP, SRT, HLS) — TVideoGrabber non ne ha a nessun prezzo
- ⚠SDK include registrazione multi-output — TVideoGrabber non ne ha a nessun prezzo
- ⚠SDK copre 5 piattaforme — TVideoGrabber copre solo Windows
- ⚠SDK include effetti accelerati da GPU — TVideoGrabber ha solo elaborazione di base
Esempi di codice
Esempio 1: Registrazione webcam in 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 onlyEsempio 2: Telecamera IP con controllo 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 onlyEsempio 3: Registrazione multi-output + 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.Esempio 4: Rilevamento movimento con registrazione
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.Matrice decisionale
| Requisito | Video Capture SDK | TVideoGrabber | Vincitore |
|---|---|---|---|
| Multipiattaforma (Windows, Mac, Linux, mobile) | Video Capture SDK | ||
| Multi-output (registrare + trasmettere simultaneamente) | Video Capture SDK | ||
| Effetti audio in tempo reale | Video Capture SDK | ||
| Effetti video accelerati da GPU | Video Capture SDK | ||
| Streaming RTMP / HLS / SRT | Video Capture SDK | ||
| Uscita telecamera virtuale | Video Capture SDK | ||
| Divisione file / timeshift | Video Capture SDK | ||
| Codifica hardware (NVENC, QSV) | Video Capture SDK | ||
| NDI senza costi aggiuntivi | Video Capture SDK | ||
| OCR durante la cattura | TVideoGrabber |
Conclusione
Video Capture SDK .NET
Il Video Capture SDK offre una piattaforma di cattura moderna e completa che copre cinque sistemi operativi, sette framework UI e include tutte le funzionalità — streaming, multi-output, effetti GPU, NDI e codifica hardware — in un'unica licenza a partire da EUR 1.000. Per i team che sviluppano applicazioni di cattura multipiattaforma o qualsiasi progetto che richieda streaming e registrazione multi-output, l'SDK offre un valore significativamente maggiore a un costo totale inferiore rispetto a TVideoGrabber con add-on.
TVideoGrabber
TVideoGrabber è un componente di cattura maturo solo per Windows con una solida integrazione DirectShow e una capacità OCR unica. È una scelta ragionevole per progetti di cattura semplici solo Windows che richiedono il riconoscimento del testo dal flusso video. Tuttavia, la mancanza di streaming, supporto multi-output, compatibilità multipiattaforma e l'alto costo degli add-on (EUR 2.595 in totale) ne limitano l'attrattiva per lo sviluppo di applicazioni moderne.
The Reality
Per progetti solo Windows con requisiti OCR e senza necessità di streaming o multi-output, TVideoGrabber è un'opzione valida. Per praticamente qualsiasi altro scenario di cattura video — multipiattaforma, streaming, multi-output, effetti GPU o sviluppo attento ai costi — il Video Capture SDK è la scelta più forte a un prezzo totale inferiore.
