Last updated: 2026๋ 1์
Media Player SDK .NET vs LibVLCSharp
์ ๋ฌธ .NET ๋น๋์ค ํ๋ ์ด์ด ๋น๊ต
DVD ๋ด๋น๊ฒ์ด์ , ์ค๋์ค ํจ๊ณผ, ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ ๋ฐ ๋ชจ์ ๊ฐ์ง ๊ธฐ๋ฅ์ ๊ฐ์ถ LibVLCSharp ๋์์ ์ฐพ๊ณ ๊ณ์ ๊ฐ์? ์ด ๋น๊ต์์๋ .NET ๋น๋์ค ํ๋ ์ด์ด ๊ฐ๋ฐ์ ์ํ VisioForge Media Player SDK .NET๊ณผ LibVLCSharp๋ฅผ ํ๊ฐํฉ๋๋ค โ WPF, WinForms, Avalonia ๋ฐ ํฌ๋ก์ค ํ๋ซํผ ์ฌ์ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃน๋๋ค. DirectShow ๊ธฐ๋ฐ Windows ํ๋ ์ด์ด๊ฐ ํ์ํ๋ GStreamer ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ด ํ์ํ๋ , ์ด ๊ฐ์ด๋๋ ์ฌ๋ฐ๋ฅธ .NET ๋ฏธ๋์ด ํ๋ ์ด์ด SDK๋ฅผ ์ ํํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
์์ฝ
| ์ธก๋ฉด | Media Player SDK .NET | LibVLCSharp |
|---|---|---|
| ์ํคํ ์ฒ | ๋์ผ ์์ง (DirectShow + GStreamer) | libvlc C ์ธํฐ๋กญ์ ํตํ ๋ชจ๋๋ฆฌ์ VLC ์์ง |
| ์์ง | MediaPlayerCore (Windows) + MediaPlayerCoreX (ํฌ๋ก์ค ํ๋ซํผ) | ๋จ์ผ LibVLC ์ฝ์ด |
| ๊ฐ๊ฒฉ | EUR 250-500ยท๋ ๋๋ EUR 750-1,500 ์๊ตฌ | ๋ฌด๋ฃ (LGPL 2.1) |
| ์ต์ ์ฉ๋ | ์ ๋ฌธ ์ฑ, DVD, ํจ๊ณผ, ๋ฐฉ์ก | ๊ฐ๋จํ ์ฌ์, ๊ฐ์ฅ ๋์ ํฌ๋งท ์ง์ |
| ํ์ต ๊ณก์ | ๋ณดํต (๋ ๊ฐ์ ์์ง, ํ๋ถํ API) | ์ฌ์ (์ต์ํ์ API) |
์ํคํ ์ฒ ์ฌ์ธต ๋ถ์
Media Player SDK .NET โ ๋์ผ ์์ง ์ค๊ณ
๋ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์์ง์ด ๋จ์ผ SDK์ ํฌํจ๋ฉ๋๋ค. MediaPlayerCore (Windows)๋ DirectShow / Media Foundation / FFMPEG ๋ฐ VLC ๋์ฝ๋์ DVD ๋ด๋น๊ฒ์ด์ , ์ฌ์ ๋ชฉ๋ก, PiP, OSD, ๊ฐ์ ์นด๋ฉ๋ผ, NDI ์ถ๋ ฅ, 40๊ฐ ์ด์์ ์ค๋์ค ํจ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค. MediaPlayerCoreX (ํฌ๋ก์ค ํ๋ซํผ)๋ Windows, macOS, Linux, iOS, Android์ฉ async-first API๊ฐ ํฌํจ๋ GStreamer ๊ธฐ๋ฐ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํฉ๋๋ค.
- โถWindows์์ DirectShow / Media Foundation / FFMPEG ๋ฐ VLC ๋์ฝ๋
- โถDVD ๋ด๋น๊ฒ์ด์ , ์ฌ์ ๋ชฉ๋ก, PiP, OSD, ๊ฐ์ ์นด๋ฉ๋ผ, NDI ์ถ๋ ฅ
- โถDirectSound ํจ๊ณผ๋ฅผ ํฌํจํ 40๊ฐ ์ด์์ ์ค๋์ค ํจ๊ณผ
- โถSource_Mode๋ฅผ ํตํด ์ ํ ๊ฐ๋ฅํ ์ฌ๋ฌ ์ฌ์ ์์ง
- โถasync-first API๊ฐ ํฌํจ๋ GStreamer ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ ํ์ดํ๋ผ์ธ
- โถVR/360 ๋น๋์ค ๋ฐ ์ค์๊ฐ ๋น๋์ค/์ค๋์ค ํจ๊ณผ
LibVLCSharp โ ๋จ์ผ VLC ์์ง
LibVLCSharp๋ LibVLC (VLC ๋ฏธ๋์ด ํ๋ ์ด์ด ์์ง)๋ฅผ ๋ํํ์ฌ ํ๋ซํผ ์ ๋ฐ์ ๊ฑธ์ณ ๋จ์ผ ํตํฉ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ํ์ ์ด์ง๋ง ์ฌ์์ ์ด์ ์ ๋ง์ถ๊ณ ์์ผ๋ฉฐ, VLC์ ๊ฒ์ฆ๋ ๋์ฝ๋ ์คํ๊ณผ ๊ฐ์ฅ ๋์ ํฌ๋งท ํธํ์ฑ์ ์ด์ ์ ๋๋ฆฝ๋๋ค.
- โถLibVLC โ VLC ๋ฏธ๋์ด ํ๋ ์ด์ด ์์ง์ ๋ํ
- โถ๋ชจ๋ ํ๋ซํผ์์ ๋จ์ผ ํตํฉ API
- โถ์ ํ๋ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์์ ์ด์
- โถ์ค์ ์์ ๊ฒ์ฆ๋ VLC ๋์ฝ๋ ์คํ
- โถChromecast ๋ฐ ๋คํธ์ํฌ ๋ธ๋ผ์ฐ์ง ์ง์
- โถํฐ ์ปค๋ฎค๋ํฐ์ ํ๋ถํ ๋ฌธ์
์ฃผ์ ์ํคํ ์ฒ ์ฐจ์ด์
| ์ธก๋ฉด | Media Player SDK | LibVLCSharp |
|---|---|---|
| ์์ง ์ค๊ณ | ๋์ผ ์์ง: DirectShow ๊ธฐ๋ฐ (Windows) + GStreamer ๊ธฐ๋ฐ (ํฌ๋ก์ค ํ๋ซํผ) | ๋จ์ผ ๋ชจ๋๋ฆฌ์ VLC ์์ง |
| ์ค๋์ค ์ฒ๋ฆฌ | ๋ฐด๋๋ณ EQ, ์ปดํ๋ ์, ๋ฆฌ๋ฒ๋ธ, ์ฝ๋ฌ์ค๊ฐ ํฌํจ๋ 40๊ฐ ์ด์์ ํ์ ์ง์ ์ค๋์ค ํจ๊ณผ | ๊ธฐ๋ณธ EQ ํ๋ฆฌ์ ๋ง |
| ๋น๋์ค ์ฒ๋ฆฌ | CPU + GPU ํจ๊ณผ ํ์ดํ๋ผ์ธ, ํฌ๋ก๋ง ํค, PiP, OSD ์ค๋ฒ๋ ์ด | ๋ฌธ์์ด ์ต์ ์ ํตํ ๊ธฐ๋ณธ VLC ํํฐ |
| ์ถ๋ ฅ ๊ธฐ๋ฅ | ๊ฐ์ ์นด๋ฉ๋ผ, NDI, ๋ฉํฐ ์คํฌ๋ฆฐ ๋์คํ๋ ์ด | Chromecast, ๋คํธ์ํฌ ๋ธ๋ผ์ฐ์ง (SMB, FTP, UPnP) |
| ๊ฐ์ง | ์ผ๊ตด, ๋ชจ์ , ๋ฐ์ฝ๋/QR ๊ฐ์ง ๋ด์ฅ | ๊ฐ์ง ๊ธฐ๋ฅ ์์ |
| API ์คํ์ผ | IntelliSense๋ฅผ ์ง์ํ๋ ๊ฐ๋ ฅํ ํ์ ์ .NET API | ๊ฐ๋จํ API โ C# 3์ค๋ก ์ฌ์ |
๊ธฐ๋ฅ๋ณ ๋น๊ต
์ฌ์
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ํ์ผ ์ฌ์ (500+ ํฌ๋งท) | โ | โ (VLC๋ฅผ ํตํด ๊ฐ์ฅ ๋์) |
| ๋คํธ์ํฌ ์คํธ๋ฆฌ๋ฐ (RTSP, RTMP, HLS, DASH) | โ | โ |
| DVD ๋ด๋น๊ฒ์ด์ (๋ฉ๋ด, ์ฑํฐ, ํ์ดํ) | โ | โ |
| Blu-ray ๋ฉ๋ด | โ | โ |
| ์๋ง (SRT, SSA/ASS, WebVTT, VobSub, PGS) | โ | โ |
| 360 / VR ๋น๋์ค | โ | โ |
| HDR ์ฌ์ | โ ๏ธ | โ (ํค๋งต ํฌํจ) |
| MIDI ์ฌ์ | โ | โ |
| ์ํธํ๋ ๋ฏธ๋์ด | โ | โ |
| SRT / NDI ์ ๋ ฅ | โ | โ |
์ค๋์ค
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ์ค๋์ค ํจ๊ณผ (40+ EQ, ๋ฆฌ๋ฒ๋ธ, ์ฝ๋ฌ์ค, 3D) | โ | โ ๏ธ(๊ธฐ๋ณธ EQ๋ง) |
| ์ ๋ฌธ VU ๋ฏธํฐ + FFT | โ | โ |
| ์ค๋์ค ํฅ์๊ธฐ (์ ๊ทํ, ์๋ ๊ฒ์ธ) | โ | โ |
| ์ค๋์ค ๋ฏน์ฑ (์ธ๋ถ ํธ๋ ์ถ๊ฐ) | โ | โ |
| ์ฑ๋ ๋งคํผ | โ | โ |
๋น๋์ค ์ฒ๋ฆฌ
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ์ค์๊ฐ ๋น๋์ค ํจ๊ณผ (CPU + GPU) | โ | โ ๏ธ(๊ธฐ๋ณธ VLC ํํฐ) |
| ํฌ๋ก๋ง ํค (๊ทธ๋ฆฐ ์คํฌ๋ฆฐ) | โ | โ |
| AI ๋น๋์ค ์ ์ค์ผ์ผ๋ง | โ | โ |
| LUT ์ปฌ๋ฌ ๊ทธ๋ ์ด๋ฉ | โ | โ |
| ํ๋ฉด ์ ํ๋ฉด | โ | โ |
| OSD ์ค๋ฒ๋ ์ด ์์คํ (๋ฉํฐ ๋ ์ด์ด) | โ | โ ๏ธ(๊ธฐ๋ณธ ๋งํด) |
| ๋น๋์ค ํฉ์ฑ | โ | โ |
์ถ๋ ฅ
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ | โ | โ |
| NDI ์ถ๋ ฅ | โ | โ |
| ๋ฉํฐ ์คํฌ๋ฆฐ ๋์คํ๋ ์ด | โ | โ |
๊ฐ์ง ๋ฐ ๋ถ์
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ์ผ๊ตด ๊ฐ์ง | โ | โ |
| ๋ชจ์ ๊ฐ์ง | โ | โ |
| AI ๊ฐ์ฒด ๊ฐ์ง | โ | โ |
| ๋ฐ์ฝ๋ / QR ์ค์บ | โ | โ |
์ฌ์ ์ ์ด
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ๊ฐ๋ณ ์๋ | โ | โ |
| ํ๋ ์ ์คํ ํ (์์ผ๋ก + ๋ค๋ก) | โ | โ ๏ธ(์์ผ๋ก๋ง) |
| ์ญ๋ฐฉํฅ ์ฌ์ | โ | โ |
| ํ๋ ์ ์ ํ ํ์ | โ | โ ๏ธ(ํคํ๋ ์ ๊ธฐ๋ฐ) |
| ์ฌ์ ๋ชฉ๋ก ๊ด๋ฆฌ (๋ด์ฅ) | โ | โ ๏ธ(์๋) |
| ์ด๋ฒคํธ ํฌํจ ๋ฃจํ | โ | โ |
| ์ธ๊ทธ๋จผํธ ์ฌ์ | โ | โ ๏ธ |
ํ๋ ์ ์บก์ฒ
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| ํ์ผ๋ก ์ค๋ ์ท (JPEG, PNG, BMP) | โ | โ |
| Bitmap / SKBitmap / byte[]๋ก ์ค๋ ์ท | โ | โ ๏ธ |
๋คํธ์ํฌ
| ๊ธฐ๋ฅ | Media Player SDK | LibVLCSharp |
|---|---|---|
| Chromecast | โ | โ |
| ๋คํธ์ํฌ ๋ธ๋ผ์ฐ์ง (SMB, FTP, UPnP) | โ | โ |
| SSDP / UPnP ๋์ค์ปค๋ฒ๋ฆฌ | โ | โ |
ํ๋ซํผ ์ง์
์ด์ ์ฒด์ ํธํ์ฑ
| ํ๋ซํผ | Media Player SDK | LibVLCSharp |
|---|---|---|
| Windows 7-11 | โ | โ |
| macOS 10.15+ | โ | โ (LibVLC๋ 10.7+ ์ง์) |
| Linux | โ | โ |
| Android 7.0+ | โ | โ (LibVLC๋ 2.3+ ์ง์) |
| iOS 13+ | โ | โ (LibVLC๋ 8.4+ ์ง์) |
| tvOS | โ | โ |
UI ํ๋ ์์ํฌ ํธํ์ฑ
| ํ๋ ์์ํฌ | Media Player SDK | LibVLCSharp |
|---|---|---|
| WinForms | โ | โ |
| WPF | โ | โ |
| WinUI 3 | โ | โ ๏ธ(์ปค๋ฎค๋ํฐ) |
| .NET MAUI | โ | โ |
| Avalonia | โ | โ |
| Uno Platform | โ | โ ๏ธ(์ ํ์ ) |
| Xamarin | โ | โ |
| Console | โ | โ |
๊ฐ๊ฒฉ ๋น๊ต
Media Player SDK .NET ๊ฐ๊ฒฉ
1๋ช ์ ๊ฐ๋ฐ์ โ ํ์ผ/์คํธ๋ฆผ ์ฌ์, ์๋ง, ๊ธฐ๋ณธ ํจ๊ณผ
1๋ช ์ ๊ฐ๋ฐ์ โ + ๋คํธ์ํฌ ์คํธ๋ฆฌ๋ฐ (RTSP, RTMP, HLS, NDI), ๋ชจ์ ๊ฐ์ง, HW ๊ฐ์
1๋ช ์ ๊ฐ๋ฐ์ โ + VR/360 ๋น๋์ค
๋ฌด์ ํ ๊ฐ๋ฐ์, ์๊ตฌ ๋ผ์ด์ ์ค, ์ ์ฒด ํ
๋ฌด์ ํ ๊ฐ๋ฐ์, ์๊ตฌ ๋ผ์ด์ ์ค, ์ ์ฒด ํ
๋ฌด์ ํ ๊ฐ๋ฐ์, ์๊ตฌ ๋ผ์ด์ ์ค, ์ ์ฒด ํ
All licenses include:
- โ ๋ก์ดํฐ ํ๋ฆฌ ๋ฐฐํฌ
- โ ๋ฐํ์ ๋น์ฉ ์์
- โ ๋ชจ๋ ์์ค ์ฝ๋ ์์
- โ ๋น์์ ์ ์ฌ์ฉ ๋ฌด๋ฃ (๋ผ์ด์ ์ค ํค ํ์)
- โ ์ฐ์ ํฐ์ผ ์ง์
LibVLCSharp ๋น์ฉ
LGPL 2.1 ๋ผ์ด์ ์ค โ ๋์ ๋งํฌ ํ์
VideoLAN์ ์ ๋ฃ ์ปจ์คํ ๊ฐ๋ฅ
LGPL ์ค์ ๊ณ ๋ ค์ฌํญ
LibVLCSharp์ libvlc๋ LGPL 2.1๋ก ๋ผ์ด์ ์ค๋ฉ๋๋ค. ์ด๋ LGPL ์กฐ๊ฑด์ ์ค์ํ๋ ํ ์์ ์ฉ ๋ ์ ์ํํธ์จ์ด์์ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ฃผ์ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- โ libvlc์ ๋์ ์ผ๋ก ๋งํฌํด์ผ ํฉ๋๋ค (์ ์ ๋งํฌ ๋ถ๊ฐ)
- โ ์ฌ์ฉ์๊ฐ LibVLC DLL์ ์์ ๋ ๋ฒ์ ์ผ๋ก ๊ต์ฒดํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค
- โ LGPL ๋ผ์ด์ ์ค ์ฌ๋ณธ์ ํฌํจํ๊ณ libvlc ์ฌ์ฉ์ ๋ช ์ํด์ผ ํฉ๋๋ค
- โ VLC ์ฝ๋๋ฅผ ์์ ํ์ฌ ํด๋ก์ฆ๋ ์์ค๋ก ๋ง๋ค ์ ์์ต๋๋ค
- โ ์ผ๋ถ ๊ธฐ์ ๋ฒ๋ฌดํ์ LGPL ์ค์ ์ํ์ ํผํ๊ธฐ ์ํด ์์ ๋ผ์ด์ ์ค๋ฅผ ์๊ตฌํฉ๋๋ค
LGPL์ด GPL๋ณด๋ค ๊ด๋ํ์ง๋ง, ์ค์๋ฅผ ์ํด์๋ ๋งํฌ ๋ฐ ๋ฐฐํฌ ์๊ตฌ์ฌํญ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. Media Player SDK๋ LGPL ๋์ ๋งํฌ ์ ์ฝ ์์ด ๋ก์ดํฐ ํ๋ฆฌ ๋ฐฐํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฝ๋ ์์
์์ 1: ๊ฐ๋จํ ํ์ผ ์ฌ์
Media Player SDK (MediaPlayerCoreX)
C#var player = new MediaPlayerCoreX(videoView);
var source = await UniversalSourceSettingsV2.CreateAsync(
new Uri("video.mp4"));
await player.OpenAsync(source);
await player.PlayAsync();
// Position and duration
var duration = await player.DurationAsync();
await player.Position_SetAsync(
TimeSpan.FromSeconds(30));LibVLCSharp
C#Core.Initialize();
var libVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(libVLC);
mediaPlayer.Play(
new Media(libVLC, "video.mp4",
FromType.FromPath));
// Position and duration
var duration = mediaPlayer.Length; // ms
mediaPlayer.Time = 30000; // ms์์ 2: ๋ด๋น๊ฒ์ด์ ์ด ์๋ DVD
Media Player SDK (MediaPlayerCore)
C#var player = new MediaPlayerCore(videoView);
player.Source_Mode = MediaPlayerSourceMode.DVD_DS;
player.Playlist_Clear();
player.Playlist_Add(@"D:\\");
await player.PlayAsync();
// Save bookmark for later resume
int savedTitle = player.DVD_Title_GetCurrent();
int savedChapter = player.DVD_Chapter_GetCurrent();
var savedPosition = await player.Position_GetAsync();
Console.WriteLine(
$"Bookmarked: Title {savedTitle}, " +
$"Chapter {savedChapter}, " +
$"Position {savedPosition}");
// Resume from saved bookmark
await player.DVD_Title_PlayAsync(savedTitle);
await player.DVD_Chapter_SelectAsync(savedChapter);
await player.Position_SetAsync(savedPosition);
// Navigate using title/chapter jumps
await player.DVD_Menu_ShowAsync(DVDMenu.Title);
await player.DVD_Chapter_NextAsync();LibVLCSharp
C#Core.Initialize();
var libVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(libVLC);
mediaPlayer.Play(
new Media(libVLC, "dvd:///D:",
FromType.FromLocation));
// DVD navigation via mediaPlayer methods
mediaPlayer.Navigate(NavigateMode.Up);
mediaPlayer.Navigate(NavigateMode.Activate);
// Less granular control than Media Player SDK
// No bookmark/resume API
// Limited chapter/title management์์ 3: ํจ๊ณผ๋ฅผ ์ฌ์ฉํ ์ค๋์ค ์ฒ๋ฆฌ
Media Player SDK (MediaPlayerCore)
C#var player = new MediaPlayerCore(videoView);
player.Playlist_Clear();
player.Playlist_Add("podcast.mp3");
player.Audio_Effects_Enabled = true;
// Register 10-band EQ and DMO compressor
player.Audio_Effects_Add(-1,
AudioEffectType.Equalizer, "gfxEq",
true, TimeSpan.Zero, TimeSpan.Zero);
player.Audio_Effects_Add(-1,
AudioEffectType.DMOCompressor, "comp",
true, TimeSpan.Zero, TimeSpan.Zero);
await player.PlayAsync();
// Custom per-band EQ values (dB, integer)
int[] bands = { -4, -2, 0, 3, 5,
6, 5, 4, 2, -1 };
for (int i = 0; i < bands.Length; i++)
player.Audio_Effects_Equalizer_Band_Set(
-1, "gfxEq", i, bands[i]);
// DMO Compressor for consistent loudness
// Audio_Effects_DS_Compressor(streamIndex, name,
// attack, gain, preDelay, ratio, release, threshold)
player.Audio_Effects_DS_Compressor(
-1, "comp",
10f, 5f, 0f, 4f, 200f, -20f);
// Monitor peak levels via VU meter event
player.Audio_VUMeter_Enabled = true;
player.OnAudioVUMeter += (s, e) =>
Console.WriteLine(
$"L: {e.MeterData[0]}, R: {e.MeterData[1]}");LibVLCSharp
C#Core.Initialize();
var libVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(libVLC);
mediaPlayer.Play(
new Media(libVLC, "music.mp3",
FromType.FromPath));
// Basic equalizer only
var eq = new Equalizer(1); // preset index
mediaPlayer.SetEqualizer(eq);
// No VU meter
// No FFT spectrum analysis
// No 3D sound
// No reverb, chorus, or compressor
// No per-band EQ control
// No audio level monitoring์์ 4: ๊ฐ์ ์นด๋ฉ๋ผ + NDI ์ถ๋ ฅ
Media Player SDK (MediaPlayerCore)
C#var player = new MediaPlayerCore(videoView);
player.Playlist_Clear();
player.Playlist_Add("presentation.mp4");
// Output to virtual camera (Zoom, Teams, OBS)
player.Virtual_Camera_Output_Enabled = true;
// Output to NDI network
player.NDI_Output = new NDIOutput
{
Name = "Studio Feed"
};
// Add OSD overlay
player.OSD_Enabled = true;
player.OSD_Layers_Create(
0, 0, 1920, 1080, true);
player.OSD_Layers_Draw_Text(
0, 10, 10, "LIVE",
new Font("Arial", 36), Color.Red);
player.OSD_Layers_Render();
await player.PlayAsync();LibVLCSharp
C#// Virtual camera output: NOT AVAILABLE
// NDI output: NOT AVAILABLE
// OSD overlay: Limited to VLC marquee
Core.Initialize();
var libVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(libVLC);
var media = new Media(libVLC,
"presentation.mp4",
FromType.FromPath);
media.AddOption(":sub-filter=marq");
media.AddOption(":marq-marquee=LIVE");
mediaPlayer.Play(media);
// No virtual camera
// No NDI
// No rich OSD layers์์ 5: ๋ชจ์ ๋ฐ ์ผ๊ตด ๊ฐ์ง
Media Player SDK (MediaPlayerCore)
C#var player = new MediaPlayerCore(videoView);
player.Playlist_Clear();
player.Playlist_Add("lobby_feed.mp4");
// Face detection with highlight
player.Face_Tracking = new FaceTrackingSettings
{
Highlight = true,
ScaleFactor = 1.1f,
MinimumWindowSize = 25
};
player.OnFaceDetected += (s, e) =>
Console.WriteLine(
$"Detected {e.FaceRectangles.Length} face(s)");
await player.PlayAsync();LibVLCSharp
C#// Motion detection: NOT AVAILABLE
// Face detection: NOT AVAILABLE
// AI object detection: NOT AVAILABLE
// Barcode scanning: NOT AVAILABLE
// Would need external libraries
// (OpenCV, ZXing, etc.) processing
// frames manually
Core.Initialize();
var libVLC = new LibVLC();
var mediaPlayer = new MediaPlayer(libVLC);
mediaPlayer.Play(
new Media(libVLC, "lobby_feed.mp4",
FromType.FromPath));
// No built-in detection
// No event-driven analysis
// Manual frame extraction required๊ฐ ์๋ฃจ์ ์ ์ ํํ ๋
๋ค์์ด ํ์ํ ๋ Media Player SDK๋ฅผ ์ ํํ์ธ์
- โ์ ์ฒด ๋ฉ๋ด ๋ด๋น๊ฒ์ด์ , ์ฑํฐ ๋ฐ ๋ถ๋งํฌ๊ฐ ์๋ DVD ์ ํ๋ฆฌ์ผ์ด์
- โ40๊ฐ ์ด์์ ํจ๊ณผ, VU ๋ฏธํฐ ๋ฐ FFT ์คํํธ๋ผ์ ๊ฐ์ถ ์ ๋ฌธ ์ค๋์ค
- โZoom, Teams ๋ฐ OBS์ฉ ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ
- โ๋ฐฉ์ก ๋ฐ ์ ์ ์ํฌํ๋ก์ฐ์ฉ NDI ์ถ๋ ฅ
- โ๋ฉํฐ ์คํฌ๋ฆฐ ์ปจํผ๋์ค ๋ชจ๋ํฐ ๋ฐ ๋์งํธ ์ฌ์ด๋์ง
- โ๋ชจ์ ๋ฐ ์ผ๊ตด ๊ฐ์ง๋ฅผ ํตํ ๊ฐ์
- โํ๋ฉด ์ ํ๋ฉด ํฉ์ฑ ๋ฐ ํฌ๋ก๋ง ํค ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- โ์ ๋ฌธ ๊ฒํ ๋ฅผ ์ํ ํ๋ ์ ์ ํ ํ์ ๋ฐ ์ญ๋ฐฉํฅ ์ฌ์
- โ๋น๋์ค ์คํธ๋ฆผ์์ ๋ฐ์ฝ๋/QR ์ค์บ
๋ค์์ด ํ์ํ ๋ LibVLCSharp๋ฅผ ์ ํํ์ธ์
- โ๊ฐ๋จํ ๋ฐ์คํฌํฑ ๋๋ ๋ชจ๋ฐ์ผ ๋ฏธ๋์ด ํ๋ ์ด์ด ์ ํ๋ฆฌ์ผ์ด์
- โIPTV ๋ฐ ์คํธ๋ฆฌ๋ฐ ๋ทฐ์ด ์ ํ๋ฆฌ์ผ์ด์
- โChromecast ์คํธ๋ฆฌ๋ฐ ๋ฐ ๋คํธ์ํฌ ๋ธ๋ผ์ฐ์ง (SMB, FTP, UPnP)
- โ์์ฐ ์๋ ๋๋ ์คํ ์์ค ํ๋ก์ ํธ
- โVLC ๋์ฝ๋ ์คํ์ ํตํ ์ต๋ ์ฝ๋ฑ ๋ฐ ํฌ๋งท ์ปค๋ฒ๋ฆฌ์ง
- โ์ต์ํ์ ํตํฉ ๋ ธ๋ ฅ โ C# ์ธ ์ค๋ก ๋น๋์ค ์ฌ์
- โtvOS ์ง์ ๋ฐ ๊ด๋ฒ์ํ ๋ ๊ฑฐ์ OS ํธํ์ฑ
- โํฐ ์ปค๋ฎค๋ํฐ์ ํ๋ถํ StackOverflow ์ฝํ ์ธ
๋ฐฐํฌ ๋ฐ ๋ฐฐํฌ
Media Player SDK ๋ฐฐํฌ
- โNuGet ํจํค์ง์ ๋ชจ๋ ์ข ์์ฑ ํฌํจ
- โXcopy ๋ฐฐํฌ ์ง์
- โ์์ ๋ผ์ด์ ์ค๋ก ๋ก์ดํฐ ํ๋ฆฌ ๋ฐฐํฌ
- โ๋ฐํ์ ๋น์ฉ ์์
- โLGPL ์๋ฌด ์์ โ ๋ ์ ์ํํธ์จ์ด์ ์์
- โ์ฑ ํฌ๊ธฐ ์ํฅ: ์ฝ 50-100 MB
LibVLCSharp ๋ฐฐํฌ
- โ NuGet ํจํค์ง ์ ๊ณต (LibVLCSharp + VideoLAN.LibVLC ํ๋ซํผ ํจํค์ง)
- โ ํ๋ซํผ๋ณ LibVLC DLL ํฌํจ ํ์
- โ LGPL์ ๋์ ๋งํฌ ํ์ โ ์ฌ์ฉ์๊ฐ VLC DLL์ ๊ต์ฒดํ ์ ์์ด์ผ ํจ
- โ LGPL ๋ผ์ด์ ์ค ๊ณ ์ง ํฌํจ ํ์
- โ ํ๋ซํผ ํจํค์ง๊ฐ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ ์ฒ๋ฆฌ
- โ ์ฑ ํฌ๊ธฐ ์ํฅ: ์ฝ 40-80 MB
์์ฌ๊ฒฐ์ ๋งคํธ๋ฆญ์ค
| ์๊ตฌ์ฌํญ | Media Player SDK | LibVLCSharp | ์น์ |
|---|---|---|---|
| ๊ฐ๋จํ ๋ฏธ๋์ด ํ๋ ์ด์ด | LibVLCSharp | ||
| DVD ํค์ค์คํฌ / ๊ต์ก ์ฑ | Media Player SDK | ||
| ์ค๋์ค ํจ๊ณผ / EQ / VU ๋ฏธํฐ | Media Player SDK | ||
| ์คํธ๋ฆฌ๋ฐ์ฉ ๊ฐ์ ์นด๋ฉ๋ผ | Media Player SDK | ||
| NDI ๋ฐฉ์ก ์ถ๋ ฅ | Media Player SDK | ||
| ๋ฉํฐ ์คํฌ๋ฆฐ ๋์คํ๋ ์ด | Media Player SDK | ||
| ๊ฐ์ง ๊ธฐ๋ฅ ๊ฐ์ | Media Player SDK | ||
| IPTV / ์คํธ๋ฆฌ๋ฐ ๋ทฐ์ด | LibVLCSharp | ||
| Chromecast / ๋คํธ์ํฌ ๋ธ๋ผ์ฐ์ง | LibVLCSharp | ||
| ๋์งํธ ์ฌ์ด๋์ง (OSD ํฌํจ) | Media Player SDK | ||
| ์์ฐ ์์ | LibVLCSharp | ||
| ์คํ ์์ค ํ๋ก์ ํธ | LibVLCSharp | ||
| PiP / ํฌ๋ก๋ง ํค ํฉ์ฑ | Media Player SDK | ||
| ๋ฐ์ฝ๋ / QR ์ค์บ | Media Player SDK |
๊ฒฐ๋ก
Media Player SDK .NET
์ ์ฒด ๋ฉ๋ด ๋ด๋น๊ฒ์ด์ ์ด ์๋ DVD ์ฌ์, Zoom/Teams/OBS์ฉ ๊ฐ์ ์นด๋ฉ๋ผ ์ถ๋ ฅ, ์ผ๊ตด ๋ฐ ๋ชจ์ ๊ฐ์ง, 40๊ฐ ์ด์์ ์ค์๊ฐ ์ค๋์ค ํจ๊ณผ, ๋ฐฉ์ก์ฉ NDI ์ถ๋ ฅ, ํ๋ฉด ์ ํ๋ฉด ํฉ์ฑ, ํ๋ ์ ์ ํ ํ์ ๋ฐ ์ญ๋ฐฉํฅ ์ฌ์, FFT ์คํํธ๋ผ์ด ์๋ ์ ๋ฌธ VU ๋ฏธํฐ, ํฌ๋ก๋ง ํค ๋ฐ AI ๋น๋์ค ์ ์ค์ผ์ผ๋ง, ๋ฉํฐ ์คํฌ๋ฆฐ ๋์คํ๋ ์ด, LGPL ์ ์ฝ ์๋ ๋ก์ดํฐ ํ๋ฆฌ ๋ฐฐํฌ๊ฐ ํ์ํ ๋ Media Player SDK๋ฅผ ์ ํํ์ธ์. ์ฐ๊ฐ ๋ผ์ด์ ์ค๋ EUR 250ยท๋ ๋ถํฐ ์์ํ๋ฉฐ ์ผํ์ฑ ์๊ตฌ ์ต์ ๋ ์ ๊ณต๋ฉ๋๋ค.
LibVLCSharp
VLC ๋์ฝ๋ ์คํ์ ํตํ ์ต๋ ์ฝ๋ฑ ๋ฐ ํฌ๋งท ์ปค๋ฒ๋ฆฌ์ง, ๋ฌด๋ฃ LGPL ๋ผ์ด์ ์ค ์ฌ์, Chromecast ์คํธ๋ฆฌ๋ฐ ๋ฐ ๋คํธ์ํฌ ๋ฏธ๋์ด ๋ธ๋ผ์ฐ์ง (SMB, FTP, UPnP), C# ์ธ ์ค๋ก์ ์ต์ ํตํฉ ๋ ธ๋ ฅ, tvOS ์ง์ ๋ฐ ๊ด๋ฒ์ํ ๋ ๊ฑฐ์ OS ํธํ์ฑ, ํ๋ถํ StackOverflow ์ฝํ ์ธ ์ ์ค์ ๊ฒ์ฆ๋ ์์ ์ฑ์ ๊ฐ์ง ํฐ ์ปค๋ฎค๋ํฐ๊ฐ ํ์ํ ๋ LibVLCSharp๋ฅผ ์ ํํ์ธ์.
The Reality
๊ฐ๋จํ ๋ฏธ๋์ด ํ๋ ์ด์ด, ์คํธ๋ฆฌ๋ฐ ํด๋ผ์ด์ธํธ ๋ฐ IPTV ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ LibVLCSharp๊ฐ ๋ ์ ์ ์ฝ๋์ ๋น์ฉ ์์ด ์ฒ๋ฆฌํฉ๋๋ค. ํจ๊ณผ, ๊ฐ์ง, DVD ํค์ค์คํฌ ๋๋ ๋ฐฉ์ก ์ถ๋ ฅ์ด ํ์ํ ๊ธฐ๋ฅ ์ค์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ Media Player SDK๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ ์ผํ ์คํ ๊ฐ๋ฅํ ์ต์ ์ ๋๋ค. ์ผ๋ถ ํ์ ๋ SDK๋ฅผ ๊ฒฐํฉํฉ๋๋ค โ ๊ธฐ๋ณธ ์ฌ์ ํ๋ฉด์๋ LibVLCSharp, ํจ๊ณผ, ๊ฐ์ง ๋๋ ๋ฐฉ์ก ์ถ๋ ฅ์ด ํ์ํ ํ๋ฉด์๋ Media Player SDK๋ฅผ ์ฌ์ฉํฉ๋๋ค.
