VisioForge

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

AspektVideo Capture SDK .NETTVideoGrabber
ArchitekturaPodwójny silnik: natywny DirectShow/Media Foundation + wbudowane potoki FFmpegPojedynczy silnik: komponent oparty na właściwościach DirectShow
Obsługa platformWindows, macOS, Linux, Android, iOS (5 platform)Tylko Windows
CenyEUR 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 dlaWieloplatformowych aplikacji przechwytywania ze streamingiem, wieloma wyjściami i efektami w czasie rzeczywistymPrzechwytywania z jednym wyjściem tylko na Windows z wymaganiami OCR
Styl APIAsynchroniczne API .NET z zdarzeniami i wzorcami awaitModel 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

AspektVideo Capture SDKTVideoGrabber
Projekt silnikaPodwójny silnik (DirectShow/MF + FFmpeg)Pojedynczy silnik (tylko DirectShow)
Zakres platform5 systemów operacyjnych, 7 frameworków UITylko Windows, WinForms/WPF
Wzorzec APIAsync/await, zdarzenia, obiekty zarządzaneOparty na właściwościach, wywołania synchroniczne
Wiele wyjśćJednoczesne nagrywanie + stream + snapshotJedno wyjście na raz
StreamingRTMP, RTSP, SRT, HLS, NDI wbudowaneBrak protokołów streamingowych
Model dodatkówWszystkie funkcje w licencjiBaza + płatne dodatki (NDI EUR 950, Enkoder EUR 950)

Porównanie funkcja po funkcji

Źródła przechwytywania

FunkcjaVideo Capture SDKTVideoGrabber
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

FunkcjaVideo Capture SDKTVideoGrabber
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ść

FunkcjaVideo Capture SDKTVideoGrabber
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

FunkcjaVideo Capture SDKTVideoGrabber
RTMP Push (YouTube, Twitch)
Tryb serwera RTSP
SRT (Caller / Listener)
Generowanie segmentów HLS
Wyjście NDI
UDP / TCP Unicast / Multicast

Przetwarzanie wideo

FunkcjaVideo Capture SDKTVideoGrabber
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

FunkcjaVideo Capture SDKTVideoGrabber
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

FunkcjaVideo Capture SDKTVideoGrabber
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

PlatformaVideo Capture SDKTVideoGrabber
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

FrameworkVideo Capture SDKTVideoGrabber
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

HomeEUR 489

1 deweloper, użytek niekomercyjny

ProfessionalEUR 1 000

1 deweloper, użytek komercyjny, wszystkie funkcje w cenie

Team SmallEUR 3 499

Do 3 deweloperów, użytek komercyjny, 1 rok aktualizacji

TeamEUR 6 999

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

Licencja podstawowaEUR 695

Przechwytywanie z jednym wyjściem, podstawowe funkcje, tylko Windows

Dodatek NDIEUR 950

Dodaje obsługę źródeł/wyjść NDI

Dodatek enkoderaEUR 950

Dodaje zaawansowaną obsługę kodowania sprzętowego

Pełny pakiet (Baza + NDI + Enkoder)EUR 2 595

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 only

Przykł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 only

Przykł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

WymaganieVideo Capture SDKTVideoGrabberZwycięzca
Wieloplatformowość (Windows, Mac, Linux, mobile)Video Capture SDK
Wiele wyjść (jednoczesne nagrywanie + streaming)Video Capture SDK
Efekty audio w czasie rzeczywistymVideo Capture SDK
Efekty wideo akcelerowane GPUVideo Capture SDK
Streaming RTMP / HLS / SRTVideo Capture SDK
Wyjście kamery wirtualnejVideo Capture SDK
Dzielenie plików / timeshiftVideo Capture SDK
Kodowanie sprzętowe (NVENC, QSV)Video Capture SDK
NDI bez dodatkowych kosztówVideo Capture SDK
OCR podczas przechwytywaniaTVideoGrabber

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.

Frequently Asked Questions

Czy TVideoGrabber obsługuje streaming RTMP do YouTube lub Twitch?
Nie. TVideoGrabber nie zawiera żadnych protokołów streamingowych. Jest komponentem przechwytywania do pliku. Aby streamować, trzeba użyć osobnego narzędzia lub biblioteki obok TVideoGrabber. Video Capture SDK zawiera wbudowany streaming RTMP, RTSP, SRT, HLS i NDI w każdej licencji.
Czy TVideoGrabber może nagrywać do wielu plików jednocześnie?
Nie. TVideoGrabber obsługuje tylko nagrywanie z jednym wyjściem. Nie można jednocześnie nagrywać archiwum w wysokiej jakości i podglądu w niskiej rozdzielczości, ani nagrywać podczas streamingu. Video Capture SDK obsługuje nieograniczoną liczbę jednoczesnych wyjść w różnych rozdzielczościach i formatach.
Dlaczego TVideoGrabber kosztuje więcej niż SDK za równoważne funkcje?
Licencja podstawowa TVideoGrabber kosztuje EUR 695, ale wymaga płatnych dodatków dla NDI (EUR 950) i zaawansowanego kodowania (EUR 950), łącznie EUR 2 595 za zestaw funkcji, w którym nadal brakuje streamingu i wielu wyjść. Video Capture SDK Professional zawiera wszystkie funkcje za EUR 1 000 — mniej niż połowa ceny ze znacznie większymi możliwościami.
Czy Video Capture SDK obsługuje sterowanie kamerą ONVIF PTZ jak TVideoGrabber?
Tak. Oba produkty obsługują sterowanie kamerą ONVIF PTZ, w tym panoramowanie, pochylanie, zoom i pozycje presetowe. Jest to jeden z obszarów, w których oba produkty są porównywalne pod względem funkcjonalności.
Czy mogę używać TVideoGrabber na macOS lub Linux?
Nie. TVideoGrabber to komponent tylko dla Windows oparty na DirectShow, który jest technologią specyficzną dla Windows. Nie działa na macOS, Linux, Android ani iOS. Video Capture SDK obsługuje wszystkie pięć platform dzięki wieloplatformowemu silnikowi.
Czy Video Capture SDK obsługuje OCR jak TVideoGrabber?
Video Capture SDK nie zawiera wbudowanego rozpoznawania tekstu OCR. Jest to obszar, w którym TVideoGrabber ma unikalną przewagę. Jednak SDK zapewnia callbacki surowych klatek, które umożliwiają łatwą integrację z bibliotekami OCR firm trzecich, takimi jak Tesseract lub Azure Computer Vision, dla podobnej funkcjonalności.
Czy mogę przejść z TVideoGrabber na Video Capture SDK?
Tak. Choć style API różnią się (TVideoGrabber używa konfiguracji opartej na właściwościach, SDK używa asynchronicznych zdarzeń i obiektów zarządzanych), migracja jest prosta. Większość zespołów kończy migrację w 1-2 tygodnie i zyskuje streaming, wiele wyjść, obsługę wieloplatformową i efekty GPU.

Rozpocznij

Related Comparisons