VisioForge

Last updated: 2026년 1월

Video Capture SDK .NET vs Medialooks MFormats SDK

파이프라인 엔진 vs 프레임 기반 캡처 비교

VisioForge Video Capture SDK .NET과 Medialooks MFormats SDK 중 선택하는 것은 근본적으로 다른 두 가지 아키텍처 모델 간의 결정입니다. Video Capture SDK는 소스, 처리 및 출력을 선언적으로 구성하는 파이프라인 기반 엔진을 사용하고, MFormats는 각 프레임을 수동으로 가져와 라우팅하는 프레임 기반 그랩-프로세스-출력 루프를 따릅니다. 이 가이드에서는 아키텍처, 기능, 플랫폼 지원, 가격 및 실제 코드를 비교하여 프로젝트에 적합한 선택을 할 수 있도록 합니다.

요약

측면Video Capture SDK .NETMFormats SDK
아키텍처듀얼 엔진: 네이티브 DirectShow/Media Foundation + 내장 FFmpeg 파이프라인COM 객체를 사용한 프레임 기반 그랩-프로세스-출력 루프
플랫폼 지원Windows, macOS, Linux, Android, iOS (5개 플랫폼)Windows만 지원
가격연 250-500 EUR (구독) 또는 1,500 EUR 팀/영구 라이선스~4,508달러/개발자/년 (구독 필수)
최적 용도크로스플랫폼 캡처 앱, 다중 출력 파이프라인, 비디오 효과, 감지멀티벤더 SDI 방송, HTML5 CG 오버레이, 재생목록/플레이아웃 워크플로
SDI 하드웨어Blackmagic DeckLink 지원Blackmagic, AJA, Bluefish444, Deltacast 멀티벤더 SDI
UI 프레임워크WinForms, WPF, MAUI, Avalonia, Uno, Console, BlazorWinForms, WPF, Console
라이선스 모델영구 또는 연간 구독; 만료 후에도 작동연간 구독만; 구독 만료 시 워터마크 추가
지원전용 티켓 시스템, 우선 SLA이메일 지원, 포럼

아키텍처 심층 분석

Video Capture SDK .NET 아키텍처

Video Capture SDK는 파이프라인 기반 설계를 사용합니다. 소스, 처리 단계 및 출력을 선언적으로 구성합니다. 엔진은 내부 필터 그래프를 자동으로 조립하며 스레딩, 동기화 및 버퍼 관리를 처리합니다. 듀얼 엔진은 네이티브 장치 액세스를 위한 DirectShow/Media Foundation과 고급 코덱 및 IP 카메라 수집을 위한 내장 FFmpeg 파이프라인을 래핑합니다.

  • 선언적 파이프라인 구성: 속성 설정, StartAsync() 호출
  • 듀얼 엔진: 네이티브 OS 캡처 API + 내장 FFmpeg
  • Direct3D / OpenGL 렌더러를 통한 GPU 가속 미리보기
  • .NET async/await 지원을 통한 이벤트 기반 아키텍처
  • 자동 스레드 관리를 통한 단일 프로세스 모델
  • 하나의 파이프라인에서 다중 출력: 녹화 + 스트리밍 + 스냅샷 동시 수행

MFormats SDK 아키텍처

MFormats는 COM 객체를 기반으로 구축된 프레임 기반 그랩-프로세스-출력 모델을 사용합니다. MFReader를 생성하여 프레임을 가져오고, 각 프레임을 MFTransform 객체를 통해 처리하며, MFWriter 또는 MFRenderer 출력으로 전송합니다. 이는 프레임별 세밀한 제어를 제공하지만 캡처 루프 작성, 스레딩 관리 및 프레임 타이밍을 수동으로 처리해야 합니다.

  • 프레임 기반 루프: MFReader에서 프레임 가져오기, 처리, MFWriter로 전송
  • .NET 인터롭 래퍼를 갖춘 COM 기반 아키텍처
  • 수동 스레딩 및 프레임 타이밍 관리 필요
  • 프레임별 제어로 커스텀 라우팅 로직 가능
  • 각 파이프라인 단계를 위한 별도 객체 (Reader, Transform, Writer, Renderer)
  • 방송 워크플로를 위한 내장 플레이아웃 및 재생목록 스케줄링

주요 아키텍처 차이점

측면Video Capture SDKMFormats SDK
프로그래밍 모델선언적 파이프라인: 구성하고 시작명령형 루프: 프레임별 가져오기, 처리, 출력
스레딩자동 내부 스레드 관리개발자가 캡처 루프 스레딩 관리
프레임 라우팅파이프라인 구성을 통한 자동코드에서 프레임별 수동 라우팅
다중 출력하나의 파이프라인에서 내장 동시 출력개발자가 프레임을 복제하여 여러 writer로 라우팅
플랫폼크로스플랫폼 (.NET 6-10, MAUI)Windows만 (COM 기반)
객체 모델순수 .NET 관리 API.NET 래퍼를 사용한 COM 인터롭

기능별 비교

캡처 소스

기능Video Capture SDKMFormats SDK
USB 웹캠
화면 / 데스크톱 캡처
IP 카메라 (RTSP/ONVIF)
Blackmagic DeckLink SDI
AJA SDI 카드
Bluefish444 SDI 카드
Deltacast SDI 카드
TV 튜너 (BDA/DVB)
NDI 소스
산업용 카메라 (GenICam/GigE Vision)
가상 카메라 (OBS Virtual Cam)⚠️(DirectShow를 통해)

녹화 및 출력

기능Video Capture SDKMFormats SDK
MP4 (H.264 / H.265)
MXF 컨테이너⚠️(MFormats는 방송 MXF에 강함)
MKV 컨테이너
WebM (VP8 / VP9 / AV1)
AVI
MOV (ProRes)
WMV / ASF
MPEG-TS
애니메이션 GIF
오디오 전용 (MP3, AAC, WAV, FLAC)⚠️
사전 이벤트 녹화 (순환 버퍼)

다중 출력

기능Video Capture SDKMFormats SDK
동시 녹화 + 스트리밍
여러 독립 녹화 출력⚠️(수동 프레임 복제 필요)
독립 출력 제어 (각각 시작/중지/일시정지)⚠️(writer별 수동 제어)
출력별 다른 코덱
녹화 중 스냅샷

스트리밍

기능Video Capture SDKMFormats SDK
RTMP Push
RTSP 서버
SRT 스트리밍
HLS 출력⚠️
NDI 출력
UDP / TCP 멀티캐스트

비디오 처리 및 효과

기능Video Capture SDKMFormats SDK
실시간 크기 조정 / 자르기
디인터레이싱
색상 조정
텍스트 / 이미지 오버레이
HTML5 CG 오버레이
크로마 키 (그린 스크린)
GPU 가속 비디오 효과 (40+)⚠️(내장 효과 제한적)
화면 속 화면
전환 및 와이프

오디오

기능Video Capture SDKMFormats SDK
오디오 장치 캡처
오디오 믹싱 (다중 입력)
오디오 효과 (40+ 내장: EQ, 컴프레서, 리버브 등)
VU 미터 / 레벨 모니터링
시스템 오디오 루프백 캡처⚠️
임베디드 오디오 라우팅 (SDI)

감지 및 분석

기능Video Capture SDKMFormats SDK
모션 감지
얼굴 감지
바코드 / QR 코드 판독
객체 추적
오디오 레벨 감지

방송 및 플레이아웃

기능Video Capture SDKMFormats SDK
재생목록 / 플레이아웃 스케줄링
멀티벤더 SDI 출력⚠️(MFormats는 AJA, Bluefish, Deltacast 출력 지원)
HTML5 CG (캐릭터 제너레이터) 오버레이
가상 카메라 출력
젠록 / 레퍼런스 동기화

플랫폼 지원

운영 체제 호환성

플랫폼Video Capture SDKMFormats SDK
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 SDKMFormats SDK
WinForms
WPF
.NET MAUI
Avalonia UI
Uno Platform
Console / Service
Blazor (Server-Side)

가격 비교

Video Capture SDK .NET 가격

개발자 (연간)연 250-500 EUR

개발자 1명, 상업적 사용, 연간 업데이트 및 지원

팀 영구 라이선스1,500 EUR

최대 3명 개발자, 영구 라이선스, 1년 업데이트 포함

팀 영구 라이선스1,500 EUR

최대 8명 개발자, 영구 라이선스, 1년 업데이트 포함

All licenses include:

  • 로열티 프리 배포
  • 모든 소스 코드 예제
  • 우선 티켓 지원
  • 모든 플랫폼 대상 포함
  • 영구 라이선스 옵션: 구독 만료 후에도 계속 사용 가능 (워터마크 없음)

MFormats SDK 가격

MFormats SDK (개발자 1명)~4,508달러/년

연간 구독, 단일 개발자, Windows만

개발자 5명 / 3년~67,620달러

개발자 5석, 3년 구독 약정

런타임 라이선스추가 비용

구성에 따라 배포별 런타임 요금이 필요할 수 있음

구독 만료 경고

MFormats SDK는 필수 연간 구독 모델을 사용합니다. 구독이 만료되거나 갱신되지 않으면:

  • 모든 비디오 출력에 워터마크가 자동으로 추가됩니다
  • 활성 구독 없이는 프로덕션에서 SDK를 계속 사용할 수 없습니다
  • 영구 라이선스 대체 옵션이 없습니다
  • 라이선스 서버가 검증할 수 없으면 배포된 애플리케이션에 워터마크가 표시됩니다

Video Capture SDK는 구매 후 무기한으로 계속 작동하는 영구 라이선스를 제공하며, 갱신 만료에 대한 워터마크 페널티가 없습니다.

코드 예제

예제 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();

MFormats SDK

C#
// MFormats: Frame-based capture loop
MFDeviceClass devClass = new MFDeviceClass();
MFReaderClass reader = new MFReaderClass();
MFWriterClass writer = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();

// Configure video device
reader.DeviceSet(eMFDeviceType.eMFDT_Video, 0, "");
reader.DeviceSet(eMFDeviceType.eMFDT_Audio, 0, "");

// Configure writer output
writer.WriterSet("recording.mp4", 0, "");

// You must run the capture loop yourself
while (capturing)
{
    MFFrame frame;
    reader.SourceFrameGet(-1, out frame, "");

    if (frame != null)
    {
        // Preview
        renderer.RenderSet("preview", frame, "");

        // Write to file
        writer.WriterPut(frame, "");

        // Release frame manually
        Marshal.ReleaseComObject(frame);
    }

    Thread.Sleep(1); // Manual timing
}

예제 2: IP 카메라 + 오버레이 + 스트리밍

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;

var capture = new VideoCaptureCore();

// IP camera source
capture.IP_Camera_Source = new IPCameraSourceSettings
{
    URL = "rtsp://192.168.1.100:554/stream",
    Type = IPCameraType.RTSP
};

// Add text overlay
capture.Video_Overlays.Add(new VideoOverlayText
{
    Text = "{timestamp} - Camera 1",
    Position = new System.Drawing.Point(10, 10),
    Font = new System.Drawing.Font("Arial", 14),
    Color = System.Drawing.Color.White
});

// Stream to RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = new RTMPOutput
{
    URL = "rtmp://streaming-server/live",
    StreamKey = "stream_key",
    Video = new H264EncoderSettings { Bitrate = 4500 },
    Audio = new AACEncoderSettings { Bitrate = 128 }
};

// Also record locally
capture.Output_Filename = "backup.mp4";
capture.Output_Format = new MP4Output();

await capture.StartAsync();

MFormats SDK

C#
// MFormats: Manual frame loop with overlay + streaming
MFReaderClass reader = new MFReaderClass();
MFWriterClass localWriter = new MFWriterClass();
MFWriterClass rtmpWriter = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();

// Configure RTSP source
reader.ReaderOpen("rtsp://192.168.1.100:554/stream", "");

// Configure outputs
localWriter.WriterSet("backup.mp4", 0, "");
rtmpWriter.WriterSet("rtmp://streaming-server/live/stream_key", 0, "");

while (capturing)
{
    MFFrame frame;
    reader.SourceFrameGet(-1, out frame, "");

    if (frame != null)
    {
        // Add overlay manually via MFTransform
        MFOverlayClass overlay = new MFOverlayClass();
        overlay.OverlayTextSet(frame,
            DateTime.Now.ToString() + " - Camera 1",
            10, 10, 14, "Arial", 0xFFFFFF, 0, "");

        // Clone frame for second output
        MFFrame clone;
        frame.MFClone(out clone, eMFrameClone.eMFC_Full, eMFCC.eMFCC_Default);

        // Write to local file
        localWriter.WriterPut(frame, "");

        // Write to RTMP stream
        rtmpWriter.WriterPut(clone, "");

        Marshal.ReleaseComObject(clone);
        Marshal.ReleaseComObject(frame);
    }
}

각 솔루션을 선택할 시기

다음이 필요할 때 Video Capture SDK 선택

  • 크로스플랫폼 캡처 애플리케이션 (Windows, macOS, Linux, 모바일)
  • 자동 스레딩 및 버퍼 관리를 갖춘 파이프라인 기반 아키텍처
  • 40+ 내장 GPU 가속 비디오 및 오디오 효과
  • 캡처 중 모션 감지, 얼굴 감지, 바코드 스캐닝
  • OBS, Zoom, Teams 연동을 위한 가상 카메라 출력
  • 영구 라이선스 옵션이 있는 경제적인 라이선스
  • 개별 시작/중지 제어가 있는 여러 독립 출력
  • 산업용 카메라 지원 (GenICam, GigE Vision)
  • TV 튜너 및 DVB 캡처 지원

다음이 필요할 때 MFormats SDK 선택

  • 멀티벤더 SDI 지원: Blackmagic과 함께 AJA, Bluefish444, Deltacast
  • 재생목록 스케줄링 및 자동화를 갖춘 방송 플레이아웃
  • 라이브 방송용 HTML5 기반 CG (캐릭터 제너레이터) 오버레이
  • 방송 스튜디오 환경용 젠록 및 레퍼런스 동기화
  • 모든 처리 단계에 대한 프레임별 수동 제어
  • 완전한 방송 메타데이터 지원을 갖춘 MXF 컨테이너 형식
  • 기존 방송 인프라 및 SDI 라우터와의 통합

결정 매트릭스

요구사항Video Capture SDKMFormats SDK승자
크로스플랫폼 지원Video Capture SDK
독립 제어가 있는 다중 출력Video Capture SDK
오디오 효과 (40+ 내장)Video Capture SDK
GPU 비디오 효과Video Capture SDK
모션 / 얼굴 / 바코드 감지Video Capture SDK
가상 카메라 출력Video Capture SDK
2,000 EUR 미만 예산Video Capture SDK
영구 라이선스 옵션Video Capture SDK
산업용 카메라 (GenICam)Video Capture SDK
TV 튜너 / DVB 캡처Video Capture SDK
멀티벤더 SDI (AJA, Bluefish444)MFormats SDK
방송용 HTML5 CG 오버레이MFormats SDK

결론

Video Capture SDK .NET

Video Capture SDK는 풍부한 비디오 처리, 감지 기능, 여러 독립 출력 및 광범위한 장치 지원이 필요한 .NET 개발자를 위한 크로스플랫폼 파이프라인 기반 캡처 엔진으로 뛰어납니다. 선언적 API, 40+ GPU 효과 및 영구 라이선스는 데스크톱에서 모바일까지 대부분의 캡처 애플리케이션에 비용 효율적인 선택입니다.

MFormats SDK

MFormats SDK는 멀티벤더 SDI 하드웨어 지원 (AJA, Bluefish444, Deltacast), HTML5 CG 오버레이 및 재생목록 기반 플레이아웃 자동화가 필요한 방송 중심 워크플로에 강력한 선택입니다. 프레임 기반 아키텍처는 전문 방송 환경에 적합한 프레임별 세밀한 제어를 제공합니다. 그러나 Windows만 지원하고, 상당히 더 비싸며, 구독이 만료되면 워터마크가 추가됩니다.

The Reality

대부분의 .NET 비디오 캡처 프로젝트 — 특히 크로스플랫폼 지원, 감지 기능 또는 예산 친화적인 라이선스가 필요한 프로젝트 — 에 대해 Video Capture SDK가 확실한 선택입니다. MFormats는 AJA/Bluefish 하드웨어 통합과 CG 오버레이 워크플로가 필수적인 멀티벤더 SDI 방송 스튜디오에서 특별히 자리를 잡고 있습니다.

Frequently Asked Questions

구독을 갱신하지 않으면 MFormats 애플리케이션은 어떻게 됩니까?
MFormats는 필수 연간 구독 모델을 사용합니다. 구독이 만료되면 배포된 애플리케이션의 모든 비디오 출력에 워터마크가 자동으로 추가됩니다. 영구 라이선스 대체 옵션이 없습니다. Video Capture SDK는 이와 대조적으로 구매 후 무기한으로 계속 작동하는 영구 라이선스를 제공하며 워터마크 페널티가 없습니다.
Video Capture SDK는 AJA 또는 Bluefish444 SDI 카드를 지원합니까?
현재 Video Capture SDK는 Blackmagic DeckLink SDI 카드를 지원하지만 AJA 또는 Bluefish444 하드웨어는 지원하지 않습니다. 프로젝트에서 Blackmagic과 함께 AJA, Bluefish, Deltacast의 멀티벤더 SDI 지원이 필요한 경우, 해당 특정 요구사항에는 MFormats가 더 나은 선택입니다.
Video Capture SDK는 macOS와 Linux에서 실행할 수 있습니까?
예. Video Capture SDK는 Windows, macOS (Apple Silicon 및 Intel), Linux x64, Linux ARM64, Android 및 iOS를 지원합니다. MFormats는 COM 기반 아키텍처로 인해 Windows만 지원합니다.
5명의 개발자 팀에 대한 3년간 가격 모델은 어떻게 비교됩니까?
5명의 개발자에 대해 3년간 MFormats는 약 67,620달러가 듭니다. Video Capture SDK 팀 영구 라이선스는 최대 8명의 개발자에 대해 1,500 EUR의 일회성 영구 구매입니다. 이는 일회성 결제 대 67,620달러 — MFormats보다 약 97% 저렴합니다.
MFormats에 내장 모션 감지 또는 얼굴 감지가 있습니까?
아니요. MFormats에는 내장 감지 기능이 포함되어 있지 않습니다. 모션 감지, 얼굴 감지 또는 바코드 스캐닝을 위해 타사 라이브러리를 통합해야 합니다. Video Capture SDK는 이 모든 것을 이벤트 기반 콜백이 있는 내장 기능으로 포함합니다.
방송 플레이아웃 애플리케이션에는 어떤 SDK가 더 좋습니까?
MFormats는 방송 플레이아웃 워크플로를 위해 특별히 설계되었습니다. 재생목록 스케줄링, HTML5 CG 오버레이, 젠록 지원 및 멀티벤더 SDI 출력이 포함됩니다. 주요 용도가 방송 플레이아웃 자동화인 경우 MFormats가 더 강력한 선택입니다.
MFormats에서 Video Capture SDK로 마이그레이션할 수 있습니까?
예, 하지만 프로그래밍 모델이 다릅니다. MFormats는 프레임 기반 그랩-프로세스-출력 루프를 사용하고, Video Capture SDK는 선언적 파이프라인을 사용합니다. 마이그레이션은 일반적으로 수동 프레임 루프를 파이프라인 구성 및 이벤트 핸들러로 교체하는 것을 포함합니다. 대부분의 팀은 SDK 코드가 상당히 짧고 유지 관리가 쉽다는 것을 발견합니다. 프로젝트 복잡성에 따라 마이그레이션에 1~3주가 소요됩니다.

시작하기

Related Comparisons