VisioForge

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 .NETLibVLCSharp
アーキテクチャデュアルエンジン:ネイティブ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 APIsout 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はlibvlcの公式.NETバインディングで、VLCメディアプレーヤーの背後にあるコアエンジンです。VLCのC APIのマネージドラッパーを提供し、VLCの広範なメディア再生機能へのアクセスを可能にします。主に再生用に設計されていますが、VLCのメディアリソースロケーター構文(dshow://、screen://、v4l2://)を使用してキャプチャデバイスを開くことができます。

  • ▶P/Invoke経由のlibvlc C APIのマネージド.NETラッパー
  • ▶すべてのメディア操作を処理するモノリシックVLCエンジン
  • ▶URL形式のメディアリソースロケーター経由でアクセスするキャプチャデバイス
  • ▶sout(ストリーム出力)文字列チェーン経由で設定される録画
  • ▶再生優先設計 — キャプチャは二次的なユースケース
  • ▶プラットフォーム固有のVLCネイティブライブラリによるクロスプラットフォーム

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

側面Video Capture SDKLibVLCSharp
設計の焦点ビデオキャプチャワークフロー専用に構築キャプチャを二次機能とするメディア再生ライブラリ
デバイス検出完全なデバイスメタデータ付きのネイティブOS列挙API手動のdshow://またはv4l2:// URL構築
録画設定型付き.NET出力クラス(MP4Output、H264EncoderSettings)文字列ベースのsoutトランスコードチェーン
エラー処理.NET例外とイベントベースのエラーVLCログコールバックとイベントサブスクリプション
マルチ出力ネイティブOutputs_Add API — マネージドで型安全sout duplicateディレクティブ — 脆弱な文字列パース
エフェクトパイプラインキャプチャ中の内蔵CPU + GPUエフェクトチェーンキャプチャ用のリアルタイムエフェクトパイプラインなし

機能別比較

キャプチャソース

機能Video Capture SDKLibVLCSharp
USBウェブカメラ✅⚠️(制限された制御でdshow://経由)
内蔵ノートPCカメラ✅⚠️(dshow:// URL経由)
画面/デスクトップキャプチャ✅⚠️(screen://経由の基本的なもの — 領域選択なし)
アプリケーションウィンドウキャプチャ✅❌
IPカメラ(RTSP/ONVIF)✅⚠️(URLベース、自動再接続なし)
キャプチャカード(Blackmagic DeckLink)✅❌
TVチューナー(BDA/DVB)✅❌
NDIソース✅❌
産業用カメラ(GigE Vision、USB3 Vision)✅❌
仮想カメラ(OBS Virtual Cam)✅⚠️(Windowsのみdshow://経由)

ライブプレビュー

機能Video Capture SDKLibVLCSharp
内蔵ビデオプレビュー✅✅(再生指向のサーフェス)
GPU高速レンダリング✅✅
プレビュー上のテキスト/画像オーバーレイ✅❌(キャプチャ中のオーバーレイAPIなし)
録画なしのプレビュー✅✅
複数のプレビューウィンドウ✅⚠️(複数のMediaPlayerインスタンスが必要)
WinForms / WPF / MAUIコントロール✅✅(VideoViewコントロール利用可能)

録画

機能Video Capture SDKLibVLCSharp
MP4(H.264 / H.265)✅⚠️(soutトランスコード文字列経由)
MKVコンテナ✅⚠️(soutトランスコード文字列経由)
WebM(VP8 / VP9)✅⚠️(soutトランスコード文字列経由)
AVI✅⚠️(soutトランスコード文字列経由)
WMV / ASF✅⚠️(soutトランスコード文字列経由)
型付き出力設定✅❌(すべての設定は文字列ベース)
オーディオのみの録画✅⚠️(soutトランスコード文字列経由)
セグメント録画(時間/サイズで分割)✅❌
プリイベント録画(循環バッファ)✅❌

マルチ出力

機能Video Capture SDKLibVLCSharp
同時録画 + ストリーミング✅⚠️(sout duplicate経由 — 脆弱)
複数の録画出力✅⚠️(sout duplicate経由 — 脆弱)
ネイティブOutputs_Add API✅❌
独立した出力制御✅❌
録画中のスナップショット✅⚠️(TakeSnapshot利用可能だが制限あり)

ストリーミング

機能Video Capture SDKLibVLCSharp
RTMP Push✅⚠️(sout経由 — 制限された制御)
RTSPサーバーモード✅❌
SRT(Caller / Listener)✅❌
HLSセグメント生成✅⚠️(sout経由 — 制限あり)
UDP / TCP ユニキャスト / マルチキャスト✅⚠️(sout rtp/udp経由)
型付きストリーミング設定✅❌(すべての設定は文字列ベースのsoutチェーン)

ビデオ処理

機能Video Capture SDKLibVLCSharp
リアルタイムリサイズ/クロップ✅❌(キャプチャ中の処理なし)
デインターレース✅✅(VLCには内蔵デインターレースあり)
色調整(明るさ、コントラスト)✅❌(キャプチャ中のエフェクトなし)
テキストオーバーレイ/透かし✅❌(キャプチャ中のオーバーレイなし)
画像オーバーレイ/ロゴ✅❌(キャプチャ中のオーバーレイなし)
ピクチャーインピクチャー✅❌
クロマキー(グリーンスクリーン)✅❌
GPU高速フィルター✅❌

オーディオ

機能Video Capture SDKLibVLCSharp
オーディオデバイスキャプチャ✅⚠️(dshow://オーディオ経由)
システムオーディオ(ループバック)キャプチャ✅❌
オーディオミキシング(複数入力)✅❌
リアルタイムボリューム/ゲイン制御✅⚠️(基本的なボリューム制御)
オーディオエフェクト(40以上内蔵)✅❌
VUメーター/レベルモニタリング✅❌

検出と分析

機能Video Capture SDKLibVLCSharp
モーション検出✅❌
顔検出✅❌
バーコード/QRコード読み取り✅❌
オブジェクトトラッキング✅❌
オーディオレベル検出✅❌

フレームアクセスと統合

機能Video Capture SDKLibVLCSharp
Rawフレームコールバック(RGB / YUV)✅⚠️(SetVideoCallbacks経由 — 複雑なセットアップ)
Bitmap / SKBitmap / WriteableBitmap✅❌(手動変換が必要)
ML.NET / ONNXとの統合✅⚠️(手動フレーム抽出が必要)
OpenCV Interop✅⚠️(ビデオコールバック経由)
直接GPUテクスチャアクセス✅❌
仮想カメラ出力✅❌

プラットフォームサポート

オペレーティングシステム互換性

プラットフォームVideo Capture SDKLibVLCSharp
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 SDKLibVLCSharp
WinForms✅✅(VideoViewコントロール)
WPF✅✅(VideoViewコントロール)
.NET MAUI✅✅(VideoViewコントロール)
Avalonia UI✅✅(VideoViewコントロール)
コンソール/サービス✅✅
ASP.NET Core(バックグラウンドサービス)✅⚠️(再生指向の設計)
Blazor(サーバーサイド処理)✅⚠️(制限されたサーバーサイドキャプチャ)

価格比較

Video Capture SDK .NETの価格

年間サブスクリプションEUR 250 - 500

開発者1名、商用利用、1年間のアップデート

Lifetime·TeamEUR 750 - 1,500

1都市の1拠点にいる購入組織の全開発者、永続利用、製品の存続期間中のアップデート

All licenses include:

  • ✓ ロイヤリティフリーの配布
  • ✓ すべてのソースコード例
  • ✓ メールサポート
  • ✓ すべてのプラットフォームターゲット含む

LibVLCSharpのコスト

LibVLCSharp無料

LGPL 2.1ライセンス — 動的リンクが必要

LibVLC商用ライセンスVideoLANに問い合わせ

プロプライエタリな静的リンクまたは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)
  • ✓キャプチャ中のピクチャーインピクチャーとクロマキーコンポジティング
  • ✓領域選択とオーバーレイ付きの画面録画
  • ✓文字列ベースの設定なしの完全に型付けされた.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 SDKLibVLCSharp勝者
プロフェッショナルキャプチャアプリケーション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、内蔵エフェクトパイプライン、マルチ出力アーキテクチャ、検出機能、プロフェッショナルハードウェアサポートにより、キャプチャ品質と機能が重要なアプリケーションにとって明確な選択肢です。商用ライセンスにより、企業配布のためのクリーンなIP(知的財産)が保証されます。

LibVLCSharp

LibVLCSharpは、キャプチャデバイスも開くことができる優れたメディア再生ライブラリです。アプリケーションが主に再生を目的とし、時折シンプルな録画を行う場合、LibVLCSharpは有能で無料のオプションです。ただし、文字列ベースのsout設定、リアルタイムエフェクトの欠如、検出機能の不在は、プロフェッショナルなキャプチャアプリケーションが大幅に多くのカスタム開発を必要とすること、またはLibVLCSharpだけでは単に構築できないことを意味します。

The Reality

キャプチャ中心のアプリケーションを構築するほとんどの.NET開発者にとって、Video Capture SDKはLibVLCSharpが提供するように設計されたことのないプロフェッショナルグレードの機能を提供します。LibVLCSharpは再生ライブラリとして輝き、予算が主な制約である場合の基本的なキャプチャには合理的な選択です。アプリケーションにエフェクト、検出、マルチ出力、またはプロフェッショナルハードウェアサポートが必要な場合、Video Capture SDKが実用的な選択肢です。

Frequently Asked Questions

最高の.NETビデオキャプチャSDKは何ですか?
.NETでのプロフェッショナルなビデオキャプチャには、VisioForge Video Capture SDK .NETがリアルタイムエフェクト、マルチ出力録画、モーション/顔/バーコード検出、Blackmagic DeckLinkや産業用カメラなどのプロフェッショナルハードウェアサポートを含む最も包括的な機能セットを提供します。LibVLCSharpは基本的なキャプチャニーズには良い無料の代替手段ですが、プロフェッショナルアプリケーションが必要とする専門的なキャプチャ機能が不足しています。
C#でウェブカメラビデオをキャプチャするには?
With Video Capture SDK, you create a VideoCaptureCore instance, enumerate devices with Video_CaptureDevices() (synchronous), wrap the result in new VideoCaptureSource(devices[0]), configure output format with typed classes like MP4Output, set Mode = VideoCaptureMode.VideoCapture, and call StartAsync(). With LibVLCSharp, you open a dshow:// URL and configure recording via sout transcode string options. The SDK approach provides type safety, IntelliSense, and compile-time error checking, while LibVLCSharp uses runtime string parsing.
LibVLCSharpはC#でエフェクト付きウェブカメラキャプチャができますか?
いいえ。LibVLCSharpはキャプチャ中のリアルタイムビデオまたはオーディオエフェクトをサポートしていません。主にメディア再生ライブラリです。キャプチャ中にオーバーレイ、色調整、クロマキー、ピクチャーインピクチャーなどのエフェクトを追加するには、GPU高速化された40以上のビデオおよびオーディオエフェクトを含むVisioForge Video Capture SDKのような専用キャプチャSDKが必要です。
C# .NETで画面を録画するには?
Video Capture SDKは、フルスクリーン、領域選択、カーソルキャプチャ、フレームレート制御のオプションを備えたScreenCaptureSourceSettingsクラスを提供します。オーバーレイ、エフェクトを追加し、同時にストリーミングできます。LibVLCSharpはscreen:// URLで画面をキャプチャできますが、領域選択、オーバーレイ、キャプチャ中のエフェクトは提供しません。アノテーションとストリーミング付きのプロフェッショナルな画面録画には、Video Capture SDKが推奨されます。
Video Capture SDKはRTSP IPカメラをサポートしていますか?
はい。Video Capture SDKは、ストリーム障害時の自動再接続、設定可能なリトライ遅延、認証を備えたマネージドRTSP/ONVIF IPカメラサポートを提供します。IPカメラフィードの録画、ストリーミング、エフェクト適用を同時に行えます。LibVLCSharpは再生と基本的な録画のためにRTSP URLを開くことができますが、自動再接続、検出機能、マルチ出力機能が不足しています。
Video Capture SDKとLibVLCSharpの違いは何ですか?
Video Capture SDKは、型付きAPI、リアルタイムエフェクト、マルチ出力録画、検出(モーション、顔、バーコード)、プロフェッショナルハードウェアサポートを備えた専用設計の.NETビデオキャプチャエンジンです。LibVLCSharpはVLCメディアエンジンの.NETバインディングで、主に文字列ベースのsout設定による基本的なキャプチャ機能を備えた再生用に設計されています。SDKは商用(年間EUR 250から)で、LibVLCSharpはLGPL 2.1の下で無料です。

はじめに

LibVLCSharpはオープンソースです。Videolabsの商用ライセンス価格はvideolabs.io/store/libvlcsharp/を参照(2026-09-06確認)。価格は予告なく変更される場合があります。

Related Comparisons