Last updated: 2026๋ 9์
Video Capture SDK .NET vs LibVLCSharp
ํฌ๊ด์ ์ธ .NET ๋น๋์ค ์บก์ฒ ๋น๊ต
.NET ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ๋น๋์ค ์บก์ฒ ํ๋ ์์ํฌ๋ฅผ ์ ํํ๋ ๊ฒ์ ์ค์ํ ์ํคํ ์ฒ ๊ฒฐ์ ์ ๋๋ค. ์ด ๊ฐ์ด๋๋ VisioForge Video Capture SDK .NET(์ ์ฉ ์บก์ฒ ์์ง)๊ณผ LibVLCSharp(VLC ๋ฏธ๋์ด ์์ง์ .NET ๋ฐ์ธ๋ฉ) ๊ฐ์ ์์ธํ๊ณ ๊ณต์ ํ ๋น๊ต๋ฅผ ์ ๊ณตํฉ๋๋ค. LibVLCSharp๋ ๋ฏธ๋์ด ์ฌ์์ ๋ฐ์ด๋๋ฉฐ ์บก์ฒ ์ฅ์น๋ฅผ ์ด ์ ์์ง๋ง, Video Capture SDK๋ ์ ๋ฌธ์ ์ธ ๋น๋์ค ์บก์ฒ ์ํฌํ๋ก์ฐ๋ฅผ ์ํด ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. ์ ๋ณด์ ๊ธฐ๋ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋๋ก ์ํคํ ์ฒ, ๊ธฐ๋ฅ, ์ฑ๋ฅ, ๋ผ์ด์ ์ค ๋ฐ ์ค์ ์ฝ๋๋ฅผ ๊ฒํ ํฉ๋๋ค.
์ฐ โฌ250๋ถํฐ ยท Lifetime ๋ผ์ด์ ์ค โฌ750๋ถํฐ
์์ฝ
| ์ธก๋ฉด | Video Capture SDK .NET | LibVLCSharp |
|---|---|---|
| ์ํคํ ์ฒ | ๋์ผ ์์ง: ๋ค์ดํฐ๋ธ DirectShow/Media Foundation + ๋ด์ฅ GStreamer ํ์ดํ๋ผ์ธ | libvlc C interop์ ํตํ ๋ชจ๋๋ฆฌ์ VLC ๋ฏธ๋์ด ์์ง |
| ์ฃผ์ ๋ชฉ์ | ์ ๋ฌธ์ ์ธ ๋น๋์ค ์บก์ฒ, ๋ นํ, ์คํธ๋ฆฌ๋ฐ ๋ฐ ์ฒ๋ฆฌ | ๊ธฐ๋ณธ ์บก์ฒ ์ฅ์น ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋ฏธ๋์ด ์ฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
| ์บก์ฒ ์์ค | ์น์บ , ํ๋ฉด, IP ์นด๋ฉ๋ผ, ์บก์ฒ ์นด๋, TV ํ๋, NDI, ์ฐ์ ์ฉ ์นด๋ฉ๋ผ | dshow:// ๊ฒฝ์ ์น์บ , screen:// ๊ฒฝ์ ํ๋ฉด, URL ๊ฒฝ์ IP ์นด๋ฉ๋ผ |
| ๋ผ์ด๋ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ | ์ค๋ฒ๋ ์ด์ ํจ๊ณผ๊ฐ ํฌํจ๋ ๋ด์ฅ GPU ๊ฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ | ๋ด์ฅ ๋น๋์ค ์ํผ์ค ๋ ๋๋ง(์ฌ์ ์งํฅ) |
| ๋ นํ ํ์ | MP4, MKV, WebM, AVI, WMV, MOV, TS, GIF + ํ์ ํ๋ ์ถ๋ ฅ ํด๋์ค๋ก 30๊ฐ ์ด์ | sout ํธ๋์ค์ฝ๋ ์ฒด์ธ ๊ฒฝ์ โ ๋ฌธ์์ด ๊ธฐ๋ฐ ๊ตฌ์ฑ |
| ๋ค์ค ์ถ๋ ฅ | ๋์ ๋ นํ + ์คํธ๋ฆผ + ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ํ ๋ค์ดํฐ๋ธ Outputs_Add API | sout duplicate ์ง์์ด ๊ฒฝ์ โ ์ทจ์ฝํ ๋ฌธ์์ด ๊ตฌ๋ฌธ |
| ๋น๋์ค ํจ๊ณผ | ์บก์ฒ ์ค 40๊ฐ ์ด์์ CPU ๋ฐ GPU ๊ฐ์ ํจ๊ณผ | ์บก์ฒ ์ค ์ค์๊ฐ ํจ๊ณผ ์์ |
| ๊ฐ์ง | ๋ชจ์ , ์ผ๊ตด, ๋ฐ์ฝ๋/QR ๊ฐ์ง ๋ด์ฅ | ๊ฐ์ง ๊ธฐ๋ฅ ์์ |
| ๋ผ์ด์ ์ค | ๊ฐ๋ฐ์๋น ์์ ์ฉ ๋ผ์ด์ ์ค(๊ตฌ๋ ๋๋ ์๊ตฌ) | LGPL 2.1 โ ๋์ ๋งํฌ ์ ๋ฌด๋ฃ |
| ๊ฐ๊ฒฉ | EUR 250(๊ตฌ๋ )๋ถํฐ EUR 1,500(LifetimeยทTeam)๊น์ง | ๋ฌด๋ฃ(LGPL 2.1) |
์ํคํ ์ฒ ์์ธ ๋ถ์
Video Capture SDK .NET ์ํคํ ์ฒ
Video Capture SDK๋ ๋์ผ ์์ง ์ค๊ณ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ ์์ง์ Windows์์ DirectShow์ Media Foundation์ ๋ํํ์ฌ OS๊ฐ ๋ ธ์ถํ๋ ๋ชจ๋ ์บก์ฒ ์ฅ์น์ ๋ํ ๋ค์ดํฐ๋ธ ์ ๊ทผ์ ์ ๊ณตํฉ๋๋ค. ๋ณด์กฐ ๋ด์ฅ GStreamer ํ์ดํ๋ผ์ธ์ ํฌ๋ก์ค ํ๋ซํผ ์บก์ฒ, ๊ณ ๊ธ ์ฝ๋ฑ ์์ ๋ฐ IP ์นด๋ฉ๋ผ ์์ง์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ ์์ง์ ํตํฉ๋ .NET API ํ๋ฉด์ ๊ณต์ ํ๋ฏ๋ก ์ ํ ์ ์ฝ๋ ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์ต๋๋ค.
- โถDirectShow ๋ฐ Media Foundation ํํฐ ๊ทธ๋ํ๋ฅผ ํตํ ๋ค์ดํฐ๋ธ Windows ์บก์ฒ
- โถmacOS, Linux, iOS ๋ฐ Android์ฉ ํฌ๋ก์ค ํ๋ซํผ GStreamer ์์ง
- โถDirect3D / OpenGL ๋ ๋๋ฌ๋ฅผ ํตํ GPU ๊ฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- โถ.NET async/await ์ง์์ด ํฌํจ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ
- โถ๋จ์ผ ํ๋ก์ธ์ค ๋ชจ๋ธ โ ์์ ํ๋ก์ธ์ค ๊ด๋ฆฌ ๋ถํ์
- โถ๋ นํ ๋ฐ ์คํธ๋ฆฌ๋ฐ ๊ตฌ์ฑ์ ์ํ ํ์ ํ๋ ์ถ๋ ฅ ํด๋์ค
LibVLCSharp ์ํคํ ์ฒ
LibVLCSharp๋ VLC ๋ฏธ๋์ด ํ๋ ์ด์ด์ ํต์ฌ ์์ง์ธ libvlc์ ๊ณต์ .NET ๋ฐ์ธ๋ฉ์ ๋๋ค. VLC์ C API์ ๋ํ ๊ด๋ฆฌํ ๋ํผ๋ฅผ ์ ๊ณตํ์ฌ VLC์ ๊ด๋ฒ์ํ ๋ฏธ๋์ด ์ฌ์ ๊ธฐ๋ฅ์ ์ ๊ทผํ ์ ์๊ฒ ํฉ๋๋ค. ์ฃผ๋ก ์ฌ์์ฉ์ผ๋ก ์ค๊ณ๋์์ง๋ง VLC์ ๋ฏธ๋์ด ๋ฆฌ์์ค ๋ก์ผ์ดํฐ ๊ตฌ๋ฌธ(dshow://, screen://, v4l2://)์ ์ฌ์ฉํ์ฌ ์บก์ฒ ์ฅ์น๋ฅผ ์ด ์ ์์ต๋๋ค.
- โถP/Invoke๋ฅผ ํตํ libvlc C API์ ๊ด๋ฆฌํ .NET ๋ํผ
- โถ๋ชจ๋ ๋ฏธ๋์ด ์์ ์ ์ฒ๋ฆฌํ๋ ๋ชจ๋๋ฆฌ์ VLC ์์ง
- โถURL ์คํ์ผ ๋ฏธ๋์ด ๋ฆฌ์์ค ๋ก์ผ์ดํฐ๋ฅผ ํตํด ์ ๊ทผํ๋ ์บก์ฒ ์ฅ์น
- โถsout(์คํธ๋ฆผ ์ถ๋ ฅ) ๋ฌธ์์ด ์ฒด์ธ์ ํตํด ๊ตฌ์ฑ๋๋ ๋ นํ
- โถ์ฌ์ ์ฐ์ ์ค๊ณ โ ์บก์ฒ๋ ๋ณด์กฐ ์ฌ์ฉ ์ฌ๋ก
- โถํ๋ซํผ๋ณ VLC ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํ ํฌ๋ก์ค ํ๋ซํผ
์ฃผ์ ์ํคํ ์ฒ ์ฐจ์ด์
| ์ธก๋ฉด | Video Capture SDK | LibVLCSharp |
|---|---|---|
| ์ค๊ณ ์ด์ | ๋น๋์ค ์บก์ฒ ์ํฌํ๋ก์ฐ ์ ์ฉ์ผ๋ก ๊ตฌ์ถ | ์บก์ฒ๋ฅผ ๋ณด์กฐ ๊ธฐ๋ฅ์ผ๋ก ํ๋ ๋ฏธ๋์ด ์ฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
| ์ฅ์น ๊ฒ์ | ์ ์ฒด ์ฅ์น ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๋ค์ดํฐ๋ธ OS ์ด๊ฑฐ API | ์๋ dshow:// ๋๋ v4l2:// URL ๊ตฌ์ฑ |
| ๋ นํ ๊ตฌ์ฑ | ํ์ ํ๋ .NET ์ถ๋ ฅ ํด๋์ค(MP4Output, H264EncoderSettings) | ๋ฌธ์์ด ๊ธฐ๋ฐ sout ํธ๋์ค์ฝ๋ ์ฒด์ธ |
| ์ค๋ฅ ์ฒ๋ฆฌ | .NET ์์ธ ๋ฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ค๋ฅ | VLC ๋ก๊ทธ ์ฝ๋ฐฑ ๋ฐ ์ด๋ฒคํธ ๊ตฌ๋ |
| ๋ค์ค ์ถ๋ ฅ | ๋ค์ดํฐ๋ธ Outputs_Add API โ ๊ด๋ฆฌํ์ด๊ณ ํ์ ์์ | sout duplicate ์ง์์ด โ ์ทจ์ฝํ ๋ฌธ์์ด ํ์ฑ |
| ํจ๊ณผ ํ์ดํ๋ผ์ธ | ์บก์ฒ ์ค ๋ด์ฅ CPU + GPU ํจ๊ณผ ์ฒด์ธ | ์บก์ฒ์ฉ ์ค์๊ฐ ํจ๊ณผ ํ์ดํ๋ผ์ธ ์์ |
๊ธฐ๋ฅ๋ณ ๋น๊ต
์บก์ฒ ์์ค
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| USB ์น์บ | โ | โ ๏ธ(์ ํ๋ ์ ์ด๋ก dshow:// ๊ฒฝ์ ) |
| ๋ด์ฅ ๋ ธํธ๋ถ ์นด๋ฉ๋ผ | โ | โ ๏ธ(dshow:// URL ๊ฒฝ์ ) |
| ํ๋ฉด/๋ฐ์คํฌํฑ ์บก์ฒ | โ | โ ๏ธ(screen:// ๊ฒฝ์ ๊ธฐ๋ณธ โ ์์ญ ์ ํ ์์) |
| ์ ํ๋ฆฌ์ผ์ด์ ์ฐฝ ์บก์ฒ | โ | โ |
| IP ์นด๋ฉ๋ผ(RTSP/ONVIF) | โ | โ ๏ธ(URL ๊ธฐ๋ฐ, ์๋ ์ฌ์ฐ๊ฒฐ ์์) |
| ์บก์ฒ ์นด๋(Blackmagic DeckLink) | โ | โ |
| TV ํ๋(BDA/DVB) | โ | โ |
| NDI ์์ค | โ | โ |
| ์ฐ์ ์ฉ ์นด๋ฉ๋ผ(GigE Vision, USB3 Vision) | โ | โ |
| ๊ฐ์ ์นด๋ฉ๋ผ(OBS Virtual Cam) | โ | โ ๏ธ(Windows์์๋ง dshow:// ๊ฒฝ์ ) |
๋ผ์ด๋ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| ๋ด์ฅ ๋น๋์ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ | โ | โ (์ฌ์ ์งํฅ ์ํผ์ค) |
| GPU ๊ฐ์ ๋ ๋๋ง | โ | โ |
| ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ ํ ์คํธ/์ด๋ฏธ์ง ์ค๋ฒ๋ ์ด | โ | โ(์บก์ฒ ์ค ์ค๋ฒ๋ ์ด API ์์) |
| ๋ นํ ์๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ | โ | โ |
| ์ฌ๋ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ฐฝ | โ | โ ๏ธ(์ฌ๋ฌ MediaPlayer ์ธ์คํด์ค ํ์) |
| WinForms / WPF / MAUI ์ปจํธ๋กค | โ | โ (VideoView ์ปจํธ๋กค ์ฌ์ฉ ๊ฐ๋ฅ) |
๋ นํ
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| MP4(H.264 / H.265) | โ | โ ๏ธ(sout ํธ๋์ค์ฝ๋ ๋ฌธ์์ด ๊ฒฝ์ ) |
| MKV ์ปจํ ์ด๋ | โ | โ ๏ธ(sout ํธ๋์ค์ฝ๋ ๋ฌธ์์ด ๊ฒฝ์ ) |
| WebM(VP8 / VP9) | โ | โ ๏ธ(sout ํธ๋์ค์ฝ๋ ๋ฌธ์์ด ๊ฒฝ์ ) |
| AVI | โ | โ ๏ธ(sout ํธ๋์ค์ฝ๋ ๋ฌธ์์ด ๊ฒฝ์ ) |
| WMV / ASF | โ | โ ๏ธ(sout ํธ๋์ค์ฝ๋ ๋ฌธ์์ด ๊ฒฝ์ ) |
| ํ์ ํ๋ ์ถ๋ ฅ ๊ตฌ์ฑ | โ | โ(๋ชจ๋ ๊ตฌ์ฑ์ ๋ฌธ์์ด ๊ธฐ๋ฐ) |
| ์ค๋์ค ์ ์ฉ ๋ นํ | โ | โ ๏ธ(sout ํธ๋์ค์ฝ๋ ๋ฌธ์์ด ๊ฒฝ์ ) |
| ์ธ๊ทธ๋จผํธ ๋ นํ(์๊ฐ/ํฌ๊ธฐ๋ณ ๋ถํ ) | โ | โ |
| ์ฌ์ ์ด๋ฒคํธ ๋ นํ (์ํ ๋ฒํผ) | โ | โ |
๋ค์ค ์ถ๋ ฅ
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| ๋์ ๋ นํ + ์คํธ๋ฆฌ๋ฐ | โ | โ ๏ธ(sout duplicate ๊ฒฝ์ โ ์ทจ์ฝ) |
| ์ฌ๋ฌ ๋ นํ ์ถ๋ ฅ | โ | โ ๏ธ(sout duplicate ๊ฒฝ์ โ ์ทจ์ฝ) |
| ๋ค์ดํฐ๋ธ Outputs_Add API | โ | โ |
| ๋ ๋ฆฝ์ ์ถ๋ ฅ ์ ์ด | โ | โ |
| ๋ นํ ์ค ์ค๋ ์ท | โ | โ ๏ธ(TakeSnapshot ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ์ ํ์ ) |
์คํธ๋ฆฌ๋ฐ
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| RTMP Push | โ | โ ๏ธ(sout ๊ฒฝ์ โ ์ ํ๋ ์ ์ด) |
| RTSP ์๋ฒ ๋ชจ๋ | โ | โ |
| SRT(Caller / Listener) | โ | โ |
| HLS ์ธ๊ทธ๋จผํธ ์์ฑ | โ | โ ๏ธ(sout ๊ฒฝ์ โ ์ ํ์ ) |
| UDP / TCP ์ ๋์บ์คํธ / ๋ฉํฐ์บ์คํธ | โ | โ ๏ธ(sout rtp/udp ๊ฒฝ์ ) |
| ํ์ ํ๋ ์คํธ๋ฆฌ๋ฐ ๊ตฌ์ฑ | โ | โ(๋ชจ๋ ๊ตฌ์ฑ์ ๋ฌธ์์ด ๊ธฐ๋ฐ sout ์ฒด์ธ) |
๋น๋์ค ์ฒ๋ฆฌ
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| ์ค์๊ฐ ํฌ๊ธฐ ์กฐ์ /์๋ฅด๊ธฐ | โ | โ(์บก์ฒ ์ค ์ฒ๋ฆฌ ์์) |
| ๋์ธํฐ๋ ์ด์ค | โ | โ (VLC์ ๋ด์ฅ ๋์ธํฐ๋ ์ด์ค ์์) |
| ์์ ์กฐ์ (๋ฐ๊ธฐ, ๋๋น) | โ | โ(์บก์ฒ ์ค ํจ๊ณผ ์์) |
| ํ ์คํธ ์ค๋ฒ๋ ์ด/์ํฐ๋งํฌ | โ | โ(์บก์ฒ ์ค ์ค๋ฒ๋ ์ด ์์) |
| ์ด๋ฏธ์ง ์ค๋ฒ๋ ์ด/๋ก๊ณ | โ | โ(์บก์ฒ ์ค ์ค๋ฒ๋ ์ด ์์) |
| ํฝ์ฒ ์ธ ํฝ์ฒ | โ | โ |
| ํฌ๋ก๋ง ํค(๊ทธ๋ฆฐ ์คํฌ๋ฆฐ) | โ | โ |
| GPU ๊ฐ์ ํํฐ | โ | โ |
์ค๋์ค
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| ์ค๋์ค ์ฅ์น ์บก์ฒ | โ | โ ๏ธ(dshow:// ์ค๋์ค ๊ฒฝ์ ) |
| ์์คํ ์ค๋์ค(๋ฃจํ๋ฐฑ) ์บก์ฒ | โ | โ |
| ์ค๋์ค ๋ฏน์ฑ(๋ค์ค ์ ๋ ฅ) | โ | โ |
| ์ค์๊ฐ ๋ณผ๋ฅจ/๊ฒ์ธ ์ ์ด | โ | โ ๏ธ(๊ธฐ๋ณธ ๋ณผ๋ฅจ ์ ์ด) |
| ์ค๋์ค ํจ๊ณผ(40๊ฐ ์ด์ ๋ด์ฅ) | โ | โ |
| VU ๋ฏธํฐ/๋ ๋ฒจ ๋ชจ๋ํฐ๋ง | โ | โ |
๊ฐ์ง ๋ฐ ๋ถ์
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| ๋ชจ์ ๊ฐ์ง | โ | โ |
| ์ผ๊ตด ๊ฐ์ง | โ | โ |
| ๋ฐ์ฝ๋/QR ์ฝ๋ ์ฝ๊ธฐ | โ | โ |
| ๊ฐ์ฒด ์ถ์ | โ | โ |
| ์ค๋์ค ๋ ๋ฒจ ๊ฐ์ง | โ | โ |
ํ๋ ์ ์ ๊ทผ ๋ฐ ํตํฉ
| ๊ธฐ๋ฅ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| Raw ํ๋ ์ ์ฝ๋ฐฑ(RGB / YUV) | โ | โ ๏ธ(SetVideoCallbacks ๊ฒฝ์ โ ๋ณต์กํ ์ค์ ) |
| Bitmap / SKBitmap / WriteableBitmap | โ | โ(์๋ ๋ณํ ํ์) |
| ML.NET / ONNX์ ํตํฉ | โ | โ ๏ธ(์๋ ํ๋ ์ ์ถ์ถ ํ์) |
| OpenCV Interop | โ | โ ๏ธ(๋น๋์ค ์ฝ๋ฐฑ ๊ฒฝ์ ) |
| ์ง์ GPU ํ ์ค์ฒ ์ ๊ทผ | โ | โ |
| ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ | โ | โ |
ํ๋ซํผ ์ง์
์ด์ ์ฒด์ ํธํ์ฑ
| ํ๋ซํผ | Video Capture SDK | LibVLCSharp |
|---|---|---|
| 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 | LibVLCSharp |
|---|---|---|
| WinForms | โ | โ (VideoView ์ปจํธ๋กค) |
| WPF | โ | โ (VideoView ์ปจํธ๋กค) |
| .NET MAUI | โ | โ (VideoView ์ปจํธ๋กค) |
| Avalonia UI | โ | โ (VideoView ์ปจํธ๋กค) |
| ์ฝ์/์๋น์ค | โ | โ |
| ASP.NET Core(๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค) | โ | โ ๏ธ(์ฌ์ ์งํฅ ์ค๊ณ) |
| Blazor(์๋ฒ ์ธก ์ฒ๋ฆฌ) | โ | โ ๏ธ(์ ํ๋ ์๋ฒ ์ธก ์บก์ฒ) |
๊ฐ๊ฒฉ ๋น๊ต
Video Capture SDK .NET ๊ฐ๊ฒฉ
๊ฐ๋ฐ์ 1๋ช , ์์ ์ ์ฌ์ฉ, 1๋ ์ ๋ฐ์ดํธ
ํ ๋์์ ํ ์์น์ ์๋ ๊ตฌ๋งค ์กฐ์ง์ ๋ชจ๋ ๊ฐ๋ฐ์, ์๊ตฌ ์ฌ์ฉ ๋ฐ ์ ํ ์๋ช ๋์ ์ ๋ฐ์ดํธ
All licenses include:
- โ ๋ก์ดํฐ ๋ฌด๋ฃ ๋ฐฐํฌ
- โ ๋ชจ๋ ์์ค ์ฝ๋ ์์
- โ ์ด๋ฉ์ผ ์ง์
- โ ๋ชจ๋ ํ๋ซํผ ํ๊ฒ ํฌํจ
LibVLCSharp ๋น์ฉ
LGPL 2.1 ๋ผ์ด์ ์ค โ ๋์ ๋งํฌ ํ์
๋ ์ ์ ์ ์ ๋งํฌ ๋๋ LGPL ๋นํธํ ์ฌ์ฉ
LGPL ์ค์ ๊ณ ๋ ค ์ฌํญ
LibVLCSharp์ libvlc๋ LGPL 2.1์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๋ฉ๋๋ค. ์ด๋ LGPL ์กฐ๊ฑด์ ์ค์ํ๋ ํ ์์ ์ ๋ ์ ์ํํธ์จ์ด์์ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ฃผ์ ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- โ libvlc์ ๋์ ์ผ๋ก ๋งํฌํด์ผ ํฉ๋๋ค(์ ์ ๋งํฌ ๋ถ๊ฐ)
- โ ์ฌ์ฉ์๊ฐ LGPL ๋ผ์ด์ ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ๋ ๋ฒ์ ์ผ๋ก ๊ต์ฒดํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ผ ํฉ๋๋ค
- โ LGPL ๋ผ์ด์ ์ค ์ฌ๋ณธ์ ํฌํจํ๊ณ libvlc ์ฌ์ฉ์ ๋์ ๋๊ฒ ์ธ๊ธํด์ผ ํฉ๋๋ค
- โ libvlc ์์ฒด๋ฅผ ์์ ํ๋ ๊ฒฝ์ฐ ํด๋น ์์ ์ฌํญ์ LGPL์ ๋ฐ๋ผ ๊ณต๊ฐํด์ผ ํฉ๋๋ค
- โ ์ ์ ๋งํฌ ๋๋ ํน์ ์๋ฒ ๋๋ ์๋๋ฆฌ์ค์๋ VideoLAN์ ์์ฉ ๋ผ์ด์ ์ค๊ฐ ํ์ํ ์ ์์ต๋๋ค
LGPL์ด GPL๋ณด๋ค ๋ ํ์ฉ์ ์ด์ง๋ง, ์ค์๋ฅผ ์ํด์๋ ๋งํฌ ๋ฐ ๋ฐฐํฌ ์๊ตฌ ์ฌํญ์ ๋ํ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ์ผ๋ถ ๊ธฐ์ ๋ฒ๋ฌดํ์ ์คํ ์์ค ์ค์ ์ํ์ ํผํ๊ธฐ ์ํด ์์ฉ ๋ผ์ด์ ์ค๋ฅผ ์๊ตฌํฉ๋๋ค.
์ฐ โฌ250๋ถํฐ ยท Lifetime ๋ผ์ด์ ์ค โฌ750๋ถํฐ
์ฝ๋ ์์
์์ 1: ์น์บ ์ MP4๋ก ๋ นํ
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.VideoCapture;
// Create the capture engine (pass a VideoView UI control)
var capture = new VideoCaptureCore(videoView as IVideoView);
// Enumerate and set video source (first available webcam)
var devices = capture.Video_CaptureDevices();
capture.Video_CaptureDevice = new VideoCaptureSource(devices[0]);
// Set audio source
var audioDevices = capture.Audio_CaptureDevices();
capture.Audio_CaptureDevice = new AudioCaptureSource(audioDevices[0]);
// Configure MP4 output with default H.264/AAC settings
capture.Output_Format = new MP4Output();
capture.Output_Filename = "recording.mp4";
// Set mode: VideoCapture enables both recording and preview
capture.Mode = VideoCaptureMode.VideoCapture;
// Start recording
await capture.StartAsync();LibVLCSharp
C#using LibVLCSharp.Shared;
// Initialize VLC engine
Core.Initialize();
using var libVLC = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVLC);
// Open webcam via dshow:// URL
// Note: device name must be known in advance
using var media = new Media(libVLC,
"dshow://",
FromType.FromLocation);
// Add recording via sout transcode chain
media.AddOption(
":sout=#transcode{" +
"vcodec=h264,vb=4000," +
"acodec=aac,ab=192" +
"}:duplicate{" +
"dst=std{access=file," +
"mux=mp4," +
"dst=recording.mp4}," +
"dst=display" +
"}");
// Set dshow device (string-based)
media.AddOption(
":dshow-vdev=Integrated Camera");
media.AddOption(
":dshow-adev=Microphone (Realtek Audio)");
// Start โ no typed API, errors in VLC log
mediaPlayer.Play(media);
// To stop: mediaPlayer.Stop();
// No progress events, no state machine์์ 2: ์ค๋ฒ๋ ์ด + ์คํธ๋ฆฌ๋ฐ์ด ํฌํจ๋ ํ๋ฉด ๋ นํ
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.VideoCapture;
using VisioForge.Core.Types.VideoEffects;
var capture = new VideoCaptureCore(videoView as IVideoView);
// Screen capture source (full screen, 30 fps, with cursor)
capture.Screen_Capture_Source = new ScreenCaptureSourceSettings
{
FullScreen = true,
FrameRate = new VideoFrameRate(30),
GrabMouseCursor = true
};
// Enable video effects pipeline
capture.Video_Effects_Enabled = true;
capture.Video_Effects_Clear();
// Add timestamp text overlay
capture.Video_Effects_Add(new VideoEffectTextLogo(true)
{
Text = "{timestamp}",
Left = 10,
Top = 10
});
// Add watermark image overlay
capture.Video_Effects_Add(new VideoEffectImageLogo(true)
{
Filename = "logo.png",
Left = 10,
Top = 50
});
// Record to file
capture.Output_Format = new MP4Output();
capture.Output_Filename = "screen.mp4";
capture.Mode = VideoCaptureMode.ScreenCapture;
// Also stream via RTMP (secondary output)
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = NetworkStreamingFormat.RTMP_FFMPEG_EXE;
capture.Network_Streaming_URL = "rtmp://streaming-server/live/key";
await capture.StartAsync();LibVLCSharp
C#using LibVLCSharp.Shared;
Core.Initialize();
using var libVLC = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVLC);
// Screen capture via screen:// URL
using var media = new Media(libVLC,
"screen://",
FromType.FromLocation);
// Configure screen capture
media.AddOption(":screen-fps=30");
media.AddOption(":screen-follow-mouse");
// Record to file via sout
// Note: No overlay support during capture
// Note: No text/image overlay API
media.AddOption(
":sout=#transcode{" +
"vcodec=h264,vb=8000" +
"}:std{" +
"access=file," +
"mux=mp4," +
"dst=screen.mp4" +
"}");
// Cannot simultaneously stream via RTMP
// sout duplicate is fragile and often fails
// for screen capture + streaming combos
// No overlay API โ cannot add timestamps
// No watermark support during capture
// No region selection for capture area
mediaPlayer.Play(media);์์ 3: ๋ค์ค ์ถ๋ ฅ: ๋ นํ + ์คํธ๋ฆผ + ๋ฏธ๋ฆฌ๋ณด๊ธฐ
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.VideoCapture;
var capture = new VideoCaptureCore(videoView as IVideoView);
// Set webcam source
var devices = capture.Video_CaptureDevices();
capture.Video_CaptureDevice = new VideoCaptureSource(devices[0]);
var audioDevices = capture.Audio_CaptureDevices();
capture.Audio_CaptureDevice = new AudioCaptureSource(audioDevices[0]);
// Primary output: MP4 recording
capture.Output_Format = new MP4Output();
capture.Output_Filename = "recording.mp4";
// Second output: RTMP stream
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = NetworkStreamingFormat.RTMP_FFMPEG_EXE;
capture.Network_Streaming_URL = "rtmp://live.server/app/stream_key";
// Set mode and start โ preview + recording + stream run simultaneously
capture.Mode = VideoCaptureMode.VideoCapture;
await capture.StartAsync();LibVLCSharp
C#using LibVLCSharp.Shared;
Core.Initialize();
using var libVLC = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVLC);
// Open webcam
using var media = new Media(libVLC,
"dshow://",
FromType.FromLocation);
media.AddOption(
":dshow-vdev=Integrated Camera");
// Attempt multi-output via sout duplicate
// WARNING: This is fragile and often fails
media.AddOption(
":sout=#transcode{" +
"vcodec=h264,vb=4000," +
"acodec=aac,ab=192" +
"}:duplicate{" +
"dst=std{access=file," +
"mux=mp4," +
"dst=recording.mp4}," +
"dst=std{access=rtmp," +
"mux=flv," +
"dst=rtmp://live.server/app/key}," +
"dst=display" +
"}");
// No independent bitrate per output
// No low-res backup option
// Single transcode shared across all outputs
// If one output fails, all may fail
// No typed API โ string errors at runtime
mediaPlayer.Play(media);์์ 4: ๊ฐ์ง๊ฐ ํฌํจ๋ RTSP IP ์นด๋ฉ๋ผ ๊ฐ์
Video Capture SDK .NET
C#using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.VideoCapture;
using VisioForge.Core.Types.VideoProcessing;
var cameras = new List<VideoCaptureCore>();
var cameraUrls = new[]
{
"rtsp://192.168.1.101/stream",
"rtsp://192.168.1.102/stream",
"rtsp://192.168.1.103/stream",
"rtsp://192.168.1.104/stream"
};
foreach (var url in cameraUrls)
{
var cam = new VideoCaptureCore();
cam.IP_Camera_Source = new IPCameraSourceSettings
{
URL = new Uri(url),
Type = IPSourceEngine.Auto_FFMPEG
};
// Motion detection
cam.Motion_Detection = new MotionDetectionSettings { Enabled = true };
cam.OnMotion += (s, e) =>
{
Console.WriteLine($"Motion on {url}");
};
// Barcode detection
cam.Barcode_Reader_Enabled = true;
cam.OnBarcodeDetected += (s, e) =>
{
Console.WriteLine($"Barcode: {e.Value}");
};
// Segmented recording (split file every hour)
cam.Output_Format = new MP4Output();
cam.Output_Filename = $"cam_{cameras.Count}.mp4";
cam.SeparateCapture_Enabled = true;
cam.SeparateCapture_TimeThreshold = TimeSpan.FromHours(1);
cam.Mode = VideoCaptureMode.IPCapture;
cameras.Add(cam);
}
foreach (var cam in cameras)
await cam.StartAsync();LibVLCSharp
C#using LibVLCSharp.Shared;
Core.Initialize();
using var libVLC = new LibVLC();
var cameraUrls = new[]
{
"rtsp://192.168.1.101/stream",
"rtsp://192.168.1.102/stream",
"rtsp://192.168.1.103/stream",
"rtsp://192.168.1.104/stream"
};
var players = new List<MediaPlayer>();
foreach (var url in cameraUrls)
{
var player = new MediaPlayer(libVLC);
var media = new Media(libVLC, url,
FromType.FromLocation);
// Record via sout
media.AddOption(
":sout=#transcode{vcodec=h264,vb=2000}" +
":std{access=file,mux=mp4," +
$"dst=cam_{players.Count}.mp4}}");
// No motion detection โ not available
// No barcode detection โ not available
// No face detection โ not available
// No auto-reconnection on stream failure
// No segmented recording support
// Must implement reconnection manually:
player.EndReached += (s, e) =>
{
// Manual reconnect attempt
// ThreadPool.QueueUserWorkItem(_ =>
// player.Play(media));
};
player.Play(media);
players.Add(player);
}
// No event-driven detection
// No managed surveillance features
// Manual process monitoring required๊ฐ ์๋ฃจ์ ์ ์ ํํด์ผ ํ ๋
๋ค์์ด ํ์ํ ๋ Video Capture SDK ์ ํ
- โ์ค์๊ฐ ๋น๋์ค ํจ๊ณผ์ ์ค๋ฒ๋ ์ด๊ฐ ํฌํจ๋ ์ ๋ฌธ์ ์บก์ฒ
- โ๋จ์ผ ํ์ดํ๋ผ์ธ์์์ ๋ค์ค ์ถ๋ ฅ ๋ นํ + ์คํธ๋ฆฌ๋ฐ
- โ๋ชจ์ , ์ผ๊ตด ๋ฐ ๋ฐ์ฝ๋ ๊ฐ์ง๊ฐ ํฌํจ๋ ๊ฐ์ ์์คํ
- โ์บก์ฒ ์ค ์ค์๊ฐ ์ค๋์ค ํจ๊ณผ(40๊ฐ ์ด์)
- โ๋ฐฉ์ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ
- โ์ฐ์ ์ฉ ๋ฐ ์ ๋ฌธ ํ๋์จ์ด ์ง์(DeckLink, GigE Vision)
- โ์บก์ฒ ์ค PiP ๋ฐ ํฌ๋ก๋ง ํค ํฉ์ฑ
- โ์์ญ ์ ํ๊ณผ ์ค๋ฒ๋ ์ด๊ฐ ํฌํจ๋ ํ๋ฉด ๋ นํ
- โ๋ฌธ์์ด ๊ธฐ๋ฐ ๊ตฌ์ฑ ์๋ ์์ ํ ํ์ ํ๋ .NET API
๋ค์์ด ํ์ํ ๋ LibVLCSharp ์ ํ
- โ๊ธฐ๋ณธ ์บก์ฒ ์ฅ์น ์ ๊ทผ์ด ํฌํจ๋ ๋ฏธ๋์ด ์ฌ์
- โLGPL ์ค์๊ฐ ํ์ฉ๋๋ ๋ฌด์์ฐ ํ๋ก์ ํธ
- โํจ๊ณผ๋ ๊ฐ์ง ์๋ ๊ฐ๋จํ ์น์บ ๋ นํ
- โ.NET MAUI ์ ํ๋ฆฌ์ผ์ด์ ์์์ ํฌ๋ก์ค ํ๋ซํผ ๋ฏธ๋์ด ์ฌ์
- โ์ด๋ฏธ VLC ์ธํ๋ผ์ ์ํฌํ๋ก์ฐ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ
- โLGPL ๋ผ์ด์ ์ค์ ํธํ๋๋ ์คํ ์์ค ํ๋ก์ ํธ
- โ๊ธฐ๋ณธ ๋น๋์ค ์บก์ฒ ๊ธฐ๋ฅ์ ์ํ ๋น ๋ฅธ ํ๋กํ ํ์
- โ์ฌ์์ด ์ฃผ์ด๊ณ ์บก์ฒ๊ฐ ๋ถ์ฐจ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ ๋ฐ ๋ฐฐํฌ
Video Capture SDK ๋ฐฐํฌ
- โNuGet ํจํค์ง์ ๋ชจ๋ ๋ค์ดํฐ๋ธ ์ข ์์ฑ ํฌํจ
- โ๋จ์ผ NuGet ์ฐธ์กฐ โ ์ธ๋ถ ๋๊ตฌ ์ค์น ๋ถํ์
- โ์์ ๋ผ์ด์ ์ค๋ก ๋ก์ดํฐ ๋ฌด๋ฃ ์ฌ๋ฐฐํฌ
- โxcopy / MSIX / ClickOnce ๋ฐฐํฌ ์ง์
- โDocker ์ปจํ ์ด๋ ์ง์(Linux ๋ฐ Windows)
- โLGPL ์๋ฌด ์์ โ ๋ ์ ์ํํธ์จ์ด์ ์์
LibVLCSharp ๋ฐฐํฌ
- โ NuGet ํจํค์ง ์ฌ์ฉ ๊ฐ๋ฅ(LibVLCSharp + VideoLAN.LibVLC ํ๋ซํผ ํจํค์ง)
- โ ํ๋ซํผ๋ณ VLC ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ๋ค ํ์(์ฝ 80-150 MB)
- โ LGPL ์ค์์๋ ๋์ ๋งํฌ ๋ฐ ๋ผ์ด์ ์ค ๊ณ ์ง ํ์
- โ ์ฌ์ฉ์๊ฐ libvlc ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ต์ฒดํ ์ ์๋ ๋ฉ์ปค๋์ฆ ์ ๊ณต ํ์
- โ ํ๋ซํผ ํจํค์ง๊ฐ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ ์ฒ๋ฆฌ
- โ ์ ์ ๋งํฌ์๋ VideoLAN ์์ฉ ๋ผ์ด์ ์ค ํ์
๊ฒฐ์ ๋งคํธ๋ฆญ์ค
| ์๊ตฌ ์ฌํญ | Video Capture SDK | LibVLCSharp | ์น์ |
|---|---|---|---|
| ์ ๋ฌธ์ ์บก์ฒ ์ ํ๋ฆฌ์ผ์ด์ | Video Capture SDK | ||
| ๋ค์ค ์ถ๋ ฅ(๋ นํ + ์คํธ๋ฆผ) | Video Capture SDK | ||
| ๊ฐ์ง๊ฐ ํฌํจ๋ ๊ฐ์ | Video Capture SDK | ||
| ์บก์ฒ ์ค ์ค์๊ฐ ํจ๊ณผ | Video Capture SDK | ||
| ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ | Video Capture SDK | ||
| ์ฐ์ ์ฉ/์ ๋ฌธ ํ๋์จ์ด | Video Capture SDK | ||
| PiP/ํฌ๋ก๋ง ํค ํฉ์ฑ | Video Capture SDK | ||
| ์บก์ฒ ์ค 40๊ฐ ์ด์์ ์ค๋์ค ํจ๊ณผ | Video Capture SDK | ||
| ์ค๋ฒ๋ ์ด๊ฐ ํฌํจ๋ ํ๋ฉด ๋ นํ | Video Capture SDK | ||
| ์์ฐ $0(์คํ ์์ค) | LibVLCSharp | ||
| ๊ฐ๋จํ ์น์บ ๋ นํ | LibVLCSharp | ||
| LGPL ํธํ ํ๋ก์ ํธ | LibVLCSharp |
๊ฒฐ๋ก
Video Capture SDK .NET
Video Capture SDK๋ ์ ๋ฌธ์ ์ธ ๋น๋์ค ์บก์ฒ ์ํฌํ๋ก์ฐ์ ๋ฐ์ด๋ ์ ์ฉ ์บก์ฒ ์์ง์ ๋๋ค. ํ์ ํ๋ .NET API, ๋ด์ฅ ํจ๊ณผ ํ์ดํ๋ผ์ธ, ๋ค์ค ์ถ๋ ฅ ์ํคํ ์ฒ, ๊ฐ์ง ๊ธฐ๋ฅ, ์ ๋ฌธ ํ๋์จ์ด ์ง์์ผ๋ก ์บก์ฒ ํ์ง๊ณผ ๊ธฐ๋ฅ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์คํ ์ ํ์ ๋๋ค. ์์ฉ ๋ผ์ด์ ์ค๋ ๊ธฐ์ ๋ฐฐํฌ๋ฅผ ์ํ ๊นจ๋ํ ์ง์ ์ฌ์ฐ๊ถ์ ๋ณด์ฅํฉ๋๋ค.
LibVLCSharp
LibVLCSharp๋ ์บก์ฒ ์ฅ์น๋ ์ด ์ ์๋ ํ๋ฅญํ ๋ฏธ๋์ด ์ฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฃผ๋ก ์ฌ์์ ์ด์ ์ ๋ง์ถ๊ณ ๊ฐ๋ ๊ฐ๋จํ ๋ นํ๋ฅผ ํ๋ ๊ฒฝ์ฐ, LibVLCSharp๋ ์ ๋ฅํ๊ณ ๋ฌด๋ฃ์ธ ์ต์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์์ด ๊ธฐ๋ฐ sout ๊ตฌ์ฑ, ์ค์๊ฐ ํจ๊ณผ ๋ถ์ฌ, ๊ฐ์ง ๊ธฐ๋ฅ ๋ถ์ฌ๋ ์ ๋ฌธ์ ์ธ ์บก์ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํจ์ฌ ๋ ๋ง์ ๋ง์ถค ๊ฐ๋ฐ์ ํ์๋ก ํ๊ฑฐ๋ LibVLCSharp๋ง์ผ๋ก๋ ๊ตฌ์ถํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
The Reality
์บก์ฒ ์ค์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋๋ถ๋ถ์ .NET ๊ฐ๋ฐ์์๊ฒ Video Capture SDK๋ LibVLCSharp๊ฐ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์ง ์์ ์ ๋ฌธ๊ฐ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. LibVLCSharp๋ ์ฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์ ๋น๋๋ฉฐ ์์ฐ์ด ์ฃผ์ ์ ์ฝ์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์บก์ฒ์ ํฉ๋ฆฌ์ ์ธ ์ ํ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ๊ณผ, ๊ฐ์ง, ๋ค์ค ์ถ๋ ฅ ๋๋ ์ ๋ฌธ ํ๋์จ์ด ์ง์์ด ํ์ํ๋ค๋ฉด Video Capture SDK๊ฐ ์ค์ฉ์ ์ธ ์ ํ์ ๋๋ค.
Frequently Asked Questions
์ต๊ณ ์ .NET ๋น๋์ค ์บก์ฒ SDK๋ ๋ฌด์์ธ๊ฐ์?
C#์์ ์น์บ ๋น๋์ค๋ฅผ ์บก์ฒํ๋ ๋ฐฉ๋ฒ์?
LibVLCSharp๋ C#์์ ํจ๊ณผ๊ฐ ํฌํจ๋ ์น์บ ์ ์บก์ฒํ ์ ์๋์?
C# .NET์์ ํ๋ฉด์ ๋ นํํ๋ ๋ฐฉ๋ฒ์?
Video Capture SDK๋ RTSP IP ์นด๋ฉ๋ผ๋ฅผ ์ง์ํ๋์?
Video Capture SDK์ LibVLCSharp์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์์ํ๊ธฐ
LibVLCSharp๋ ์คํ ์์ค์ ๋๋ค. Videolabs ์์ฉ ๋ผ์ด์ ์ค ๊ฐ๊ฒฉ์ videolabs.io/store/libvlcsharp/ ์ฐธ์กฐ(2026-09-06 ํ์ธ). ๊ฐ๊ฒฉ์ ์๊ณ ์์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
