VisioForge

Last updated: 2026年1月

Video Capture SDK .NET vs Medialooks MFormats SDK

パイプラインエンジン vs フレームベースキャプチャの比較

VisioForge Video Capture SDK .NETとMedialooks MFormats SDKの選択は、根本的に異なる2つのアーキテクチャモデル間の決定です。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サポートによるイベント駆動アーキテクチャ
  • 自動スレッド管理によるシングルプロセスモデル
  • 1つのパイプラインからのマルチ出力:録画 + ストリーミング + スナップショットを同時に

MFormats SDKアーキテクチャ

MFormatsはCOMオブジェクト上に構築されたフレームベースのグラブ-プロセス-出力モデルを使用します。MFReaderを作成してフレームを取得し、各フレームをMFTransformオブジェクトで処理し、MFWriterまたはMFRenderer出力に送信します。これによりフレームごとの細かい制御が可能になりますが、キャプチャループの記述、スレッディングの管理、フレームタイミングの手動処理が必要です。

  • フレームベースループ:MFReaderからフレームを取得、処理、MFWriterに送信
  • .NETインターオプラッパーを備えたCOMベースアーキテクチャ
  • 手動スレッディングとフレームタイミング管理が必要
  • フレームごとの制御によりカスタムルーティングロジックが可能
  • パイプラインの各ステージ用の個別オブジェクト(Reader、Transform、Writer、Renderer)
  • ブロードキャストワークフロー用の組み込みプレイアウトおよびプレイリストスケジューリング

主要なアーキテクチャの違い

側面Video Capture SDKMFormats SDK
プログラミングモデル宣言的パイプライン:構成して開始命令型ループ:フレームごとに取得、処理、出力
スレッディング自動内部スレッド管理開発者がキャプチャループのスレッディングを管理
フレームルーティングパイプライン構成による自動コード内でフレームごとに手動ルーティング
マルチ出力1つのパイプラインからの組み込み同時出力開発者がフレームを複製して複数の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/Bluebishハードウェア統合と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の1回限りの永久購入です。これは1回の支払い対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