Last updated: 2026년 1월
Video Capture SDK .NET vs Datastead TVideoGrabber
포괄적인 .NET 비디오 캡처 컴포넌트 비교
.NET 애플리케이션에 적합한 비디오 캡처 컴포넌트를 선택하면 프로젝트의 기능과 장기적인 비용이 결정됩니다. 이 가이드는 VisioForge Video Capture SDK .NET(5개 운영 체제를 지원하는 최신 듀얼 엔진 캡처 플랫폼)과 Datastead TVideoGrabber(Windows용 성숙한 DirectShow 기반 캡처 컴포넌트) 간의 상세 비교를 제공합니다. 아키텍처, 기능, 다중 출력 지원, 스트리밍, 가격 및 실제 코드를 검토하여 정보에 입각한 결정을 내릴 수 있도록 합니다.
요약
| 측면 | Video Capture SDK .NET | TVideoGrabber |
|---|---|---|
| 아키텍처 | 듀얼 엔진: 네이티브 DirectShow/Media Foundation + 내장 FFmpeg 파이프라인 | 싱글 엔진: DirectShow 속성 기반 컴포넌트 |
| 플랫폼 지원 | Windows, macOS, Linux, Android, iOS (5개 플랫폼) | Windows만 지원 |
| 가격 | 연간 EUR 489 – EUR 6,999 (모든 기능 포함) | EUR 695 기본 + EUR 950 NDI + EUR 950 인코더 애드온 = 비교 가능한 기능에 EUR 2,595+ |
| 적합한 용도 | 스트리밍, 다중 출력, 실시간 효과가 포함된 크로스 플랫폼 캡처 앱 | OCR 요구 사항이 있는 Windows 전용 단일 출력 캡처 |
| API 스타일 | 이벤트 및 await 패턴을 갖춘 비동기 우선 .NET API | 동기 호출이 있는 속성 기반 컴포넌트 모델 |
아키텍처 심층 분석
Video Capture SDK .NET 아키텍처
Video Capture SDK는 듀얼 엔진 설계를 사용합니다. 기본 엔진은 Windows에서 DirectShow와 Media Foundation을 래핑하여 OS에서 노출하는 모든 캡처 장치에 대한 네이티브 액세스를 제공합니다. 보조 내장 FFmpeg 파이프라인은 고급 코덱 작업, IP 카메라 수집 및 크로스 플랫폼 녹화를 처리합니다. 두 엔진은 통합된 .NET API 표면을 공유하므로 엔진 간 전환에 코드 변경이 필요하지 않습니다.
- ▶DirectShow 및 Media Foundation 필터 그래프를 통한 네이티브 Windows 캡처
- ▶외부 CLI 종속성 없는 코덱 유연성을 위한 내장 FFmpeg
- ▶Direct3D / OpenGL 렌더러를 통한 GPU 가속 미리보기
- ▶.NET async/await 지원이 포함된 이벤트 기반 아키텍처
- ▶싱글 프로세스 모델 — 자식 프로세스 관리 불필요
- ▶크로스 플랫폼 지원: Windows, macOS, Linux, Android, iOS
TVideoGrabber 아키텍처
TVideoGrabber는 Datastead에서 개발한 싱글 엔진 DirectShow 기반 컴포넌트입니다. 속성 기반 API를 통해 캡처 장치 속성과 녹화 설정을 노출합니다. 캡처를 시작하기 전에 컴포넌트 속성을 설정하여 구성하며, .NET에 적응된 전통적인 Delphi/VCL 컴포넌트 패턴을 따릅니다.
- ▶Windows에서 장치 액세스 및 녹화를 위한 DirectShow 필터 그래프
- ▶속성 기반 구성 모델 (속성 설정 후 시작)
- ▶내장 ONVIF PTZ 카메라 제어 지원
- ▶캡처 중 OCR 텍스트 인식 (고유 기능)
- ▶NDI 및 고급 인코딩용 선택적 애드온 모듈
- ▶Windows 전용 — macOS, Linux 또는 모바일 지원 없음
주요 아키텍처 차이점
| 측면 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| 엔진 설계 | 듀얼 엔진 (DirectShow/MF + FFmpeg) | 싱글 엔진 (DirectShow만) |
| 플랫폼 범위 | 5개 OS, 7개 UI 프레임워크 | Windows만, WinForms/WPF |
| API 패턴 | Async/await, 이벤트, 관리 객체 | 속성 기반, 동기 호출 |
| 다중 출력 | 동시 녹화 + 스트림 + 스냅샷 | 한 번에 하나의 출력만 |
| 스트리밍 | RTMP, RTSP, SRT, HLS, NDI 내장 | 스트리밍 프로토콜 미포함 |
| 애드온 모델 | 라이선스에 모든 기능 포함 | 기본 + 유료 애드온 (NDI EUR 950, 인코더 EUR 950) |
기능별 비교
캡처 소스
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| USB 웹캠 | ✅ | ✅ |
| 노트북 내장 카메라 | ✅ | ✅ |
| 화면 / 데스크톱 캡처 | ✅ | ✅ |
| IP 카메라 (RTSP/ONVIF) | ✅ | ✅ |
| ONVIF PTZ 제어 | ✅ | ✅ |
| 캡처 카드 (Blackmagic, Magewell) | ✅ | ⚠️(DirectShow를 통해서만) |
| TV 튜너 (BDA/DVB) | ✅ | ⚠️(제한적 지원) |
| NDI 소스 | ✅ | ⚠️(EUR 950 애드온 필요) |
| 가상 카메라 (OBS Virtual Cam) | ✅ | ✅ |
| DECKLINK 입력 | ✅ | ❌ |
녹화
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| MP4 (H.264 / H.265) | ✅ | ✅ |
| MKV 컨테이너 | ✅ | ❌ |
| WebM (VP8 / VP9 / AV1) | ✅ | ❌ |
| AVI | ✅ | ✅ |
| WMV / ASF | ✅ | ✅ |
| MOV (ProRes) | ✅ | ❌ |
| MPEG-TS | ✅ | ⚠️(제한적 컨테이너 지원) |
| 애니메이션 GIF | ✅ | ❌ |
| 오디오 전용 (MP3, AAC, WAV) | ✅ | ⚠️ |
| 시간/크기별 파일 분할 | ✅ | ❌ |
| 사전 이벤트 녹화 (순환 버퍼) | ✅ | ❌ |
다중 출력
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| 동시 녹화 + 스트림 | ✅ | ❌ |
| 다중 녹화 출력 | ✅ | ❌ |
| 동시 녹화 + 스냅샷 | ✅ | ⚠️(기본 스냅샷 지원) |
| 출력별 다른 해상도 | ✅ | ❌ |
| 가상 카메라 출력 | ✅ | ❌ |
| 타임시프트 / 지연 재생 | ✅ | ❌ |
스트리밍 프로토콜
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| RTMP Push (YouTube, Twitch) | ✅ | ❌ |
| RTSP 서버 모드 | ✅ | ❌ |
| SRT (Caller / Listener) | ✅ | ❌ |
| HLS 세그먼트 생성 | ✅ | ❌ |
| NDI 출력 | ✅ | ❌ |
| UDP / TCP 유니캐스트 / 멀티캐스트 | ✅ | ❌ |
비디오 처리
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| 실시간 리사이즈 / 크롭 | ✅ | ✅ |
| 디인터레이스 | ✅ | ✅ |
| 색상 조정 (밝기, 대비) | ✅ | ✅ |
| 텍스트 오버레이 (타임스탬프, 워터마크) | ✅ | ✅ |
| 이미지 오버레이 / 로고 | ✅ | ✅ |
| GPU 가속 비디오 효과 | ✅ | ❌ |
| 크로마 키 (그린 스크린) | ✅ | ❌ |
| 화면 속 화면(PIP) | ✅ | ❌ |
오디오
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| 오디오 장치 캡처 | ✅ | ✅ |
| 시스템 오디오 (루프백) 캡처 | ✅ | ❌ |
| 오디오 믹싱 (다중 입력) | ✅ | ❌ |
| 실시간 볼륨 / 게인 제어 | ✅ | ⚠️ |
| 오디오 효과 (에코, 리버브) | ✅ | ❌ |
| VU 미터 / 레벨 모니터링 | ✅ | ⚠️ |
감지 및 분석
| 기능 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| 모션 감지 | ✅ | ✅ |
| 얼굴 감지 | ✅ | ❌ |
| 바코드 / QR 코드 읽기 | ✅ | ❌ |
| OCR 텍스트 인식 | ❌ | ✅ |
| 객체 추적 | ✅ | ❌ |
| 오디오 레벨 감지 | ✅ | ⚠️ |
플랫폼 지원
운영 체제 호환성
| 플랫폼 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| Windows x64 | ✅ | ✅ |
| Windows ARM64 | ✅ | ❌ |
| macOS (Apple Silicon + Intel) | ✅ | ❌ |
| Linux x64 (Ubuntu, Debian, Fedora) | ✅ | ❌ |
| Linux ARM64 (Raspberry Pi) | ✅ | ❌ |
| Android (.NET MAUI 경유) | ✅ | ❌ |
| iOS (.NET MAUI 경유) | ✅ | ❌ |
UI 프레임워크 호환성
| 프레임워크 | Video Capture SDK | TVideoGrabber |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Console / Service | ✅ | ❌ |
| ASP.NET Core (백그라운드 서비스) | ✅ | ❌ |
| Blazor (서버측 처리) | ✅ | ❌ |
가격 비교
Video Capture SDK .NET 가격
개발자 1명, 비상업적 사용
개발자 1명, 상업적 사용, 모든 기능 포함
최대 3명 개발자, 상업적 사용, 1년 업데이트
최대 8명 개발자, 상업적 사용, 1년 업데이트
All licenses include:
- ✓ 로열티 프리 배포
- ✓ 모든 기능 포함 (스트리밍, NDI, GPU 효과, 다중 출력)
- ✓ 모든 소스 코드 예제
- ✓ 우선 티켓 지원
- ✓ 5개 플랫폼 타겟 모두 포함
TVideoGrabber 가격
단일 출력 캡처, 기본 기능, Windows만
NDI 소스/출력 지원 추가
고급 하드웨어 인코딩 지원 추가
모든 애드온 포함 — 여전히 Windows만, 스트리밍 없음, 단일 출력
총 소유 비용
동등한 기능 세트를 비교하면 가격 상황이 크게 달라집니다. 모든 애드온이 포함된 TVideoGrabber 라이선스는 EUR 2,595이며 Windows 전용 단일 출력 캡처만 제공합니다. EUR 1,000의 Video Capture SDK Professional에는 크로스 플랫폼 지원, 스트리밍, 다중 출력, GPU 효과 등이 포함되어 있으며, 가격은 절반 미만입니다.
- ⚠SDK Professional (EUR 1,000)은 모든 것 포함 vs TVideoGrabber 풀 스택 (EUR 2,595)은 격차 있음
- ⚠SDK에 스트리밍 프로토콜 (RTMP, SRT, HLS) 포함 — TVideoGrabber는 어떤 가격에서도 없음
- ⚠SDK에 다중 출력 녹화 포함 — TVideoGrabber는 어떤 가격에서도 없음
- ⚠SDK는 5개 플랫폼 지원 — TVideoGrabber는 Windows만
- ⚠SDK에 GPU 가속 효과 포함 — TVideoGrabber는 기본 처리만
코드 예제
예제 1: 웹캠을 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예제 2: ONVIF PTZ 제어가 포함된 IP 카메라
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예제 3: 다중 출력 녹화 + 스트리밍
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.예제 4: 녹화 포함 모션 감지
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.의사결정 매트릭스
| 요구 사항 | Video Capture SDK | TVideoGrabber | 승자 |
|---|---|---|---|
| 크로스 플랫폼 (Windows, Mac, Linux, 모바일) | Video Capture SDK | ||
| 다중 출력 (동시 녹화 + 스트림) | Video Capture SDK | ||
| 실시간 오디오 효과 | Video Capture SDK | ||
| GPU 가속 비디오 효과 | Video Capture SDK | ||
| RTMP / HLS / SRT 스트리밍 | Video Capture SDK | ||
| 가상 카메라 출력 | Video Capture SDK | ||
| 파일 분할 / 타임시프트 | Video Capture SDK | ||
| 하드웨어 인코딩 (NVENC, QSV) | Video Capture SDK | ||
| 추가 비용 없는 NDI | Video Capture SDK | ||
| 캡처 중 OCR | TVideoGrabber |
결론
Video Capture SDK .NET
Video Capture SDK는 5개 운영 체제, 7개 UI 프레임워크를 지원하고 스트리밍, 다중 출력, GPU 효과, NDI, 하드웨어 인코딩 등 모든 기능을 EUR 1,000부터의 단일 라이선스에 포함하는 포괄적이고 현대적인 캡처 플랫폼을 제공합니다. 크로스 플랫폼 캡처 애플리케이션을 구축하는 팀이나 스트리밍 및 다중 출력 녹화가 필요한 프로젝트에서 SDK는 애드온 포함 TVideoGrabber보다 훨씬 낮은 총 비용으로 더 많은 가치를 제공합니다.
TVideoGrabber
TVideoGrabber는 견고한 DirectShow 통합과 고유한 OCR 기능을 갖춘 성숙한 Windows 전용 캡처 컴포넌트입니다. 비디오 피드에서 텍스트 인식이 필요한 간단한 Windows 전용 캡처 프로젝트에 합리적인 선택입니다. 그러나 스트리밍, 다중 출력 지원, 크로스 플랫폼 호환성의 부재와 높은 애드온 비용(총 EUR 2,595)은 현대 애플리케이션 개발에 대한 매력을 제한합니다.
The Reality
OCR 요구 사항이 있고 스트리밍이나 다중 출력이 필요 없는 Windows 전용 프로젝트에는 TVideoGrabber가 실행 가능한 옵션입니다. 그 외 거의 모든 비디오 캡처 시나리오 — 크로스 플랫폼, 스트리밍, 다중 출력, GPU 효과 또는 비용 효율적 개발 — 에서는 Video Capture SDK가 더 낮은 총 가격으로 더 강력한 선택입니다.
