Last updated: 2026๋ 9์
Video Capture SDK .NET vs Datastead TVideoGrabber
ํฌ๊ด์ ์ธ .NET ๋น๋์ค ์บก์ฒ ์ปดํฌ๋ํธ ๋น๊ต
.NET ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ๋น๋์ค ์บก์ฒ ์ปดํฌ๋ํธ๋ฅผ ์ ํํ๋ฉด ํ๋ก์ ํธ์ ๊ธฐ๋ฅ๊ณผ ์ฅ๊ธฐ์ ์ธ ๋น์ฉ์ด ๊ฒฐ์ ๋ฉ๋๋ค. ์ด ๊ฐ์ด๋๋ VisioForge Video Capture SDK .NET(5๊ฐ ์ด์ ์ฒด์ ๋ฅผ ์ง์ํ๋ ์ต์ ๋์ผ ์์ง ์บก์ฒ ํ๋ซํผ)๊ณผ Datastead TVideoGrabber(Windows์ฉ ์ฑ์ํ DirectShow ๊ธฐ๋ฐ ์บก์ฒ ์ปดํฌ๋ํธ) ๊ฐ์ ์์ธ ๋น๊ต๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ํคํ ์ฒ, ๊ธฐ๋ฅ, ๋ค์ค ์ถ๋ ฅ ์ง์, ์คํธ๋ฆฌ๋ฐ, ๊ฐ๊ฒฉ ๋ฐ ์ค์ ์ฝ๋๋ฅผ ๊ฒํ ํ์ฌ ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋๋ก ํฉ๋๋ค.
์ฐ โฌ250๋ถํฐ ยท Lifetime ๋ผ์ด์ ์ค โฌ750๋ถํฐ
์์ฝ
| ์ธก๋ฉด | Video Capture SDK .NET | TVideoGrabber |
|---|---|---|
| ์ํคํ ์ฒ | ๋์ผ ์์ง: ๋ค์ดํฐ๋ธ DirectShow/Media Foundation + ๋ด์ฅ FFmpeg ํ์ดํ๋ผ์ธ | ์ฑ๊ธ ์์ง: DirectShow ์์ฑ ๊ธฐ๋ฐ ์ปดํฌ๋ํธ |
| ํ๋ซํผ ์ง์ | Windows, macOS, Linux, Android, iOS (5๊ฐ ํ๋ซํผ) | Windows๋ง ์ง์ |
| ๊ฐ๊ฒฉ | ์ฐ๊ฐ โฌ250โโฌ500 ๋๋ โฌ750โโฌ1,500 LifetimeยทTeam | EUR 695 ๊ธฐ๋ณธ, NDI ๋ฐ ์ธ์ฝ๋ ์ ๋์จ ๊ฐ EUR 950, ๋ค ์ ํ ์ ์ฒด๋ฅผ ํฌํจํ๋ SUITE EUR 2,100 |
| ์ ํฉํ ์ฉ๋ | ์คํธ๋ฆฌ๋ฐ, ๋ค์ค ์ถ๋ ฅ, ์ค์๊ฐ ํจ๊ณผ๊ฐ ํฌํจ๋ ํฌ๋ก์ค ํ๋ซํผ ์บก์ฒ ์ฑ | 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๋ช , 12๊ฐ์์ ๋ง์ด๋ยท๋ฉ์ด์ ์ ๋ฐ์ดํธ ๋ฐ ์ด๋ฉ์ผ ์ง์
์ง์ ๋ ๊ฐ๋ฐ์ 1๋ช , 12๊ฐ์์ ๋ง์ด๋ยท๋ฉ์ด์ ์ ๋ฐ์ดํธ ๋ฐ ์ด๋ฉ์ผ ์ง์
์ง์ ๋ ๊ฐ๋ฐ์ 1๋ช , 12๊ฐ์์ ๋ง์ด๋ยท๋ฉ์ด์ ์ ๋ฐ์ดํธ ๋ฐ ์ด๋ฉ์ผ ์ง์
ํ ๋์์ ํ ์ฅ์์ ์๋ ๊ตฌ๋งค ์กฐ์ง์ ๋ชจ๋ ๊ฐ๋ฐ์, ์๊ตฌ ์ฌ์ฉ, ์ ํ ์๋ช ๋์์ ์ ๋ฐ์ดํธ ๋ฐ ์ด๋ฉ์ผ ์ง์
All licenses include:
- โ ๋ก์ดํฐ ํ๋ฆฌ ๋ฐฐํฌ
- โ ๋ชจ๋ ๊ธฐ๋ฅ ํฌํจ (์คํธ๋ฆฌ๋ฐ, NDI, GPU ํจ๊ณผ, ๋ค์ค ์ถ๋ ฅ)
- โ ๋ชจ๋ ์์ค ์ฝ๋ ์์
- โ ์ด๋ฉ์ผ ์ง์
- โ 5๊ฐ ํ๋ซํผ ํ๊ฒ ๋ชจ๋ ํฌํจ
TVideoGrabber ๊ฐ๊ฒฉ
๋จ์ผ ์ถ๋ ฅ ์บก์ฒ, ๊ธฐ๋ณธ ๊ธฐ๋ฅ, Windows๋ง
NDI ์์ค/์ถ๋ ฅ ์ง์ ์ถ๊ฐ
๊ณ ๊ธ ํ๋์จ์ด ์ธ์ฝ๋ฉ ์ง์ ์ถ๊ฐ
๊ธฐ๋ณธ์ ์ธ ๊ฐ์ง ์ ๋์จ์ ๋ชจ๋ ๋ฒ๋ค โ ์ฌ์ ํ Windows๋ง, ์คํธ๋ฆฌ๋ฐ ์์, ๋จ์ผ ์ถ๋ ฅ
์ด ์์ ๋น์ฉ
๋๋ฑํ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ๋น๊ตํ๋ฉด ๊ฐ๊ฒฉ ์ํฉ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ๊ธฐ๋ณธ ๋ผ์ด์ ์ค์ ๋ชจ๋ ์ ๋์จ์ ๊ฐ์ถ TVideoGrabber ๊ตฌ์ฑ์ Datastead SUITE๋ก EUR 2,100์ด๋ฉฐ Windows ์ ์ฉ ๋จ์ผ ์ถ๋ ฅ ์บก์ฒ๋ง ์ ๊ณตํฉ๋๋ค. EUR 1,000์ Video Capture SDK Professional์๋ ํฌ๋ก์ค ํ๋ซํผ ์ง์, ์คํธ๋ฆฌ๋ฐ, ๋ค์ค ์ถ๋ ฅ, GPU ํจ๊ณผ ๋ฑ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ, ๊ฐ๊ฒฉ์ ์ ๋ฐ ๋ฏธ๋ง์ ๋๋ค.
- โ SDK Professional (EUR 1,000)์ ๋ชจ๋ ๊ฒ ํฌํจ vs TVideoGrabber SUITE (EUR 2,100)์ ๊ฒฉ์ฐจ ์์
- โ SDK์ ์คํธ๋ฆฌ๋ฐ ํ๋กํ ์ฝ (RTMP, SRT, HLS) ํฌํจ โ TVideoGrabber๋ ์ด๋ค ๊ฐ๊ฒฉ์์๋ ์์
- โ SDK์ ๋ค์ค ์ถ๋ ฅ ๋ นํ ํฌํจ โ TVideoGrabber๋ ์ด๋ค ๊ฐ๊ฒฉ์์๋ ์์
- โ SDK๋ 5๊ฐ ํ๋ซํผ ์ง์ โ TVideoGrabber๋ Windows๋ง
- โ SDK์ GPU ๊ฐ์ ํจ๊ณผ ํฌํจ โ TVideoGrabber๋ ๊ธฐ๋ณธ ์ฒ๋ฆฌ๋ง
์ฐ โฌ250๋ถํฐ ยท Lifetime ๋ผ์ด์ ์ค โฌ750๋ถํฐ
์ฝ๋ ์์
์์ 1: ์น์บ ์ MP4๋ก ๋ นํ
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.VideoCapture;
using VisioForge.Core.Types.Output;
// Create the capture engine
var capture = new VideoCaptureCore();
// Set video source (first available webcam)
var devices = capture.Video_CaptureDevices();
capture.Video_CaptureDevice = new VideoCaptureSource(devices[0].Name);
// Set audio source
var audioDevices = capture.Audio_CaptureDevices();
capture.Audio_CaptureDevice = new AudioCaptureSource(audioDevices[0].Name);
capture.Audio_RecordAudio = true;
// Configure MP4 output with H.264 + AAC
capture.Output_Format = new MP4Output
{
Video = new MP4OutputH264Settings
{
Bitrate = 4000,
Profile = H264Profile.ProfileMain
}
};
capture.Output_Filename = "recording.mp4";
// Capture mode records to file while showing preview
capture.Mode = VideoCaptureMode.VideoCapture;
// 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.ONVIFX;
using VisioForge.Core.Types.VideoCapture;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.FFMPEGEXE;
var capture = new VideoCaptureCore();
// Connect to ONVIF IP camera
capture.IP_Camera_Source = new IPCameraSourceSettings
{
URL = new Uri("rtsp://192.168.1.100:554/stream"),
Login = "admin",
Password = "password",
Type = IPSourceEngine.Auto_FFMPEG
};
capture.Mode = VideoCaptureMode.IPCapture;
// ONVIF PTZ control via ONVIFClientX
var onvif = new ONVIFClientX();
await onvif.ConnectAsync(
"http://192.168.1.100/onvif/device_service", "admin", "password");
var profiles = await onvif.GetProfilesAsync();
var token = profiles[0].token;
// pan, tilt, zoom speeds in range -1..1
await onvif.ContinuousMoveAsync(-0.5f, 0.5f, 0.0f);
await onvif.StopMoveAsync(token, panTilt: true, zoom: true);
await onvif.GoToPresetAsync(token, "1", 1.0f, 1.0f, 1.0f);
// 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 = NetworkStreamingFormat.RTMP_FFMPEG_EXE;
capture.Network_Streaming_Output = new FFMPEGEXEOutput { OutputMuxer = OutputMuxer.FLV };
capture.Network_Streaming_URL = "rtmp://stream.example.com/live";
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;
using VisioForge.Core.Types.VideoCapture;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.FFMPEGEXE;
var capture = new VideoCaptureCore();
// Set webcam source
var devices = capture.Video_CaptureDevices();
capture.Video_CaptureDevice = new VideoCaptureSource(devices[0].Name);
capture.Mode = VideoCaptureMode.VideoCapture;
// Output 1: High-quality local MP4 recording
capture.Output_Format = new MP4Output
{
Video = new MP4OutputH264Settings
{
Bitrate = 8000,
Profile = H264Profile.ProfileHigh
}
};
capture.Output_Filename = "archive.mp4";
// Output 2: Stream the same source to YouTube via RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Audio_Enabled = true;
capture.Network_Streaming_Format = NetworkStreamingFormat.RTMP_FFMPEG_EXE;
capture.Network_Streaming_Output = new FFMPEGEXEOutput { OutputMuxer = OutputMuxer.FLV };
capture.Network_Streaming_URL = "rtmp://a.rtmp.youtube.com/live2/YOUR_KEY";
// File recording and RTMP stream run simultaneously
await capture.StartAsync();
// Roll over to a second file on demand (split recording)
await capture.SeparateCapture_StartAsync("archive_part2.mp4");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;
using VisioForge.Core.Types.VideoCapture;
using VisioForge.Core.Types.VideoProcessing;
using VisioForge.Core.Types.Output;
var capture = new VideoCaptureCore();
// Set video source
var devices = capture.Video_CaptureDevices();
capture.Video_CaptureDevice = new VideoCaptureSource(devices[0].Name);
// Enable motion detection with highlight overlay
capture.Motion_Detection = new MotionDetectionSettings
{
Enabled = true,
Highlight_Enabled = true,
Highlight_Color = MotionCHLColor.Red,
Matrix_Width = 8,
Matrix_Height = 8
};
// Motion event handler (Level is 0-100)
capture.OnMotion += async (s, e) =>
{
Console.WriteLine($"Motion at {DateTime.Now}: Level={e.Level}");
// Roll a timestamped file on motion
await capture.SeparateCapture_StartAsync(
$"motion_{DateTime.Now:yyyyMMdd_HHmmss}.mp4");
};
// Configure output (preview + capture)
capture.Output_Format = new MP4Output
{
Video = new MP4OutputH264Settings { Bitrate = 4000 }
};
capture.Output_Filename = "capture.mp4";
capture.Mode = VideoCaptureMode.VideoCapture;
// Apply detection settings and start
capture.MotionDetection_Update();
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 ์ ์ฉ ์บก์ฒ ํ๋ก์ ํธ์ ํฉ๋ฆฌ์ ์ธ ์ ํ์ ๋๋ค. ๊ทธ๋ฌ๋ ์คํธ๋ฆฌ๋ฐ, ๋ค์ค ์ถ๋ ฅ ์ง์, ํฌ๋ก์ค ํ๋ซํผ ํธํ์ฑ์ ๋ถ์ฌ์ SUITE ๊ฐ๊ฒฉ(๋ค ์ ํ ์ ์ฒด EUR 2,100)์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ํ ๋งค๋ ฅ์ ์ ํํฉ๋๋ค.
The Reality
OCR ์๊ตฌ ์ฌํญ์ด ์๊ณ ์คํธ๋ฆฌ๋ฐ์ด๋ ๋ค์ค ์ถ๋ ฅ์ด ํ์ ์๋ Windows ์ ์ฉ ํ๋ก์ ํธ์๋ TVideoGrabber๊ฐ ์คํ ๊ฐ๋ฅํ ์ต์ ์ ๋๋ค. ๊ทธ ์ธ ๊ฑฐ์ ๋ชจ๋ ๋น๋์ค ์บก์ฒ ์๋๋ฆฌ์ค โ ํฌ๋ก์ค ํ๋ซํผ, ์คํธ๋ฆฌ๋ฐ, ๋ค์ค ์ถ๋ ฅ, GPU ํจ๊ณผ ๋๋ ๋น์ฉ ํจ์จ์ ๊ฐ๋ฐ โ ์์๋ Video Capture SDK๊ฐ ๋ ๋ฎ์ ์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ ๊ฐ๋ ฅํ ์ ํ์ ๋๋ค.
Frequently Asked Questions
TVideoGrabber๋ YouTube ๋๋ Twitch๋ก์ RTMP ์คํธ๋ฆฌ๋ฐ์ ์ง์ํ๋์?
TVideoGrabber๋ ์ฌ๋ฌ ํ์ผ์ ๋์์ ๋ นํํ ์ ์๋์?
๋๋ฑํ ๊ธฐ๋ฅ์ ๋ํด TVideoGrabber๊ฐ SDK๋ณด๋ค ๋น์ผ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
Video Capture SDK๋ TVideoGrabber์ฒ๋ผ ONVIF PTZ ์นด๋ฉ๋ผ ์ ์ด๋ฅผ ์ง์ํ๋์?
macOS๋ Linux์์ TVideoGrabber๋ฅผ ์ฌ์ฉํ ์ ์๋์?
Video Capture SDK๋ TVideoGrabber์ฒ๋ผ OCR์ ์ง์ํ๋์?
TVideoGrabber์์ Video Capture SDK๋ก ์ ํํ ์ ์๋์?
์์ํ๊ธฐ
Datastead ๊ฐ๊ฒฉ์ datastead.com/purchase.html ํ์ ๊ธฐ์ค์ ๋๋ค(TVideoGrabber EUR 695, NDI ๋ฐ ์ธ์ฝ๋ ์ ๋์จ ๊ฐ EUR 950, ๋ค ์ ํ ์ ์ฒด๋ฅผ ํฌํจํ๋ SUITE EUR 2,100)(2026-09-06 ํ์ธ). ๊ฐ๊ฒฉ์ ์๊ณ ์์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
