Last updated: Styczeń 2026
Video Capture SDK .NET vs Datastead TVideoGrabber
Kompleksowe porównanie komponentów przechwytywania wideo .NET
Wybór odpowiedniego komponentu przechwytywania wideo dla aplikacji .NET determinuje możliwości i długoterminowe koszty projektu. Ten przewodnik zawiera szczegółowe porównanie VisioForge Video Capture SDK .NET — nowoczesnej platformy przechwytywania z podwójnym silnikiem obsługującej pięć systemów operacyjnych — z Datastead TVideoGrabber, dojrzałym komponentem przechwytywania opartym na DirectShow dla Windows. Analizujemy architekturę, funkcje, obsługę wielu wyjść, streaming, ceny i rzeczywisty kod, abyś mógł podjąć świadomą decyzję.
Podsumowanie wykonawcze
| Aspekt | Video Capture SDK .NET | TVideoGrabber |
|---|---|---|
| Architektura | Podwójny silnik: natywny DirectShow/Media Foundation + wbudowane potoki FFmpeg | Pojedynczy silnik: komponent oparty na właściwościach DirectShow |
| Obsługa platform | Windows, macOS, Linux, Android, iOS (5 platform) | Tylko Windows |
| Ceny | EUR 489 – EUR 6 999/rok (wszystkie funkcje w cenie) | EUR 695 baza + EUR 950 NDI + EUR 950 dodatek enkodera = EUR 2 595+ za porównywalne funkcje |
| Najlepsze dla | Wieloplatformowych aplikacji przechwytywania ze streamingiem, wieloma wyjściami i efektami w czasie rzeczywistym | Przechwytywania z jednym wyjściem tylko na Windows z wymaganiami OCR |
| Styl API | Asynchroniczne API .NET z zdarzeniami i wzorcami await | Model komponentowy oparty na właściwościach z wywołaniami synchronicznymi |
Szczegółowa analiza architektury
Architektura Video Capture SDK .NET
Video Capture SDK wykorzystuje projekt z podwójnym silnikiem. Silnik główny opakowuje DirectShow i Media Foundation w Windows, zapewniając natywny dostęp do każdego urządzenia przechwytującego udostępnianego przez system operacyjny. Drugi wbudowany potok FFmpeg obsługuje zaawansowane operacje kodeków, pobieranie z kamer IP i nagrywanie wieloplatformowe. Oba silniki współdzielą ujednoliconą powierzchnię API .NET, więc przełączanie między nimi nie wymaga zmian w kodzie.
- ▶Natywne przechwytywanie Windows przez grafy filtrów DirectShow i Media Foundation
- ▶Wbudowany FFmpeg dla elastyczności kodeków bez zewnętrznych zależności CLI
- ▶Podgląd akcelerowany przez GPU za pomocą rendererów Direct3D / OpenGL
- ▶Architektura sterowana zdarzeniami z obsługą async/await .NET
- ▶Model jednoprocesowy — nie wymaga zarządzania procesami potomnymi
- ▶Obsługa wieloplatformowa: Windows, macOS, Linux, Android, iOS
Architektura TVideoGrabber
TVideoGrabber to jednoprocesowy komponent oparty na DirectShow opracowany przez Datastead. Udostępnia właściwości urządzeń przechwytujących i ustawienia nagrywania przez API oparte na właściwościach. Konfiguracja odbywa się przez ustawienie właściwości komponentu przed rozpoczęciem przechwytywania, zgodnie z tradycyjnym wzorcem komponentu Delphi/VCL zaadaptowanym dla .NET.
- ▶Graf filtrów DirectShow do dostępu do urządzeń i nagrywania w Windows
- ▶Model konfiguracji oparty na właściwościach (ustaw właściwości, potem uruchom)
- ▶Wbudowana obsługa sterowania kamerą ONVIF PTZ
- ▶Rozpoznawanie tekstu OCR podczas przechwytywania (unikalna funkcja)
- ▶Opcjonalne moduły dodatkowe dla NDI i zaawansowanego kodowania
- ▶Tylko Windows — brak obsługi macOS, Linux ani urządzeń mobilnych
Kluczowe różnice architektoniczne
| Aspekt | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Projekt silnika | Podwójny silnik (DirectShow/MF + FFmpeg) | Pojedynczy silnik (tylko DirectShow) |
| Zakres platform | 5 systemów operacyjnych, 7 frameworków UI | Tylko Windows, WinForms/WPF |
| Wzorzec API | Async/await, zdarzenia, obiekty zarządzane | Oparty na właściwościach, wywołania synchroniczne |
| Wiele wyjść | Jednoczesne nagrywanie + stream + snapshot | Jedno wyjście na raz |
| Streaming | RTMP, RTSP, SRT, HLS, NDI wbudowane | Brak protokołów streamingowych |
| Model dodatków | Wszystkie funkcje w licencji | Baza + płatne dodatki (NDI EUR 950, Enkoder EUR 950) |
Porównanie funkcja po funkcji
Źródła przechwytywania
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Kamery USB | ✅ | ✅ |
| Wbudowane kamery laptopa | ✅ | ✅ |
| Przechwytywanie ekranu / pulpitu | ✅ | ✅ |
| Kamery IP (RTSP/ONVIF) | ✅ | ✅ |
| Sterowanie ONVIF PTZ | ✅ | ✅ |
| Karty przechwytywania (Blackmagic, Magewell) | ✅ | ⚠️(Tylko przez DirectShow) |
| Tunery TV (BDA/DVB) | ✅ | ⚠️(Ograniczona obsługa) |
| Źródła NDI | ✅ | ⚠️(Wymaga dodatku za EUR 950) |
| Kamery wirtualne (OBS Virtual Cam) | ✅ | ✅ |
| Wejście DECKLINK | ✅ | ❌ |
Nagrywanie
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| MP4 (H.264 / H.265) | ✅ | ✅ |
| Kontener MKV | ✅ | ❌ |
| WebM (VP8 / VP9 / AV1) | ✅ | ❌ |
| AVI | ✅ | ✅ |
| WMV / ASF | ✅ | ✅ |
| MOV (ProRes) | ✅ | ❌ |
| MPEG-TS | ✅ | ⚠️(Ograniczona obsługa kontenerów) |
| Animowany GIF | ✅ | ❌ |
| Tylko audio (MP3, AAC, WAV) | ✅ | ⚠️ |
| Dzielenie plików wg czasu/rozmiaru | ✅ | ❌ |
| Nagrywanie Pre-Event (Bufor Cykliczny) | ✅ | ❌ |
Wiele wyjść
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Jednoczesne nagrywanie + stream | ✅ | ❌ |
| Wiele wyjść nagrywania | ✅ | ❌ |
| Jednoczesne nagrywanie + snapshot | ✅ | ⚠️(Podstawowa obsługa snapshotów) |
| Różne rozdzielczości na wyjście | ✅ | ❌ |
| Wyjście kamery wirtualnej | ✅ | ❌ |
| Timeshift / opóźnione odtwarzanie | ✅ | ❌ |
Protokoły streamingowe
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| RTMP Push (YouTube, Twitch) | ✅ | ❌ |
| Tryb serwera RTSP | ✅ | ❌ |
| SRT (Caller / Listener) | ✅ | ❌ |
| Generowanie segmentów HLS | ✅ | ❌ |
| Wyjście NDI | ✅ | ❌ |
| UDP / TCP Unicast / Multicast | ✅ | ❌ |
Przetwarzanie wideo
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Zmiana rozmiaru / przycinanie w czasie rzeczywistym | ✅ | ✅ |
| Deinterlacing | ✅ | ✅ |
| Korekta kolorów (jasność, kontrast) | ✅ | ✅ |
| Nakładka tekstowa (znacznik czasu, znak wodny) | ✅ | ✅ |
| Nakładka obrazu / logo | ✅ | ✅ |
| Efekty wideo akcelerowane przez GPU | ✅ | ❌ |
| Chroma Key (zielony ekran) | ✅ | ❌ |
| Obraz w obrazie | ✅ | ❌ |
Audio
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Przechwytywanie urządzenia audio | ✅ | ✅ |
| Przechwytywanie dźwięku systemowego (Loopback) | ✅ | ❌ |
| Miksowanie audio (wiele wejść) | ✅ | ❌ |
| Regulacja głośności / wzmocnienia w czasie rzeczywistym | ✅ | ⚠️ |
| Efekty audio (echo, pogłos) | ✅ | ❌ |
| Miernik VU / monitorowanie poziomu | ✅ | ⚠️ |
Detekcja i analiza
| Funkcja | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Detekcja ruchu | ✅ | ✅ |
| Detekcja twarzy | ✅ | ❌ |
| Odczyt kodów kreskowych / QR | ✅ | ❌ |
| Rozpoznawanie tekstu OCR | ❌ | ✅ |
| Śledzenie obiektów | ✅ | ❌ |
| Detekcja poziomu audio | ✅ | ⚠️ |
Obsługa platform
Kompatybilność systemów operacyjnych
| Platforma | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Windows x64 | ✅ | ✅ |
| Windows ARM64 | ✅ | ❌ |
| macOS (Apple Silicon + Intel) | ✅ | ❌ |
| Linux x64 (Ubuntu, Debian, Fedora) | ✅ | ❌ |
| Linux ARM64 (Raspberry Pi) | ✅ | ❌ |
| Android (przez .NET MAUI) | ✅ | ❌ |
| iOS (przez .NET MAUI) | ✅ | ❌ |
Kompatybilność frameworków UI
| Framework | Video Capture SDK | TVideoGrabber |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Console / Service | ✅ | ❌ |
| ASP.NET Core (usługa w tle) | ✅ | ❌ |
| Blazor (przetwarzanie po stronie serwera) | ✅ | ❌ |
Porównanie cen
Ceny Video Capture SDK .NET
1 deweloper, użytek niekomercyjny
1 deweloper, użytek komercyjny, wszystkie funkcje w cenie
Do 3 deweloperów, użytek komercyjny, 1 rok aktualizacji
Do 8 deweloperów, użytek komercyjny, 1 rok aktualizacji
All licenses include:
- ✓ Dystrybucja bez tantiem
- ✓ Wszystkie funkcje w cenie (streaming, NDI, efekty GPU, wiele wyjść)
- ✓ Wszystkie przykłady kodu źródłowego
- ✓ Priorytetowe wsparcie przez ticket
- ✓ Wszystkie 5 platform docelowych w cenie
Ceny TVideoGrabber
Przechwytywanie z jednym wyjściem, podstawowe funkcje, tylko Windows
Dodaje obsługę źródeł/wyjść NDI
Dodaje zaawansowaną obsługę kodowania sprzętowego
Wszystkie dodatki — nadal tylko Windows, brak streamingu, jedno wyjście
Całkowity koszt posiadania
Porównując równoważne zestawy funkcji, obraz cenowy zmienia się znacząco. Licencja TVideoGrabber ze wszystkimi dodatkami kosztuje EUR 2 595 i oferuje przechwytywanie z jednym wyjściem tylko na Windows. Video Capture SDK Professional za EUR 1 000 obejmuje obsługę wieloplatformową, streaming, wiele wyjść, efekty GPU i więcej — za mniej niż połowę ceny.
- ⚠SDK Professional (EUR 1 000) zawiera wszystko vs pełny pakiet TVideoGrabber (EUR 2 595) z lukami
- ⚠SDK zawiera protokoły streamingowe (RTMP, SRT, HLS) — TVideoGrabber nie ma żadnych w żadnej cenie
- ⚠SDK zawiera nagrywanie z wieloma wyjściami — TVideoGrabber nie ma w żadnej cenie
- ⚠SDK obsługuje 5 platform — TVideoGrabber tylko Windows
- ⚠SDK zawiera efekty akcelerowane GPU — TVideoGrabber ma tylko podstawowe przetwarzanie
Przykłady kodu
Przykład 1: Nagrywanie z kamery do 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 onlyPrzykład 2: Kamera IP ze sterowaniem 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 onlyPrzykład 3: Nagrywanie z wieloma wyjściami + 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.Przykład 4: Detekcja ruchu z nagrywaniem
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.Matryca decyzyjna
| Wymaganie | Video Capture SDK | TVideoGrabber | Zwycięzca |
|---|---|---|---|
| Wieloplatformowość (Windows, Mac, Linux, mobile) | Video Capture SDK | ||
| Wiele wyjść (jednoczesne nagrywanie + streaming) | Video Capture SDK | ||
| Efekty audio w czasie rzeczywistym | Video Capture SDK | ||
| Efekty wideo akcelerowane GPU | Video Capture SDK | ||
| Streaming RTMP / HLS / SRT | Video Capture SDK | ||
| Wyjście kamery wirtualnej | Video Capture SDK | ||
| Dzielenie plików / timeshift | Video Capture SDK | ||
| Kodowanie sprzętowe (NVENC, QSV) | Video Capture SDK | ||
| NDI bez dodatkowych kosztów | Video Capture SDK | ||
| OCR podczas przechwytywania | TVideoGrabber |
Podsumowanie
Video Capture SDK .NET
Video Capture SDK oferuje kompleksową, nowoczesną platformę przechwytywania obejmującą pięć systemów operacyjnych, siedem frameworków UI i zawierającą wszystkie funkcje — streaming, wiele wyjść, efekty GPU, NDI i kodowanie sprzętowe — w jednej licencji od EUR 1 000. Dla zespołów budujących wieloplatformowe aplikacje przechwytywania lub dowolnego projektu wymagającego streamingu i nagrywania z wieloma wyjściami, SDK zapewnia znacznie większą wartość przy niższym całkowitym koszcie niż TVideoGrabber z dodatkami.
TVideoGrabber
TVideoGrabber to dojrzały komponent przechwytywania tylko dla Windows z solidną integracją DirectShow i unikalną funkcją OCR. Jest rozsądnym wyborem dla prostych projektów przechwytywania tylko na Windows wymagających rozpoznawania tekstu ze strumienia wideo. Jednak brak streamingu, obsługi wielu wyjść, kompatybilności wieloplatformowej oraz wysoki koszt dodatków (łącznie EUR 2 595) ograniczają jego atrakcyjność dla nowoczesnego rozwoju aplikacji.
The Reality
Dla projektów tylko na Windows z wymaganiami OCR i bez potrzeby streamingu lub wielu wyjść, TVideoGrabber jest realną opcją. Dla praktycznie każdego innego scenariusza przechwytywania wideo — wieloplatformowego, streamingowego, z wieloma wyjściami, efektami GPU lub świadomego kosztowo rozwoju — Video Capture SDK jest silniejszym wyborem w niższej cenie całkowitej.
