Media Player SDK .NET โ WPF, MAUI ๋ฐ WinForms์ฉ ๋น๋์ค ์ฌ์
Media Player SDK .NET์ WPF, WinForms, MAUI, Avalonia, Unity ์ฑ์ ๋น๋์ค ๋ฐ ์ค๋์ค ์ฌ์ ๊ธฐ๋ฅ์ ๋ฃ๋ C#์ฉ ๋น๋์ค ํ๋ ์ด์ด SDK์ ๋๋ค. H.264, HEVC, AV1 ํ์ผ๊ณผ RTSP, HLS, MPEG-DASH ์คํธ๋ฆผ์ ํ๋์จ์ด ๊ฐ์ ๋์ฝ๋ฉ์ผ๋ก Windows, macOS, Linux, Android, iOS์์ ์ฌ์ํฉ๋๋ค.
์ฐ โฌ250๋ถํฐ ยท Lifetime ๋ผ์ด์ ์ค โฌ750๋ถํฐ
Media Player SDK .Net์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๋น๋์ค, ์ค๋์ค, DVD, Blu-ray ๋ฐ ๋ค์ํ ๋คํธ์ํฌ ์คํธ๋ฆผ ์ง์์ ํฌํจํ์ฌ ๊ด๋ฒ์ํ ๋ฏธ๋์ด ์ฌ์ ๊ธฐ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ฒ ํตํฉํ ์ ์์ต๋๋ค. ๋ํ ์ด SDK๋ ๋น๋์ค ์์ ํจ๊ณผ๊ฐ ์๋ ์ค๋ฒ๋ ์ด ๋นํธ๋งต ๋ฐ ํ ์คํธ๋ฅผ ๋ ๋๋งํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ ์์ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค: ํฌ๋ก์ค ํ๋ซํผ MediaPlayerCoreX ์์ง์ Windows, macOS, Linux, Android, iOS์์ GStreamer ๊ธฐ๋ฐ ๋์ฝ๋ฉ์ผ๋ก ๋์ํ๋ฉฐ, Windows ์ ์ฉ ๊ธฐ์กด MediaPlayerCore ์์ง์ ์ ํ์ FFMPEG ํํฐ ๋๋ VLC๋ฅผ ์ฌ์ฉํ๋ DirectShow ์ฌ์๊ณผ DVD ์ง์์ ์ถ๊ฐ๋ก ์ ๊ณตํฉ๋๋ค.
์ค์น
NuGet์ ํตํ ๋น ๋ฅธ ์ค์น
NuGet ํจํค์ง๋ก ๋ช ์ด ๋ง์ ์์ํ์ธ์
Install-Package VisioForge.DotNet.MediaPlayer๋๋ Visual Studio์ NuGet ํจํค์ง ๊ด๋ฆฌ์์์ VisioForge.DotNet.MediaPlayer ๋ฅผ ๊ฒ์ํ์ธ์.NuGet.org์์ ๋ณด๊ธฐ โ
์ฃผ์ ์ด์
๋ฒ์ฉ ํ์ ์ง์
ํ๋์จ์ด ๊ฐ์์ผ๋ก 500๊ฐ ์ด์์ ๋น๋์ค/์ค๋์ค ํ์ ์ฌ์
ํฌ๋ก์ค ํ๋ซํผ
Windows, macOS, Linux, Android ๋ฐ iOS ์ง์
์ ๋ฌธ ๊ธฐ๋ฅ
OSD, ํ๋ ์ ๊ทธ๋๋ฒ, VR/360 ๋น๋์ค, ๋ชจ์ ๊ฐ์ง
SDK ๊ตฌ์กฐ
SDK๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ํน์ ๋น๋์ค ๋ฐ ์ค๋์ค ์์ค๋ฅผ ์ ํํ๊ณ , ์ฒ๋ฆฌ๋ฅผ ์ํด ๋ค์ํ ํจ๊ณผ๋ฅผ ์ ์ฉํ ๋ค์, ๋ ๋๋ง์ ์ํด ๋ฏธ๋์ด๋ฅผ ๋ผ์ฐํ ํ ์ ์์ต๋๋ค. WPF, WinForms, MAUI, Avalonia ๋ฑ ๊ฐ UI ํ๋ ์์ํฌ์ ๊ณ ์ ํ VideoView ์ปจํธ๋กค์ ์ ๊ณตํ์ฌ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ธํฐํ์ด์ค ๋ด์์ ๋ฏธ๋์ด๋ฅผ ์ํํ๊ฒ ํตํฉํ๊ณ ํ์ํ ์ ์์ด ๋ค์ฌ๋ค๋ฅํฉ๋๋ค.
๋น์ฌ ๋ฏธ๋์ด ํ๋ ์ด์ด๋ก ๋ง์ถคํ ์ฑ ๊ตฌ์ถ
๋ฏธ๋์ด ํ๋ ์ด์ด SDK๋ฅผ ํตํฉํ๋ฉด ๊ฐ๋ฐ์๋ ์ํํ ๋น๋์ค ์ฌ์, ๋ง์ถคํ UI ์ปจํธ๋กค ๋ฐ ์ฌ๋ฌ ํ์ ์ง์์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ต์ข ์ฌ์ฉ์์๊ฒ ์ต์ ํ๋ ๋ฏธ๋์ด ๊ฒฝํ์ ๋ณด์ฅํ๊ณ , ๊ฐ๋ฐ์ ๋จ์ํํ๋ฉด์ ๋ค์ํ ํ๋ซํผ๊ณผ ์ฝํ ์ธ ์ ํ์์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
๋ฏธ๋์ด ์ฌ์ ํ์ดํ๋ผ์ธ
SDK ์ํคํ ์ฒ๋ ๊ฐ ๋ฏธ๋์ด ์์ค๋ฅผ ๋ณ๋์ ์ค๋์ค ๋ฐ ๋น๋์ค ์คํธ๋ฆผ์ผ๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์คํธ๋ฆผ์ ๊ฐ๊ฐ์ ๋์ฝ๋๋ก ๋ผ์ฐํ ๋ฉ๋๋ค. ๋์ฝ๋ฉ ํ ์์ถ๋์ง ์์ ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋๋ฉฐ ํ์ํ ๊ฒฝ์ฐ ์ํ ๊ทธ๋๋ฒ์์ ์ง์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ฏธ๋์ด ์ํ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋ถ์ํ๋ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํฉ๋๋ค.
๋น๋์ค ์ฒ๋ฆฌ
๋น๋์ค์ ํ ์คํธ, ์ด๋ฏธ์ง ๋๋ GIF๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ์ธํ๋ ์ค๋ฒ๋ ์ด๋ฅผ ๋ง๋์ธ์. ๋ฐ๊ธฐ, ๋๋น, ์ฑ๋ ๋ฐ ์์กฐ์ ๊ฐ์ ์๊ฐ์ ์์๋ฅผ ์กฐ์ ํ์ฌ ์ด๋ฏธ์ง ํ์ง์ ๊ฐ์ ํ์ธ์. ํ์์ ๋ฐ๋ผ ์์์ ํฌ๊ธฐ ์กฐ์ , ์๋ฅด๊ธฐ ๋๋ ํ์ ํ๋ ํธ์ง ๋๊ตฌ๋ฅผ ํ์ฉํ์ธ์. ๊ทธ๋ฆฐ ์คํฌ๋ฆฐ ํจ๊ณผ๋ฅผ ์ํด ํฌ๋ก๋ง ํค๋ฅผ ์ ์ฉํ๊ณ ์คํ ๋ฆฌํ ๋ง์ ํฅ์์ํค๊ธฐ ์ํด ๋ค์ํ ์ถ๊ฐ ๋น๋์ค ํจ๊ณผ๋ฅผ ์ดํด๋ณด์ธ์.
์ค๋์ค ์ฒ๋ฆฌ
์ ํ๋ฆฌ์ผ์ด์ ์ ์ดํ๋ผ์ด์ ๋ฅผ ํตํฉํ์ฌ ์ ๋ฐํ ์ค๋์ค ํ๋์ ํ์ฉํ์ธ์. ์ค๋์ค ๋ ๋ฒจ์ ์ ๊ทํํ๊ณ , ๋ณผ๋ฅจ์ ์ฆํญํ๊ฑฐ๋, ์ ์ ์ฃผํ์๋ฅผ ํฅ์์ํค์ธ์. ์ถ๊ฐ์ ์ธ ์ค๋์ค ํจ๊ณผ ๋ชจ์์ ์ฌ์ฉํ์ฌ ๋์ฑ ์ ๊ตํ๊ฒ ๋ค๋ฌ์ ์ ์์ต๋๋ค. ์๋ ๋๋ ์๋ ๊ฒ์ธ ์ ์ด๋ฅผ ๊ตฌํํ์ฌ ์ต์ ์ ์ค๋์ค ํ์ง์ ๋ฌ์ฑํ์ธ์.

์ฌ์ฉ์ ์ง์ UI ์ปจํธ๋กค
SDK๋ PNG/SVG ์์ด์ฝ ๋ฐ ๊ฐ์ธํ๋ ์คํ์ผ ์ต์ ์ ์์ฉํ๋ ์คํจ ์ง์์ ๊ฐ์ถ ์ฌ์ฉ์ ์ง์ ๊ฐ๋ฅํ ์ธํฐํ์ด์ค๋ฅผ ์๋ํฉ๋๋ค.
AI ๊ธฐ๋ฐ ์ฌ์ ๋ถ์
Media Player SDK .NET์ด ์ฌ๋ ๋ชจ๋ ํ์ผ ๋๋ ์คํธ๋ฆผ์์ ๊ฐ์ฒด ๊ฐ์ง, ์ผ๊ตด ์ธ์, OCR, ์๋ ํ๋ผ์ด๋ฒ์ ๋ง์คํน, ์๋งจํฑ ๊ฒ์, ์คํ๋ผ์ธ ์ ์ฌ๋ฅผ ์คํํ์ธ์ โ ๋ณ๋์ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ด ํ์ํ์ง ์์ต๋๋ค.
MediaPlayerCoreX๋ VisioForge.DotNet.Core.AI ๋ฐ VisioForge.DotNet.Core.AI.Whisper์ ๋์ผํ AI ๋ธ๋ก์ Video_Processing_AddBlock ๋ฐ Audio_Processing_AddBlock์ ํตํด ์ฌ์ ๊ทธ๋ํ ์์ ์ง์ ํธ์คํ ํฉ๋๋ค โ ์๋์ผ๋ก MediaBlocksPipeline์ ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค. OpenAsync/PlayAsync ์ด์ ์ ๋ธ๋ก์ ๋ฑ๋กํ๋ฉด, ์ด๋ฆฐ ํ์ผ ๋๋ ์คํธ๋ฆผ์ ๋ชจ๋ ํ๋ ์ ๋๋ ์ค๋์ค ์ํ์ ๋ถ์ํ์ฌ ๋ ๋๋ง๋ ํ๋ฉด์ ์ค๋ฒ๋ ์ด๋ ๋ง์คํน์ ๊ทธ๋ ค ๋ฃ์ต๋๋ค. ์ถ๋ก ์ ONNX Runtime๊ณผ Whisper.net/GGML์ ํตํด ์ ์ ์ผ๋ก ์จ๋๋ฐ์ด์ค์์ ์คํ๋๋ฏ๋ก ๋ นํ๋ ์์์ด ๊ธฐ๊ธฐ ๋ฐ์ผ๋ก ๋๊ฐ๋ ์ผ์ด ์์ต๋๋ค.
์ฌ์ ์ค ๊ฐ์ฒด ๊ฐ์ง ๋ฐ ๋ถ์
ByteTrack ์ถ์ , ๋ผ์ธ ๊ต์ฐจ ์นด์ดํธ, ์์ญ ๋ถ์์ ๊ฐ์ถ YOLO/RT-DETR ๊ฐ์ง๋ฅผ ํตํด ๋ นํ๋ ์์์ ์ฌ์ํ์ฌ ํฌ๋ ์ ๊ฒํ ์ ํ์ฉํ์ธ์.
๋ นํ๋ ๋น๋์ค์ ์ผ๊ตด ์ธ์
๊ฐ์ง๋ ์ผ๊ตด์ ๋ฑ๋ก๋ ๊ฐค๋ฌ๋ฆฌ์ ๋งค์นญํ์ฌ ๊ธฐ์กด ๋น๋์ค ํ์ผ์์ ์ฌ๋์ ์๋ณํฉ๋๋ค.
ํ ์คํธ ๋ฐ ๋ฒํธํ ์ถ์ถ
๋ นํ๋ ์์์์ ํ๋ฉด ์ ํ ์คํธ๋ ์ฐจ๋ ๋ฒํธํ์ ์ถ์ถํ์ฌ ์์นด์ด๋ธ ์์ธํ์ ์กฐ์ฌ์ ํ์ฉํ์ธ์.
๋ชจ๋ ๋น๋์ค๋ฅผ ์ํ ์๋ ์๋ง
Whisper์ Silero VAD๋ก ํ์ผ์ ์ค๋์ค ํธ๋์ ์ ์ฌํ์ฌ ์ค์๊ฐ ์๋ง์ ์ถ๊ฐํ๊ฑฐ๋ SRT/VTT ํ์ผ๋ก ๋ด๋ณด๋ด์ธ์ โ ์๋ง์ด ์์๋ ๋ฏธ๋์ด์๋ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ นํ ์์์ ์ผ๊ตด, ๋ฒํธํ, ํ ์คํธ ๋ง์คํน
๊ธฐ์กด ์์์ ๋ณด๊ด, ๊ณต์ ๋๋ ๊ฒ์ํ๊ธฐ ์ ์ ์ผ๊ตด, ์ฐจ๋ ๋ฒํธํ, ํ๋ฉด ์ ํ ์คํธ๋ฅผ ์๋์ผ๋ก ํ๋ฆฌ๊ฒ ํ๊ฑฐ๋ ํฝ์ ํํฉ๋๋ค.
๋น๋์ค ํ์ผ์ ๋ํ ์๋งจํฑ ๊ฒ์
๋น๋์ค ํ์ผ์ CLIP ๊ธฐ๋ฐ ์๋ฒ ๋ฉ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ถํ๊ณ ์์ฐ์ด ์ฟผ๋ฆฌ๋ก ๊ฒ์ํ์ฌ ์ํ๋ ์๊ฐ์ผ๋ก ๋ฐ๋ก ์ด๋ํ์ธ์.
Unity ์ง์
๋ฐ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ ๋จ์ผ .unitypackage๋ก Unity 6์ ์ค์ ๋น๋์ค ๋ฐ ์ค๋์ค ์ฌ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ธ์. ๊ณ ์์ค MediaPlayerCoreX ์์ง์ ๋ก์ปฌ ํ์ผ, URL, ๋คํธ์ํฌ ์คํธ๋ฆผ์ ์ด๊ณ ํ๋ฉด์ Unity RawImage์ ๋ ๋๋งํ๋ฏ๋ก ์๋์ผ๋ก ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค. ์ค๋น๋ MediaPlayerX ์ํ ์ฌ์ผ๋ก ๋ช ๋ถ ๋ง์ ์ฌ์, ์ผ์์ ์ง, ํ์, ๋ณผ๋ฅจ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค. ํ๋์ ๋์ ํจํค์ง๊ฐ Windows, Android, macOS, iOS๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. ํ ๋ฒ ๊ฐ์ ธ์จ ํ Build Target๋ง ์ ํํ์ฌ ๋น๋ํ์ธ์.
๊ณ ์์ค ํ๋ ์ด์ด ์์ง
MediaPlayerCoreX๋ WPF, MAUI, Avalonia์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฐ๋จํ API(์ด๊ธฐ, ์ฌ์, ์ผ์์ ์ง, ์ฌ๊ฐ, ํ์, ๋ณผ๋ฅจ ๋๋ ์ฌ์ ์๋ ๋ณ๊ฒฝ)๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ๋ฉด์ ์์์ ํ์ํ๊ธฐ ์ํด ํ์ดํ๋ผ์ธ์ ์กฐ๋ฆฝํ ํ์๊ฐ ์์ต๋๋ค.
ํ๋์ ๋์ ํจํค์ง
Windows, Android, macOS, iOS ๋ค์ดํฐ๋ธ ๋ฐํ์์ด ๋จ์ผ .unitypackage์ ํฌํจ๋์ด ์ ๊ณต๋ฉ๋๋ค. Build Target์ ์ ํํ๋ฉด Unity๊ฐ ์ ์ ํ ๋ค์ดํฐ๋ธ ๋ฐํ์์ ์๋์ผ๋ก ์ ํํฉ๋๋ค.
์ค๋น๋ ํ๋ ์ด์ด ์ฌ
ํฌํจ๋ MediaPlayerX ์ฌ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ VisioForgeVideoView ์ปดํฌ๋ํธ๋ฅผ ํตํด ์ฌ์์ RawImage์ ๋ ๋๋งํ๋ฉฐ, Stretch, Letterbox, Crop ์ข ํก๋น ๋ชจ๋๋ฅผ ์ง์ํฉ๋๋ค. ๋ฐ๋ก ํ์ฅํ ์ ์๋ ์๋ํ๋ ํ๋ ์ด์ด์ ๋๋ค.
ํ๋์จ์ด ๊ฐ์ ๋์ฝ๋ฉ
๋ชจ๋ฐ์ผ ์ฌ์์ ํ๋ซํผ ํ๋์จ์ด ์ฝ๋ฑ(Android์ MediaCodec, iOS์ VideoToolbox)์ ์ฌ์ฉํฉ๋๋ค. ํ๋ ์์ ํ ๋น์ด ์๋ ์ด์ค ๋ฒํผ ๊ฒฝ๋ก๋ก GPU ํ ์ค์ฒ์ ์ ๋ก๋๋์ด, ํ๋ ์๋ง๋ค ๊ฐ๋น์ง๊ฐ ๋ฐ์ํ์ง ์๋ ๋งค๋๋ฌ์ด ์์์ ์ ๊ณตํฉ๋๋ค.
์ฌ ์ด๋์๋ ๋ ๋๋ง
๊ฐ ํ๋ ์์ Unity Texture2D์ ์ ๋ก๋๋๋ฏ๋ก ์์์ด UI์๋ง ๊ตญํ๋์ง ์์ต๋๋ค. RawImage์ ํ์ํ๊ฑฐ๋, ํ๋ฉด, ๊ด๊ณ ํ, ๊ณก๋ฉด ๋ฑ ๋ชจ๋ 3D ์ค๋ธ์ ํธ์ ๋จธํฐ๋ฆฌ์ผ์ ๋งคํํ ์ ์์ต๋๋ค.
ํ์ผ, URL ๋ฐ ๋คํธ์ํฌ ์คํธ๋ฆผ
๊ด๋ฒ์ํ ์ฝ๋ฑ ์ง์(H.264, HEVC, AV1, VP9)์ผ๋ก ๋ก์ปฌ ํ์ผ, HTTP/HTTPS URL, HLS, RTSP ์คํธ๋ฆผ์ ์ฌ์ํ๋ฉฐ, ํ๋ ์ ๋จ์ ์ ๋ฐ ํ์๊ณผ ํธ๋ฆญ ํ๋ ์ด๊น์ง ๋ชจ๋ Unity ๋น๋ ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MediaPlayerCoreX๋ก Unity RawImage์ ๋์์ ์ฌ์ํ๊ธฐ
C#// The bundled native runtime is configured automatically before the
// first scene loads. Initialize the SDK once in your MonoBehaviour.
VisioForgeEnvironment.InitializeSdk();
// Create the high-level player engine โ no manual pipeline wiring.
_player = new MediaPlayerCoreX();
// RGBA frames are delivered to Unity through OnVideoFrameUnity and
// uploaded into a Texture2D by VisioForgeVideoView (aspect + flip handled).
_player.OnVideoFrameUnity += _videoView.OnFrameBuffer;
// Open a file or URL, then play. ignoreMediaInfoReader is required under Unity.
var source = await UniversalSourceSettings.CreateAsync(
filePath, ignoreMediaInfoReader: true);
await _player.OpenAsync(source);
await _player.PlayAsync();
// Seek, pause, resume, change volume and playback rate at runtime.
await _player.Position_SetAsync(TimeSpan.FromSeconds(30));Unity ์ฌ์์ MediaPlayerCoreX ์์ง์ ํตํด ์ ๊ณต๋ฉ๋๋ค. Unity 6(6000.x)์์ ๊ฒ์ฆ๋์์ผ๋ฉฐ, .NET Standard 2.1 API ํธํ์ฑ ์์ค์ด ํ์ํฉ๋๋ค. ๋ค ๊ฐ์ง SDK ๋ชจ๋ VisioForge.DotNet.Core NuGet๊ณผ ๋์ผํ SDK ์์ค๋ก ๋น๋๋ ๋จ์ผ ๋์ .unitypackage๋ก ์ ๊ณต๋ฉ๋๋ค. ํจํค์ง ๋น๋ ๋ ์ง์ NuGet ๋ฒ์ ์ ๋ณ๋๋ก ๊ด๋ฆฌ๋ฉ๋๋ค.
Unity ๋ฌธ์ ๋ณด๊ธฐ โ์ฃผ์ ๊ธฐ๋ฅ
VisioForge Media Player SDK .Net์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ง์๋๋ ํ์
- โขํ์ผ ํ์: MP4, MKV, MOV, AVI, MPEG-TS, WMV, MXF, VOB, OGG
- โข๋น๋์ค ํ์: MPEG-1/2, WMV, MPEG-4, H264, HEVC ๋ฐ ์ ์ ํ ๋์ฝ๋๊ฐ ์๋ ๊ธฐํ ํ์
- โข์ค๋์ค ํ์: AAC, MP3, Vorbis, WMA, OPUS, Speex ๋ฐ ์ ์ ํ ๋์ฝ๋๊ฐ ์๋ ๊ธฐํ ํ์
- โขMIDI, ๋ ธ๋๋ฐฉ KAR ๋ฐ CDG
- โขDVD ๋ฐ Blu-ray ์ฌ์ [Windows ์ ์ฉ]
๋น๋์ค ์ฒ๋ฆฌ ๋ฐ ํจ๊ณผ(CPU/GPU)
- โข์ด๋ฏธ์ง ์ค๋ฒ๋ ์ด(์ ๋๋ฉ์ด์ GIF ํฌํจ)
- โขSVG ์ค๋ฒ๋ ์ด
- โขํ ์คํธ ์ค๋ฒ๋ ์ด
- โข๋น๋์ค ํฌ๋ช ๋
- โขํฌ/์ค
- โข๋ฐ๊ธฐ, ๋๋น, ์ฑ๋, ์์กฐ ๋ฑ
- โข์์ ๋ฐ์ , ๊ทธ๋ ์ด์ค์ผ์ผ
- โข๋์ธํฐ๋ ์ด์ค, ๋ ธ์ด์ฆ ์ ๊ฑฐ
- โขํ์ด๋ ์ธ/ํ์ด๋ ์์, ํ์
- โข๋ชจ๋ ํด์๋๋ก ํฌ๊ธฐ ์กฐ์
- โขํ์ฌ DirectShow ํํฐ ์ง์
- โข30๊ฐ ์ด์์ ๊ธฐํ ํจ๊ณผ
์ค๋์ค ์ฒ๋ฆฌ ๋ฐ ํจ๊ณผ
- โข๋ณผ๋ฅจ ๋ถ์คํฐ
- โข์ดํ๋ผ์ด์
- โข3D ๋ฒ ์ด์ค ์์คํ
- โข์ ๊ทํ
- โข์๋/์๋ ๊ฒ์ธ
- โข๋ค์ํ ๊ธฐํ ํจ๊ณผ
๋คํธ์ํฌ ์คํธ๋ฆผ ๋ฐ ์ ๋ฌธ ์ง์
- โขHTTP/HTTPS ์คํธ๋ฆฌ๋ฐ
- โขRTSP/RTMP ํ๋กํ ์ฝ
- โขHLS/DASH ์ง์
- โขMMS/WMV/UDP ์คํธ๋ฆผ
- โขNDI ๋คํธ์ํฌ ์คํธ๋ฆฌ๋ฐ
- โข๋ฉ๋ชจ๋ฆฌ ์คํธ๋ฆผ ์ฌ์
๊ณ ๊ธ ๊ธฐ๋ฅ
- โข๋ฉ๋ชจ๋ฆฌ์์ ํ์ผ ์ฌ์
- โข์ํํ ์ฌ์(ํ์ผ ๊ฐ ์ง์ฐ ์์)
- โข๋ค์ค ์ถ๋ ฅ ํ๋ฉด ์ง์
- โขPicture-in-Picture ์ง์
- โข4K ๋ฐ 8K ๋น๋์ค ํ์ผ ์ง์
- โขGPU ๊ฐ์ ๋์ฝ๋ฉ(DXVA2/D3D11/QuickSync/NVDEC/AMF)
- โข๋ค๋ก/์์ผ๋ก ํ์
- โข.Net Bitmap ๋๋ ์ด๋ฏธ์ง ํ์ผ๋ก ํ๋ ์ ์บก์ฒ
- โขOSD(On-Screen Display)
- โข์๋ง ์ง์
- โข๋คํธ์ํฌ ์คํธ๋ฆฌ๋ฐ(MMS/WMV/RTSP/RTMP/UDP)
- โข์ญ์ฌ์
- โข์ํธํ๋ ๋น๋์ค ์ฌ์(Video Encryption SDK)
- โข๋ชจ์ ๊ฐ์ง
- โข์ผ๊ตด/๊ฐ์ฒด ๊ฐ์ง [Windows ์ ์ฉ]
- โข๋ฐ์ฝ๋ ๋ฆฌ๋
- โขํฌ๋ก๋ง ํค
- โขmadVR ๋ ๋๋ฌ [Windows ์ ์ฉ]
- โขVR 360ยฐ ๋น๋์ค [Windows ์ ์ฉ]
ํ๋ ์ด์ด ๊ธฐ๋ฅ
- โขํ๋ ์๋ณ ํ์
- โข๊ฐ๋ณ ์ฌ์ ์๋ ์ ์ด
- โข์ฌ์ ๋ชฉ๋ก ๊ด๋ฆฌ
- โข์ค๋์ค ํธ๋ ์ ํ
- โข๋น๋์ค ํ์
- โข์ข ํก๋น ์ ์ด
ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋น๋์ค SDK ๊ธฐ๋ฅ
๋น๋์ค SDK๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ฌ์, ์บก์ฒ, ์ธ์ฝ๋ฉ ๋ฐ ์คํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ ๊ณ ๊ธ ๋น๋์ค ๊ธฐ๋ฅ์ ํตํฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ ์๊ฐ์ ์ ์ฝํ๊ณ ๋์ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฑ์ ๋ฉํฐ๋ฏธ๋์ด ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ์ฌ ๋ณต์ก์ฑ์ ์ค์ด๋ฉด์ ๋ค์ํ ์ด์ ์ฒด์ ์ ํ์์์ ๊ธฐ๋ฅ์ฑ์ ํฅ์์ํต๋๋ค.
๋น ๋ฅธ ์์ ์ฝ๋
๋ช ๋ถ ๋ง์ ์ ๋ฌธ ๋ฏธ๋์ด ์ฌ์ ์์
๊ธฐ๋ณธ ๋ฏธ๋์ด ํ๋ ์ด์ด ๊ตฌํ
C#// ============================================================================
// MediaPlayerCoreX Quick Start Code Snippet
// ============================================================================
//
// REQUIRED NUGET PACKAGES
// =======================
//
// Main SDK Package (all platforms):
// - VisioForge.DotNet.MediaPlayer
//
// PLATFORM-SPECIFIC REDISTRIBUTABLE PACKAGES:
// -------------------------------------------
//
// Windows (x86):
// - VisioForge.CrossPlatform.Core.Windows.x86
// - VisioForge.CrossPlatform.Libav.Windows.x86 (optional, for extended format support)
//
// Windows (x64):
// - VisioForge.CrossPlatform.Core.Windows.x64
// - VisioForge.CrossPlatform.Libav.Windows.x64 (optional, for extended format support)
//
// macOS (native):
// - VisioForge.CrossPlatform.Core.macOS
//
// macOS (MacCatalyst / MAUI):
// - VisioForge.CrossPlatform.Core.macCatalyst
// - VisioForge.DotNet.Core.UI.MAUI (for MAUI apps)
//
// Linux/Ubuntu (x64):
// - VisioForge.CrossPlatform.Core.Linux.x64
// - Requires GStreamer 1.22.0+ installed (apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad)
//
// Android:
// - VisioForge.CrossPlatform.Core.Android
// - Requires Java Bindings Library from GitHub: https://github.com/visioforge/.Net-SDK-s-samples/tree/master/AndroidDependency
//
// iOS:
// - VisioForge.CrossPlatform.Core.iOS
//
// UI FRAMEWORK PACKAGES (optional):
// ---------------------------------
// - VisioForge.DotNet.Core.UI.MAUI (for .NET MAUI apps)
// - VisioForge.DotNet.Core.UI.Avalonia (for Avalonia apps)
//
// Documentation: https://www.visioforge.com/help/docs/dotnet/deployment-x/
// ============================================================================
using System;
using System.Linq;
using System.Threading.Tasks;
using VisioForge.Core;
using VisioForge.Core.MediaPlayerX;
using VisioForge.Core.Types.Events;
using VisioForge.Core.Types.X.AudioRenderers;
using VisioForge.Core.Types.X.Output;
using VisioForge.Core.Types.X.Sources;
using VisioForge.Core.Types.X.VideoEffects;
// Initialize the X engine before creating the core. Safe to call repeatedly; it runs once.
await VisioForgeX.InitSDKAsync();
// The 30-day trial needs no license certificate. Register one before PlayAsync() in a licensed deployment.
// Create and configure player with video view
var player = new MediaPlayerCoreX(videoView);
// Configure audio output device
var audioDevices = await player.Audio_OutputDevicesAsync(AudioOutputDeviceAPI.DirectSound);
var primaryDevice = audioDevices.FirstOrDefault(x => x.Name.Contains("Primary")) ?? audioDevices.FirstOrDefault();
if (primaryDevice != null)
{
player.Audio_OutputDevice = new AudioRendererSettings(primaryDevice);
}
// Handle events
player.OnStop += (sender, args) =>
{
Console.WriteLine("Playback completed");
};
player.OnError += (sender, args) =>
{
Console.WriteLine($"Error: {args.Message}");
};
// Open and play a local file
var source = await UniversalSourceSettings.CreateAsync(new Uri(@"C:\Videos\video.mp4"));
await player.OpenAsync(source);
await player.PlayAsync();
// Or play a network stream
// var streamSource = await UniversalSourceSettings.CreateAsync(new Uri("http://example.com/stream.m3u8"));
// await player.OpenAsync(streamSource);
// await player.PlayAsync();
// Playback control
await player.PauseAsync(); // Pause playback
await player.ResumeAsync(); // Resume playback
await player.StopAsync(); // Stop playback
// Position and duration
var position = await player.Position_GetAsync();
var duration = await player.DurationAsync();
Console.WriteLine($"Position: {position:hh\\:mm\\:ss} / {duration:hh\\:mm\\:ss}");
// Seek to position
await player.Position_SetAsync(TimeSpan.FromSeconds(30));
// Volume control (0.0 to 1.0)
player.Audio_OutputDevice_Volume = 0.75;
// Add text overlay
var textOverlay = new TextOverlayVideoEffect("text_overlay")
{
Text = "ยฉ My Company",
HorizontalAlignment = TextOverlayHAlign.Left,
VerticalAlignment = TextOverlayVAlign.Top,
XPad = 10,
YPad = 10
};
await player.Video_Effects_AddOrUpdateAsync(textOverlay);
// Add image overlay (logo)
var imageOverlay = new ImageOverlayVideoEffect(@"C:\Images\logo.png", "logo_overlay")
{
X = 100,
Y = 100,
Alpha = 0.8
};
await player.Video_Effects_AddOrUpdateAsync(imageOverlay);
// Remove an overlay
await player.Video_Effects_RemoveAsync("text_overlay");
// Clear all video effects
player.Video_Effects_Clear();
// Clean up
await player.DisposeAsync();
// Destroy SDK (when application exits)
VisioForgeX.DestroySDK();๋ผ์ด์ ์ค ์ ํ
๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ํ ์ ์ฐํ ๋ผ์ด์ ์ค ์ต์
์ฐ๊ฐ ๋ผ์ด์ ์ค์๋ 12๊ฐ์ ์ ๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค. LifetimeยทTeam ๋ผ์ด์ ์ค์๋ ์ ํ ์๋ช ๋์ ์ฃผ์ ๋ฐ ๋ถ ์ ๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
Standard
โฌ750ํ์, โฌ250 / ๋
- ๋น๋์ค ํ์ผ ์ฌ์
- ์ค๋์ค ํ์ผ ์ฌ์
- ์๋ง ์ง์
- HD ๋ฐ 4K ๋น๋์ค ์ง์
- ๋น๋์ค/์ค๋์ค ์ฒ๋ฆฌ ๋ฐ ํจ๊ณผ
- ํ๋์จ์ด ๊ฐ์(DXVA2, NVDEC, QuickSync)
- OSD(On-Screen Display)
- ํ๋ ์ ๊ทธ๋๋ฒ
- ๋ค์ค ์ถ๋ ฅ ํ๋ฉด
- GPU ๊ฐ์ ๋น๋์ค ํจ๊ณผ
- ๋ฐ์ฝ๋ ๋ฆฌ๋
- Picture-in-Picture ์ง์
Professional
โฌ1000ํ์, โฌ350 / ๋
- ๋น๋์ค ํ์ผ ์ฌ์
- ์ค๋์ค ํ์ผ ์ฌ์
- ๋ฉ๋ชจ๋ฆฌ ์คํธ๋ฆผ ์ฌ์
- ์๋ง ์ง์
- HD ๋ฐ 4K ๋น๋์ค ์ง์
- ๋น๋์ค/์ค๋์ค ์ฒ๋ฆฌ ๋ฐ ํจ๊ณผ
- ๋คํธ์ํฌ ์คํธ๋ฆผ ์ฌ์(HTTP/RTSP/RTMP/HLS/WMV/NDI)
- ์ญ์ฌ์
- ๋ชจ์ ๊ฐ์ง
- ํ๋์จ์ด ๊ฐ์(DXVA2, NVDEC, QuickSync)
- DirectShow ํํฐ๋ฅผ ์ฌ์ฉํ ๋น๋์ค ์ฒ๋ฆฌ(Windows)
- OSD(On-Screen Display)
- ํ๋ ์ ๊ทธ๋๋ฒ
- ๋ค์ค ์ถ๋ ฅ ํ๋ฉด
- GPU ๊ฐ์ ๋น๋์ค ํจ๊ณผ
- Video Encryption SDK ์ง์(Windows)
- ์ธ๋ถ ํ์ผ์ ์ค๋์ค ์คํธ๋ฆผ
- ๋ฐ์ฝ๋ ๋ฆฌ๋
- Picture-in-Picture ์ง์
ํ๋ฆฌ๋ฏธ์
โฌ1500ํ์, โฌ500 / ๋
- ๋น๋์ค ํ์ผ ์ฌ์
- ์ค๋์ค ํ์ผ ์ฌ์
- ๋ฉ๋ชจ๋ฆฌ ์คํธ๋ฆผ ์ฌ์
- ์๋ง ์ง์
- HD ๋ฐ 4K ๋น๋์ค ์ง์
- ๋น๋์ค/์ค๋์ค ์ฒ๋ฆฌ ๋ฐ ํจ๊ณผ
- ๋คํธ์ํฌ ์คํธ๋ฆผ ์ฌ์(HTTP/RTSP/RTMP/HLS/WMV/NDI)
- ํฌ๋ก๋ง ํค
- ์ญ์ฌ์
- ๋ชจ์ ๊ฐ์ง
- DVD ๋ฐ Blu-ray ์ฌ์(Windows)
- VR 360ยฐ ๋น๋์ค ์ง์ (Windows)
- ํ๋์จ์ด ๊ฐ์(DXVA2, NVDEC, QuickSync)
- DirectShow ํํฐ๋ฅผ ์ฌ์ฉํ ๋น๋์ค ์ฒ๋ฆฌ(Windows)
- OSD(On-Screen Display)
- ํ๋ ์ ๊ทธ๋๋ฒ
- ๋ค์ค ์ถ๋ ฅ ํ๋ฉด
- GPU ๊ฐ์ ๋น๋์ค ํจ๊ณผ
- Video Encryption SDK ์ง์(Windows)
- AI ๊ฐ์ฒด ๊ฐ์ง ๋ฐ ๋ถ์
- AI ์ผ๊ตด ์ธ์
- AI OCR ๋ฐ ๋ฒํธํ ์ธ์
- AI ์์ฑ ์ ์ฌ ๋ฐ ์๋ง
- AI ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ง์คํน(์ผ๊ตด, ๋ฒํธํ, ํ ์คํธ)
- AI ์๋ฏธ๋ก ์ ์์ ๊ฒ์(CLIP)
- ์ธ๋ถ ํ์ผ์ ์ค๋์ค ์คํธ๋ฆผ
- ๋ฐ์ฝ๋ ๋ฆฌ๋
- Picture-in-Picture ์ง์
์ฐ๊ฐ ๋ผ์ด์ ์ค๋ ์ง์ ๋ ๊ฐ๋ฐ์ 1๋ช
์, LifetimeยทTeam ๋ผ์ด์ ์ค๋ ํ ๋์์ ํ ์์น์ ์๋ ๊ตฌ๋งค ์กฐ์ง์ ๊ฐ๋ฐ์๋ฅผ ํฌํจํฉ๋๋ค. ๋ ๋ผ์ด์ ์ค ๋ชจ๋ ์ด๋ฉ์ผ ์ง์์ ํฌํจํฉ๋๋ค.
LifetimeยทTeam ๋ผ์ด์ ์ค์๋ ์ ํ ์๋ช
๋์ ์ฃผ์ ๋ฐ ๋ถ ์
๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฐ๊ฐ ๋ผ์ด์ ์ค์๋ 12๊ฐ์ ์
๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
์์ค ์ฝ๋ ๋ผ์ด์ ์ค
์ด SDK์ ์์ค ์ฝ๋ ๋ผ์ด์ ์ค๋ ์์ฒญ ์ ์ด์ฉ ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ๊ฒฉ ๋ฐ ๋ผ์ด์ ์ค ์กฐ๊ฑด์ ๋ํด ๋ ผ์ํ๋ ค๋ฉด ์์ ํ์ ๋ฌธ์ํ์ธ์.
์์ค ์ฝ๋ ๋ผ์ด์ ์ค ์์ฒญ๐ฐ ๋ฒ๋ค ํจํค์ง๋ก ๋ ๋ง์ด ์ ์ฝํ์ธ์
์ด ์ ํ์ ๋น์ฉ ํจ์จ์ ์ธ ๋ฒ๋ค ํจํค์ง์ ํฌํจ๋์ด ์์ต๋๋ค. ๊ฐ๋ณ ๊ตฌ๋งค๋ณด๋ค ์ ๋ ดํ๊ฒ ๋ ๋ง์ ์ ํ์ ๋ฐ์๋ณด์ธ์.
.NET Bundle Professional
ํฌํจ ์ฌํญ:
- โขVideo Capture SDK .NET (Professional)
- โขMedia Player SDK .NET (Professional)
- โขVideo Edit SDK .NET (Professional)
- โขVideo Edit SDK FFmpeg .NET (Professional)
- โขMedia Blocks SDK .NET
.NET Bundle Premium
ํฌํจ ์ฌํญ:
- โขVideo Capture SDK .NET (Premium)
- โขMedia Player SDK .NET (Premium)
- โขVideo Edit SDK .NET (Premium)
- โขVideo Edit SDK FFmpeg .NET (Premium)
- โขMedia Blocks SDK .NET
์์คํ ์๊ตฌ ์ฌํญ
๋ชจ๋ ์ง์ ํ๋ซํผ์ ๋ํ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์๊ตฌ ์ฌํญ
| ๊ฐ๋ฐ ์์คํ |
|
| ๋์ ํ๋ซํผ |
|
| .NET ๋ฒ์ |
|
| IDE ์ง์ |
|
| ํ๋์จ์ด |
|
๋ฐฐํฌ ๊ถํ
๋ก์ดํฐ ์๋ ๋ฐฐํฌ. ์ถ๊ฐ ๋น์ฉ์ด๋ ๋ฐํ์ ๋ผ์ด์ ์ค ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ์ธ์.
ํ๊ฐํ ์ ํ ์ฌํญ
๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ๊ฐํ์ 30์ผ ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. SDK ์์ง๊ณผ ์ถ๋ ฅ์ ๋ฐ๋ผ ์ํฐ๋งํฌ ๋๋ ๋ฏธ๋ฑ๋ก ์๋ฆผ์ด ํ์๋ ์ ์์ต๋๋ค.
๋น์์ ์ ์ฉ๋๋ก ๋ฌด๋ฃ: SDK๋ ๋น์์ ์ ์ฉ๋๋ก ๋ฌด๋ฃ์ ๋๋ค. ๋ฌด๋ฃ ๋ผ์ด์ ์ค๋ฅผ ๋ฐ์ผ๋ ค๋ฉด ๋ฌธ์ํด ์ฃผ์ธ์.
๋ฌธ์ ๋ฐ ๋ฆฌ์์ค
์ ์ฒด ๋ฌธ์, API ์ฐธ์กฐ ๋ฐ ์ํ ํ๋ก์ ํธ
AI ์ฝ๋ฉ ์์ด์ ํธ๋ก ๊ฐ๋ฐํ๊ธฐ
Claude Code, Cursor, GitHub Copilot, Gemini CLI, OpenAI Codex ๊ฐ์ AI ์์ด์ ํธ์ ํจ๊ป ๊ฐ๋ฐ ์ค์ด์ ๊ฐ์? VisioForge๋ Media Player SDK .NET์ ๋ํ ๊ธฐ๊ณ ํ๋ ๊ฐ๋ฅํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก ์์ด์ ํธ๊ฐ ์ฒ์๋ถํฐ ํตํฉ์ ์ ํํ ์ฒ๋ฆฌํฉ๋๋ค. ์ฌ๋ฐ๋ฅธ NuGet ํจํค์ง, ๋ผ์ด์ ์ค ๋ฑ๋ก, ํ๋ก์ ํธ ์ค์ , ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ์ถ์ธกํด์ผ ํ ํฌ๋ก์ค ํ๋ซํผ ๋ฐฐํฌ ์ธ๋ถ ์ฌํญ๊น์ง.
MCP ์๋ฒ ์ฐ๊ฒฐ
MCP์์ด์ ํธ์ VisioForge MCP ์๋ฒ๋ฅผ ์ถ๊ฐํ๋ฉด ์ํฉ์ ๋ง๋ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค. API ๊ฒ์, ํด๋์ค ๋ฐ ๋ฉค๋ฒ ์กฐํ, ์๋ํ๋ ์ฝ๋ ์์ ๊ฐ์ ธ์ค๊ธฐ, ๋ฐฐํฌ ๊ฐ์ด๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์๋ํฐ ์์์ ๋ฐ๋ก ํ ์ ์์ต๋๋ค.
Claude Code
claude mcp add --transport http visioforge-sdk https://mcp.visioforge.com/mcpVS Code (.vscode/mcp.json)
{
"servers": {
"visioforge-sdk": {
"type": "http",
"url": "https://mcp.visioforge.com/mcp"
}
}
}Agent Skill ๋ถ๋ฌ์ค๊ธฐ
Agent SkillsSDK์ ํ๋ซํผ ์กฐํฉ๋ง๋ค ๋ค์ด๋ก๋ ๊ฐ๋ฅํ ์คํฌ์ ์ ๊ณตํฉ๋๋ค. Media Player SDK .NET์ ๊ฒฝ์ฐ ํ๋ซํผ๋ณ๋ก ๋ฐ๋ก ์ธ ์ ์๋ SKILL.md(ํ์ํ NuGet ํจํค์ง, ๋ผ์ด์ ์ค ์ฝ๋, csproj ์ค์ , ํํ ํจ์ )์ ์์ด์ ํธ๊ฐ ๋ณต์ฌํ ์ ์๋ ์๋ํ๋ ์ํ ํ๋ก์ ํธ๊ฐ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. Claude Code, Cursor, OpenAI Codex, Gemini CLI ๋ฑ 30๊ฐ ์ด์์ ์์ด์ ํธ์ ํธํ๋ฉ๋๋ค(Cloudflare Agent Skills RFC).
์์ด์ ํธ์ ์คํฌ ์ธ๋ฑ์ค๋ฅผ ์ง์
https://www.visioforge.com/.well-known/agent-skills/index.json์ ์ฒด ๋ฌธ์๋ฅผ ์์ด์ ํธ์ ๋๊ธฐ๊ณ ์ถ์ผ์ ๊ฐ์? ์ผ๋ฐ ๋งํฌ๋ค์ด์ผ๋ก๋ ์ ๊ณต๋ฉ๋๋ค: /llms.txt ยท /llms-full.txt
30์ผ ๋ฌด๋ฃ ํ๊ฐํ ์์
๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ๊ฐํ์ 30์ผ ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. SDK ์์ง๊ณผ ์ถ๋ ฅ์ ๋ฐ๋ผ ์ํฐ๋งํฌ ๋๋ ๋ฏธ๋ฑ๋ก ์๋ฆผ์ด ํ์๋ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
WPF ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋์ค ํ๋ ์ด์ด๋ฅผ ํตํฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
VisioForge.DotNet.MediaPlayer NuGet ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ await VisioForgeX.InitSDKAsync()๋ฅผ ํ ๋ฒ ํธ์ถํ ๋ค์ VideoView๋ฅผ ์ฌ์ฉํ๋ MediaPlayerCoreX ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. OpenAsync()๋ก ํ์ผ ๋๋ URL์ ์ด๊ณ PlayAsync()๋ฅผ ํธ์ถํฉ๋๋ค. SDK๊ฐ ๋ ๋๋ง, ํฌ๋งท ๊ฐ์ง, ์ค๋์ค ์ถ๋ ฅ, ํ์, ๋ณผ๋ฅจ ๋ฐ ์ฌ์ ์๋๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
SDK๊ฐ MAUI์ ํฌ๋ก์ค ํ๋ซํผ ์ฌ์์ ์ง์ํ๋์?
๋ค. Media Player SDK๋ .NET MAUI์ ํจ๊ป ์๋ํ์ฌ ๋จ์ผ ์ฝ๋๋ฒ ์ด์ค์์ Windows, macOS, iOS, Android์ ํฌ๋ก์ค ํ๋ซํผ ๋น๋์ค ์ฌ์์ ์ง์ํฉ๋๋ค. ๋ํ Avalonia, Uno Platform, WinForms๋ ์ง์ํ์ฌ ์ถ๊ฐ์ ์ธ ํ๋ซํผ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ค ๋น๋์ค ๋ฐ ์ค๋์ค ํฌ๋งท์ด ์ง์๋๋์?
SDK๋ MP4, MKV, AVI, WebM, MOV, WMV, FLV ๋ฑ 500๊ฐ ์ด์์ ํฌ๋งท์ ์ฌ์ํฉ๋๋ค. ์ค๋์ค ํฌ๋งท์ MP3, AAC, FLAC, OGG, WAV๋ฅผ ์ง์ํฉ๋๋ค. ํฌ๋ก์ค ํ๋ซํผ MediaPlayerCoreX ์์ง์ ๋ฏธ๋์ด ํ์ดํ๋ผ์ธ์ผ๋ก GStreamer๋ฅผ ์ฌ์ฉํฉ๋๋ค. Windows์์๋ ํด๋์ MediaPlayerCore ์์ง์ด ์ ํ์ FFMPEG ํํฐ ๋๋ VLC๋ฅผ ์ฌ์ฉํ DirectShow๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ข ์ฌ์ฉ์๊ฐ ์ถ๊ฐ ์ฝ๋ฑ์ ์ค์นํ ํ์ ์์ด ๊ด๋ฒ์ํ ์ฝ๋ฑ ํธํ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
RTSP ๋ฐ ๋คํธ์ํฌ ์คํธ๋ฆผ์ ์ฌ์ํ ์ ์๋์?
๋ค. SDK๋ RTSP, RTMP, HTTP/HTTPS, HLS, UDP, SRT ๋คํธ์ํฌ ์คํธ๋ฆผ์ ์ง์ํฉ๋๋ค. ์ ์ง์ฐ ์ฌ์๊ณผ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ฒํผ๋ง์ผ๋ก ๋ผ์ด๋ธ ์นด๋ฉ๋ผ ํผ๋, ์คํธ๋ฆฌ๋ฐ ์๋ฒ, ์จ๋ผ์ธ ๋ฏธ๋์ด ์์ค๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค.
ํ๋์จ์ด ๊ฐ์ ๋น๋์ค ๋์ฝ๋ฉ์ ์ง์ํ๋์?
๋ค. SDK๋ DXVA2, D3D11, VideoToolbox(macOS), VAAPI(Linux)๋ฅผ ํตํ GPU ๊ฐ์ ๋์ฝ๋ฉ์ ํ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ต์ํ์ CPU ์ฌ์ฉ๋์ผ๋ก 4K ๋ฐ 8K ๋น๋์ค๋ฅผ ํฌํจํ ๊ณ ํด์๋ ์ฝํ ์ธ ์ ์ํํ ์ฌ์์ด ๊ฐ๋ฅํฉ๋๋ค.
C#์์ ๋น๋์ค ํ์ผ์ ํ๋ ์์ ์ถ์ถํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
SDK์ ํ๋ ์ ๊ทธ๋๋ฒ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฌ์ ์ค ๋๋ ํน์ ํ์์คํฌํ์์ ๊ฐ๋ณ ํ๋ ์์ ์บก์ฒํ ์ ์์ต๋๋ค. ํ๋ ์์ ๋นํธ๋งต ์ด๋ฏธ์ง๋ก ์ ์ฅํ๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ฒ๋ฆฌํ๊ฑฐ๋ ์ธ๋ค์ผ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. SDK๋ ๋๊ธฐ ๋ฐ ๋น๋๊ธฐ ํ๋ ์ ์ถ์ถ์ ๋ชจ๋ ์ง์ํฉ๋๋ค.
Unity์์ ๋์์์ ์ฌ์ํ ์ ์๋์?
๋ค. Media Player SDK .NET์ ๋ฐ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ .unitypackage๋ฅผ ์ ๊ณตํฉ๋๋ค. MediaPlayerCoreX ์์ง์ ๋ก์ปฌ ํ์ผ, URL, ๋คํธ์ํฌ ์คํธ๋ฆผ(HTTP, HLS, RTSP)์ Unity Texture2D์ ์ง์ ์ฌ์ํ๋ฉฐ, ํ์, ์ผ์์ ์ง, ์ฌ๊ฐ, ๋ณผ๋ฅจ, ์ฌ์ ์๋๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ๋จ์ผ ๋์ ํจํค์ง๋ก Windows, Android, macOS, iOS๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค.
Unity์ ๊ธฐ๋ณธ Video Player์ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์?
Unity์ VideoPlayer๋ ์์์ ์ปจํ ์ด๋์ ์ฝ๋ฑ๋ง ์ง์ํ๋ฉฐ ๋คํธ์ํฌ ์คํธ๋ฆฌ๋ฐ ์ ์ด ๊ธฐ๋ฅ์ด ๊ฑฐ์ ์์ต๋๋ค. MediaPlayerCoreX๋ ๊ด๋ฒ์ํ ํฌ๋งท ์ง์(H.264, HEVC, AV1, VP9), ํ๋์จ์ด ๊ฐ์ ๋์ฝ๋ฉ(Android์ MediaCodec, iOS/macOS์ VideoToolbox), RTSP ๋ฐ HLS ์คํธ๋ฆฌ๋ฐ, ํ๋ ์ ๋จ์ ์ ๋ฐ ํ์, ํธ๋ฆญ ํ๋ ์ด๋ฅผ ์ถ๊ฐํฉ๋๋ค. WPF, MAUI, Avalonia์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ์์ง์ ๋๋ค.
Unity ์ฌ์์ด ํ๋์จ์ด ๋์ฝ๋ฉ์ ์ฌ์ฉํ๋์?
๋ค. ๋ชจ๋ฐ์ผ์์๋ ํ๋ซํผ ํ๋์จ์ด ์ฝ๋ฑ(Android์ MediaCodec, iOS์ VideoToolbox)์ ์ฌ์ฉํฉ๋๋ค. ํ๋ ์์ ํ ๋น์ด ์๋ ์ด์ค ๋ฒํผ ๊ฒฝ๋ก๋ฅผ ํตํด GPU ํ ์ค์ฒ์ ์ ๋ก๋๋์ด, ํ๋ ์๋ง๋ค ๊ฐ๋น์ง๊ฐ ๋ฐ์ํ์ง ์๋ ๋งค๋๋ฌ์ด ์์์ ์ ๊ณตํฉ๋๋ค.
Media Player SDK๊ฐ ์ฌ์ ์ค ๋น๋์ค ํ์ผ์์ ๊ฐ์ฒด ๋๋ ์ผ๊ตด ๊ฐ์ง๋ฅผ ์คํํ ์ ์์ต๋๊น?
๋ค. OpenAsync/PlayAsync ์ด์ ์ YOLOObjectDetectorBlock, ObjectAnalyticsBlock ๋๋ FaceRecognitionBlock์ MediaPlayerCoreX.Video_Processing_AddBlock์ผ๋ก ๋ฑ๋กํ์ธ์. ๊ฐ์ง์ ์ธ์์ ์ฌ์๋๋ ๋ชจ๋ ํ๋ ์์์ ONNX Runtime์ ํตํด ์จ๋๋ฐ์ด์ค๋ก ์คํ๋๋ฉฐ, ๊ฒฐ๊ณผ๋ ๋ธ๋ก ์์ฒด์ ์ด๋ฒคํธ๋ฅผ ํตํด ์ ๋ฌ๋๊ณ ์ ํ์ ์ผ๋ก ๋ ๋๋ง๋ ํ๋ฉด์ ์ค๋ฒ๋ ์ด๊ฐ ๊ทธ๋ ค์ง๋๋ค.
Media Player SDK๊ฐ ์๋ง์ด ์๋ ๋น๋์ค์ ์๋ง์ ์์ฑํ ์ ์์ต๋๊น?
๋ค. OpenAsync/PlayAsync ์ด์ ์ SpeechToTextBlock์ MediaPlayerCoreX.Audio_Processing_AddBlock์ผ๋ก ๋ฑ๋กํ์ธ์(Audio_Play๋ฅผ true๋ก ์ค์ ). Whisper์ Silero VAD๋ก ํ์ผ์ ์ค๋์ค ํธ๋์ ๋ก์ปฌ์์ ์ ์ฌํ๋ฉฐ, ์ค์๊ฐ ์๋ง์ ๋ ๋๋งํ๊ฑฐ๋ SRT/VTT ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
