VisioForge

Media Blocks SDK .NETC#でモジュラー型メディアパイプラインを構築

Media Blocks SDK .NET を使用して、強力なマルチメディアアプリケーションを簡単かつ柔軟に作成します。これは、視覚的なコンストラクター (カメラ → コーデック → 出力) のように複雑なビデオワークフローを構築できるモジュラーツールキットです。MP4、MKV、および AVI への録画、HLS、RTMP、および RTSP 経由のストリーミングをサポートし、色補正、インターレース解除、透かし、画面キャプチャ、オーディオ処理などの豊富なエフェクトセットを提供します。組み込みのコンピュータービジョン、QR コード認識、顔追跡、および Blackmagic および ONVIF デバイスの完全なサポートにより、あらゆるプロジェクトにプロフェッショナルグレードの機能をもたらします。SDK は WinForms、WPF、MAUI、Xamarin、Avalonia、および Unity とシームレスに連携し、高度なメディア機能をデスクトップ、モバイル、ゲームエンジンアプリに簡単に統合できます。

主な利点

モジュラーアーキテクチャ

ビルディングブロックのように接続してカスタムメディアパイプラインを作成する 200 以上の処理ブロック

クロスプラットフォーム

すべての主要な .NET UI フレームワークを使用して、Windows、macOS、Linux、Android、および iOS で動作します

ハードウェアアクセラレーション

最大のパフォーマンスを実現する NVIDIA、Intel、および AMD サポートによる GPU アクセラレーションエンコード/デコード

パイプラインの例

// Create MediaBlocks pipeline
_pipeline = new MediaBlocksPipeline();

// Add file source
var fileSourceSettings = await UniversalSourceSettings.CreateAsync("video.mp4");
var videoStreamAvailable = fileSourceSettings.GetInfo().VideoStreams.Count > 0;
var audioStreamAvailable = fileSourceSettings.GetInfo().AudioStreams.Count > 0;

var fileSource = new UniversalSourceBlock(fileSourceSettings);

// Add video renderer
if (videoStreamAvailable)
{
    var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);
    _pipeline.Connect(fileSource, videoRenderer);
}

// Add audio output
if (audioStreamAvailable)
{
    var audioOutputDevice = (await DeviceEnumerator.Shared.AudioOutputsAsync(
        AudioOutputDeviceAPI.DirectSound))[0];
    var audioOutput = new AudioRendererBlock(
        new AudioRendererSettings(audioOutputDevice));
    _pipeline.Connect(fileSource, audioOutput);
}

// Start playback
await _pipeline.StartAsync();

シンプルプレーヤー

シンプルプレーヤーパイプラインは、UniversalSourceBlock を使用してソースファイルを読み取ってデコードし、VideoRendererBlock を使用してビデオを表示し、AudioRendererBlock を使用してオーディオを再生します。

インタラクティブなパイプラインの視覚化

Loading pipeline diagram...

高度なプレーヤー

高度なプレーヤーパイプラインには、ファイルまたはストリームをデコードするための UniversalSourceBlock、ビデオおよびオーディオレンダラー、およびエフェクト処理ブロックが含まれています。

// Create MediaBlocks pipeline
_pipeline = new MediaBlocksPipeline();

// Add file source
var fileSourceSettings = await UniversalSourceSettings.CreateAsync(edFilename.Text);
var videoStreamAvailable = fileSourceSettings.GetInfo().VideoStreams.Count > 0;
var audioStreamAvailable = fileSourceSettings.GetInfo().AudioStreams.Count > 0;

var fileSource = new UniversalSourceBlock(fileSourceSettings);

// Add video renderer, text overlay and image overlay
if (videoStreamAvailable)
{
    var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);
    var textOverlay = new TextOverlayBlock(new TextOverlaySettings("Hello world!"));
    var imageOverlay = new ImageOverlayBlock(new ImageOverlaySettings("logo.png"));

    _pipeline.Connect(fileSource, textOverlay);
    _pipeline.Connect(textOverlay, imageOverlay);
    _pipeline.Connect(imageOverlay, videoRenderer);
}

// Add audio output and equalizer
if (audioStreamAvailable)
{
    var audioOutputDevice = (await DeviceEnumerator.Shared.AudioOutputsAsync(AudioOutputDeviceAPI.DirectSound))[0];
    var audioOutput = new AudioRendererBlock(new AudioRendererSettings(audioOutputDevice));

    var equalizer = new EqualizerParametricBlock();
    // set some equalizer settings

    _pipeline.Connect(fileSource, equalizer);
    _pipeline.Connect(equalizer, audioOutput);
}

// Start playback
await _pipeline.StartAsync();

エフェクト付きの高度なプレーヤーパイプライン

Loading pipeline diagram...

// Create MediaBlocksPipeline object
_pipeline = new MediaBlocksPipeline();

// Add default video and audio sources
var videoSources = (await DeviceEnumerator.Shared.VideoSourcesAsync()).ToList();
var videoSource = new SystemVideoSourceBlock(new VideoCaptureDeviceSourceSettings(
    videoSources.Find(x => x.Name.Contains("920"))));

var audioSources = (await DeviceEnumerator.Shared.AudioSourcesAsync()).ToList();
var audioSource = new SystemAudioSourceBlock(audioSources[0].CreateSourceSettings());

// Add video renderer
var videoRenderer = new VideoRendererBlock(_pipeline, videoView: VideoView1);

// Add audio renderer
var audioRenderers = (await DeviceEnumerator.Shared.AudioOutputsAsync()).ToList();
var audioRenderer = new AudioRendererBlock(new AudioRendererSettings(audioRenderers[0]));

// Connect everything
_pipeline.Connect(videoSource, videoRenderer);
_pipeline.Connect(audioSource, audioRenderer);

// Start preview
await _pipeline.StartAsync();

カメラプレビュー

カメラ/マイクのシンプルプレビューパイプラインには、デバイスソースブロックとビデオ/オーディオレンダラーブロックが含まれています。

デフォルトのデバイスが使用されます。

カメラプレビューパイプライン

Loading pipeline diagram...

RTSP プレビュー

RTSP ソースブロック (内部にデコーダーを含む)、ビデオおよびオーディオレンダラーを含む RTSP プレビューパイプライン。

// Create Media Blocks pipeline
_pipeline = new MediaBlocksPipeline();

// Create video renderer
var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);

// Add RTSP camera source
var rtsp = await RTSPSourceSettings.CreateAsync(new Uri(edURL.Text), 
    edLogin.Text, edPassword.Text, audioEnabled: cbAudioStream.Checked);
var rtspSource = new RTSPSourceBlock(rtsp);

_pipeline.Connect(rtspSource, videoRenderer);

// Add audio output (if required)
if (cbAudioStream.Checked && rtsp.IsAudioAvailable())
{
    var audioOutputDevice = (await DeviceEnumerator.Shared.AudioOutputsAsync(
        AudioOutputDeviceAPI.DirectSound))[0];
    var audioOutput = new AudioRendererBlock(new AudioRendererSettings(audioOutputDevice));
    _pipeline.Connect(rtspSource, audioOutput);
}

// Start IP camera preview
await _pipeline.StartAsync();

RTSP ストリームパイプライン

Loading pipeline diagram...

// Create the pipeline
_pipeline = new MediaBlocksPipeline();

// Add video and audio sources
var videoSources = (await DeviceEnumerator.Shared.VideoSourcesAsync()).ToList();
var videoSource = new SystemVideoSourceBlock(new VideoCaptureDeviceSourceSettings(videoSources[0]));

var audioSources = (await DeviceEnumerator.Shared.AudioSourcesAsync()).ToList();
var audioSource = new SystemAudioSourceBlock(audioSources[0].CreateSourceSettings());

// Add video renderer and specify VideoView control
var videoRenderer = new VideoRendererBlock(_pipeline, videoView: VideoView1);

// Add audio renderer
var audioRenderers = (await DeviceEnumerator.Shared.AudioOutputsAsync()).ToList();
var audioRenderer = new AudioRendererBlock(new AudioRendererSettings(audioRenderers[0]));

// Configure MP4 output
var output = new MP4OutputBlock(Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), "output.mp4"));

// Add video and audio tees
var videoTee = new TeeBlock(2, MediaBlockPadMediaType.Video);
var audioTee = new TeeBlock(2, MediaBlockPadMediaType.Audio);

// Connect everything
_pipeline.Connect(videoSource, videoTee);
_pipeline.Connect(audioSource, audioTee);

_pipeline.Connect(videoTee, videoRenderer);
_pipeline.Connect(audioTee, audioRenderer);

_pipeline.Connect(videoTee, output);
_pipeline.Connect(audioTee, output);

// Start MP4 recording
await _pipeline.StartAsync();

プレビュー付きキャプチャ

キャプチャパイプラインには、ビデオとオーディオストリームを分割するために使用される 2 つのティーブロックがあり、ビデオキャプチャとともにビデオ/オーディオプレビューが可能です。

プレビュー付きキャプチャパイプライン

Loading pipeline diagram...

AI ビデオ解析と音声認識

AI 推論、プライバシー匿名化、オープンボキャブラリー検出、視覚言語理解、セマンティック検索、音声認識を Media Blocks SDK .NET のパイプラインに直接組み込めます。

Media Blocks SDK .NET は、VisioForge.DotNet.Core.AI および VisioForge.DotNet.Core.AI.Whisper を通じて、AI 処理ブロックを C# のメディアパイプラインに直接追加します。開発者は、OCR、ナンバープレート認識、YOLO/RT-DETR/オープンボキャブラリーによる物体検出、ByteTrack による物体解析、顔認識、自動 PII 匿名化、背景除去、ビジョン言語キャプション生成、動画埋め込み/セマンティック検索、カスタム ONNX 推論を、既存のソース、レンダラー、エンコーダー、ストリーミング出力の間に挿入できます。ONNX Runtime ベースのブロックは、対応するランタイムが利用可能な場合、CPU または CUDA、DirectML、CoreML などのハードウェアプロバイダー上で実行でき、Whisper の音声テキスト変換は GGML/whisper.cpp を通じてローカルで実行され、クリーンなセグメントを得るためにオプションで Silero VAD を利用できます。AI モデルファイルはアプリケーションによって提供またはダウンロードされるため、チームはモデルの選択とライセンスを自分たちで管理できます。その結果として得られるのは、検索可能な OCR ビデオ、ANPR システム、人数カウント、トリップワイヤー解析、プライバシー準拠の匿名化、自然言語による動画検索、ライブ字幕、SRT/VTT エクスポートを、Media Blocks のパイプラインモデルから離れることなく構築するためのモジュラーな .NET AI ビデオ SDK です。

OCR とナンバープレート認識(ANPR)

PaddleOCR ベースの ONNX ブロックと構造化された検出イベントにより、ライブビデオやファイル内のテキストとナンバープレートを認識します。

物体検出と解析

YOLOX、YOLOv8、または RT-DETR モデルを実行し、ByteTrack の ID、ライン横断、ポリゴンゾーン、カウンター、オーバーレイを追加します。

顔認識

顔を検出し、人物を登録し、FaceGallery と照合して、認識した人物をビデオストリームに描画します。

背景除去

ONNX マッティングモデルを使用して、背景ぼかし、単色への置き換え、画像への置き換え、または透明な RGBA 出力を行います。

カスタム ONNX 推論

独自の ONNX モデルをビデオフレームにアタッチし、アプリケーション固有の後処理のために生のテンソル出力を受け取ります。

オフライン Whisper 字幕

Whisper でオーディオをローカルに文字起こしし、Silero VAD で発話をセグメント化し、ライブ字幕をレンダリングしたり、SRT/VTT ファイルを書き出したりします。

PII 匿名化

メールアドレスや電話番号のオプションの正規表現フィルタリングを備え、顔、ナンバープレート、画面上のテキストを自動的にぼかし、ピクセル化、または単色で塗りつぶします。

オープンボキャブラリー検出と視覚言語理解

固定のクラスリストではなく、OWLv2 または Grounding DINO による自由なテキストプロンプトから物体を検出するか、Florence-2 ビジョン言語ブロックでフレームキャプション生成、OCR、フレーズグラウンディングを行います — 実行時にプロンプトと信頼度しきい値を切り替えられます。

セマンティック動画検索

動画処理中に CLIP ベースの埋め込みインデックスを構築し、自然言語クエリで検索して一致するフレームを見つけます。

同じブロックインスタンスは、Video_Processing_AddBlock / Audio_Processing_AddBlock を通じて VideoCaptureCoreX および MediaPlayerCoreX にも直接組み込むことができます — 手動での MediaBlocksPipeline の構築は不要です。Video Capture SDK .NET と Media Player SDK .NET の各ページの AI 機能もご覧ください。

Live Video Compositor

Live Video Compositor を使って、OBS のようなライブ映像制作ソフトウェアを構築できます。Media Blocks SDK .NET 上に構築されたリアルタイムのマルチ入力・マルチ出力映像合成エンジンです。カメラ、画面キャプチャ、メディアファイル、RTSP/IPカメラフィード、NDI ソースをレイヤー入力として動的に追加・削除し、GPU アクセラレーションによるレンダリングでミキシングを行い、録画ファイルやライブ配信プラットフォームへ同時に出力します。マルチカメラ切替、ピクチャー・イン・ピクチャーレイアウト、ライブオーバーレイ、放送品質のオーディオミキシングに対応し、すべて C# コードから実行時に完全制御可能です。

動的な入出力管理

コンポジターの動作中であっても、映像・音声ソースや出力先をいつでも追加・削除できます。各入力は独立したパイプラインで動作するため、1つのソースに障害が発生しても合成全体に影響を与えることはありません。

GPU アクセラレーション・ミキシング

クロスプラットフォーム対応の GPU アクセラレーションレンダリング(OpenGL)または CPU フォールバックを使用して、複数の映像レイヤーをリアルタイムに合成します。ピクセル精度の矩形で各ソースを配置し、Z-order の重ね順を制御し、レターボックス、ストレッチ、フィルのリサイズポリシーから選択できます。

録画 + 配信 + プレビュー

複数の出力先に同時出力が可能です。MP4 や WebM への録画、YouTube や Facebook へのライブ配信、Decklink ハードウェアへの映像送出、画面上のプレビュー表示を、単一のコンポジターインスタンスでリアルタイムに実行できます。

ライブオーバーレイ&エフェクト

テキストオーバーレイ、画像ウォーターマーク、合成後の映像エフェクトを動的に適用でき、パイプラインの再構築は不要です。リアルタイムのオーディオ VU メーターにより、ライブ制作中にプロフェッショナルグレードのレベルモニタリングが可能です。

C# による Live Video Compositor のセットアップ

C#
// Create the Live Video Compositor (cross-platform, GPU-accelerated)
var settings = new LiveVideoCompositorSettings(1920, 1080, new VideoFrameRate(25));
var compositor = new LiveVideoCompositor(settings);

// Add a camera source (full-screen background layer)
var cameraInput = new LVCVideoAudioInput(
    "Camera", compositor,
    new SystemVideoSourceBlock(cameraSettings),
    videoInfo, audioInfo, new Rect(0, 0, 1920, 1080),
    autostart: true);
await compositor.Input_AddAsync(cameraInput);

// Start compositing — sources and outputs can be added/removed at any time
await compositor.StartAsync();

// Dynamically add screen capture as picture-in-picture overlay
var screenInput = new LVCVideoInput(
    "Screen", compositor,
    new ScreenSourceBlock(screenSettings), screenInfo,
    new Rect(1400, 50, 500, 300), autostart: true);
screenInput.ZOrder = 1;
await compositor.Input_AddAsync(screenInput);

// Dynamically add MP4 recording output while compositing is running
var mp4Output = new LVCVideoAudioOutput(
    "Recording", compositor,
    new MP4OutputBlock(mp4Settings), autostart: true);
await compositor.Output_AddAsync(mp4Output);

// Dynamically remove the screen overlay
await compositor.Input_RemoveAsync(screenInput.ID);

// Dynamically remove the recording output
await compositor.Output_RemoveAsync(mp4Output.ID);

Live Video Compositor は、Media Blocks SDK .NET がサポートするすべての入力ソースと出力フォーマットに対応しています。カメラ、画面キャプチャ、メディアファイル、RTSP/IPカメラ、NDI、Decklink、およびすべての録画・配信出力を含みます。

Unity サポート

完全な Media Blocks SDK .NET を、すぐにインポートできる単一の .unitypackage で Unity 6 に取り込めます。キャプチャ、デコードとエンコード、エフェクト、ミキシング、録画、ストリーミングまで、あらゆるパイプラインを構築し、その結果を Unity の RawImage にレンダリングできます。本パッケージには、メディアファイルプレーヤーとライブ RTSP / IP カメラビューアーの 2 つのサンプルシーンが出発点として付属していますが、構築できる内容はそれに限られません。1 つの累積パッケージで Windows、Android、macOS、iOS に対応します。一度インポートし、Build Target を切り替えてビルドするだけです。

Unity の中で完全な SDK

これは再生専用のラッパーではありません。Unity スクリプトから Media Blocks SDK .NET の API 全体を利用できます。デバイスキャプチャ、複数のソースタイプ、デコーダーとエンコーダー、オーディオおよびビデオエフェクト、ミキシングと合成、ファイルへの録画、ネットワークストリーミング。アプリに必要なあらゆるパイプラインを構築できます。

1 つの累積パッケージ

Windows、Android、macOS、iOS のネイティブランタイムが単一の .unitypackage に同梱されています。Build Target を切り替えると、Unity が適切なネイティブランタイムを自動的に選択します。

すぐに使えるサンプルシーン

付属の SimplePlayer(メディアファイル)と RTSPViewer(ライブ IP カメラ)シーンは、再利用可能な VisioForgeVideoView コンポーネントを通じてパイプラインを RawImage にレンダリングし、Stretch、Letterbox、Crop のアスペクトモードに対応します。数分で実行できます。

ハードウェアアクセラレーションされたモバイル

モバイル再生にはプラットフォームのハードウェアコーデック、Android では MediaCodec、iOS では VideoToolbox を使用します。フレームはゼロアロケーションのダブルバッファ経路で GPU テクスチャにアップロードされ、フレームごとのガベージを生成せずに滑らかなライブ映像を実現します。

シーン内のどこにでもレンダリング

各フレームは Unity の Texture2D にアップロードされるため、映像は UI に限定されません。RawImage に表示したり、任意の 3D オブジェクト(スクリーン、ビルボード、曲面など)のマテリアルにマッピングしたりと、シーン内のどこにでも表示できます。

Unity からキャプチャ・録画・ストリーミング

再生にとどまりません。デバイスのカメラ、マイク、IP / RTSP ストリームを取り込み、MP4、MKV、WebM に録画し、RTMP、SRT、HLS、または内蔵 RTSP サーバー経由で配信できます。すべて Unity ビルドの内部から、デスクトップとモバイルの両方で実行可能です。

対応プラットフォーム:WindowsAndroidmacOSiOS
適した用途:VR / AR 映像デジタルサイネージIP カメラのダッシュボードとビデオウォールシミュレーションとトレーニングゲーム内映像ライブ配信と録画

Media Blocks パイプラインを Unity の RawImage にレンダリングする

C#
// In your MonoBehaviour (e.g. Start()) — the bundled native runtime
// is configured automatically before the first scene loads.
VisioForgeEnvironment.InitializeSdk();

// Build any Media Blocks pipeline. A file source is shown here;
// swap in RTSPSourceBlock, a camera, screen capture, etc.
_pipeline = new MediaBlocksPipeline();

// ignoreMediaInfoReader skips the gst-discoverer pre-probe (required under Unity).
var settings = await UniversalSourceSettings.CreateAsync(
    filePath, ignoreMediaInfoReader: true);
var source = new UniversalSourceBlock(settings);

// RGBA frames are delivered to a BufferSinkBlock...
var videoSink = new BufferSinkBlock(VideoFormatX.RGBA);
_pipeline.Connect(source.VideoOutput, videoSink.Input);
_pipeline.Connect(source.AudioOutput, new AudioRendererBlock().Input);

// ...and uploaded into a Unity Texture2D by VisioForgeVideoView,
// which handles the aspect mode and vertical flip for you.
videoSink.OnVideoFrameBuffer += _videoView.OnFrameBuffer;

await _pipeline.StartAsync();

Unity 6 (6000.x) で検証済み。.NET Standard 2.1 の API 互換性レベルが必要です。

Unity ドキュメントを見る →

ブロック・コーデック・デバイスの完全リファレンス

一般機能

  • オーディオ/ビデオプレビュー
  • 幅広い形式へのビデオおよびオーディオキャプチャ
  • Bitmap クラス、BMP、JPEG、および PNG ファイルへのフレームキャプチャ
  • ビデオキャプチャデバイス制御
  • モーション検出
  • カスタムインターフェイスのサポート
  • PIP (ピクチャーインピクチャー)
  • 複数の出力画面のサポート
  • スピーカーからのオーディオキャプチャ
  • オーディオ/ビデオファイルタグの読み取りと書き込みのサポート

サポートされている入力デバイス

  • USB Web カメラおよびキャプチャデバイス (4K を含む)
  • USB OTG 経由の Android USB (UVC) カメラ
  • JPEG/MJPEG、MPEG-4、および H.264 HTTP/RTSP/RTMP IP カメラ/サーバー
  • DV および HDV MPEG-2 ビデオカメラ
  • PCI キャプチャカード
  • TV チューナー (内部 MPEG エンコーダーあり/なし)
  • IP カメラでサポートされている HD 形式
  • PTZ サポート付き ONVIF IP カメラ
  • Blackmagic Decklink デバイス
  • オーディオキャプチャデバイスおよびサウンドカード
  • ASIO デバイス

プロフェッショナルハードウェア

  • Blackmagic Decklink 入出力サポート
  • FLIR/Teledyne カメラ (USB3Vision/GigE)
  • Basler カメラ (USB3Vision/GigE)
  • DV および HDV MPEG-2 ビデオカメラ
  • PCI キャプチャカード
  • TV チューナー (MPEG エンコーダーあり/なし)
  • PTZ サポート付き ONVIF IP カメラ
  • ASIO デバイス

ソース

  • Allied Vision カメラ
  • Android USB (UVC) カメラ
  • アニメーション GIF
  • Basler カメラ (USB3Vision/GigE)
  • CDG カラオケ
  • フォールバック切り替え
  • GenICam (産業用カメラ)
  • HTTP
  • HTTP MJPEG
  • 画像シーケンス
  • ローカルファイル
  • メモリバッファ
  • NDI
  • PulseAudio
  • Raspberry Pi カメラ
  • RTMP
  • RTSP
  • RTSP RAW
  • 画面キャプチャ
  • SRT
  • システムオーディオ
  • システムビデオ
  • テスト信号
  • UDP/RTP
  • URI (ファイル/ネットワーク)

オーディオ処理

  • 増幅
  • バランス
  • サンプル形式コンバーター
  • ロードノーマライザー
  • ミキサー
  • リサンプラー
  • サンプルグラバー
  • タイムスタンプ補正
  • チェビシェフバンドパスリジェクト
  • チェビシェフリミット
  • コンプレッサー/エキスパンダー
  • Csound フィルター
  • EBU R128 レベル
  • エコー
  • イコライザー (10 バンド)
  • イコライザー (パラメトリック)
  • HRTF レンダリング
  • カラオケ
  • 無音除去
  • 残響
  • スケール/テンポ
  • ボリューム
  • VU メーター
  • ワイドステレオ

バーコードリーダー

  • QR コード
  • UPC-A、UPC-E
  • EAN-8、EAN-13
  • Code 39
  • Code 93
  • Code 128
  • Codabar
  • ITF
  • RSS-14
  • Data Matrix
  • Aztec
  • PDF-417

オーディオエンコーダー

  • AAC
  • ADPCM
  • ALAW
  • AptX
  • FLAC
  • MP2
  • MP3
  • OPUS
  • Speex
  • Vorbis
  • WAV
  • Wavpack
  • WMA(Windows Media Audio)

ビデオエンコーダー (CPU/GPU)

  • AV1
  • DV
  • GIF
  • H.264
  • H.265/HEVC
  • MJPEG
  • MPEG-2
  • MPEG-4
  • PNG
  • Theora
  • VP8/VP9 (VPX)
  • WMV(Windows Media Video)
  • NVENC、AMD、Intel ハードウェアエンコーダーサポート
  • iOS/macOS/Android ハードウェアエンコーダーサポート

ビデオ処理

  • エージング
  • アルファ結合
  • 自動インターレース解除
  • Bayer から RGB
  • クロマキー
  • コーデックアルファデマルチプレクサ
  • カラーエフェクト
  • インターレース解除
  • ダイス
  • エッジ検出
  • 魚眼
  • 反転/回転
  • ガンマ
  • ガウスぼかし
  • グレースケール
  • 画像オーバーレイ
  • 画像オーバーレイ Cairo
  • インターレース
  • キーフレーム検出器
  • LUT プロセッサ
  • ミラー
  • 移動ぼかし
  • 移動エコー
  • 移動ズームエコー
  • 光学アニメーション B&W
  • オーバーレイマネージャー
  • 遠近法
  • ピンチ
  • 疑似 3D
  • QR コードオーバーレイ
  • サイズ変更
  • サンプルグラバー
  • ソーベルエッジ
  • 球体
  • 正方形
  • ストレッチ
  • テキストオーバーレイ
  • トンネル
  • 回転
  • ビデオバランス
  • ピクセル形式コンバーター
  • ビデオミキサー
  • 歪んだミラー
  • 水紋
  • ズームボックス

ファイルシンク

  • ASF
  • AVI
  • DASH
  • HLS
  • HTTP MJPEG ライブ
  • MKV (Matroska)
  • MOV (QuickTime)
  • MP4
  • MPEG-PS
  • MPEG-TS
  • MXF
  • OGG
  • WAV
  • WebM

ネットワークストリーミング

  • Facebook Live
  • HLS
  • NDI
  • RTMP
  • RTSP
  • Shoutcast
  • SRT
  • YouTube Live

Blackmagic Decklink

  • オーディオシンク
  • オーディオソース
  • ビデオシンク
  • ビデオソース

オーディオビジュアライザー

  • Bumpscope
  • Corona
  • Infinite
  • Jakdaw
  • Jess
  • LV Analyzer
  • LV Scope
  • Oinksie
  • Spacescope
  • Spectrascope
  • Synaescope
  • Wavescope

ビデオデコーダー

  • AV1 デコーダー
  • H.264 デコーダー
  • HEVC デコーダー
  • JPEG デコーダー
  • VP8 デコーダー
  • VP9 デコーダー
  • NVIDIA、Intel、および AMD アクセラレーションデコーダー
  • Android ハードウェアデコーダー
  • iOS ハードウェアデコーダー

特別ブロック

  • バーコード検出器
  • データプロセッサ
  • データサンプルグラバー
  • デバッグタイムスタンプ
  • 復号化機能
  • 暗号化機能
  • マルチキュー
  • Null レンダラー
  • キュー
  • SRTP 復号化機能
  • SRTP 暗号化機能
  • ティー (スプリッター)

インストール

NuGet によるクイックインストール

パッケージマネージャーコンソールを使用して、SDK をプロジェクトに直接インストールします:

Install-Package VisioForge.DotNet.MediaBlocks

または、Visual Studio の NuGet パッケージマネージャーで VisioForge.DotNet.MediaBlocks を検索してください。 インストールガイドを見る →

価格

年間サブスクリプションまたはライフタイムライセンスから選択

通常ライセンス

€500
  • 1 年間の無料マイナーおよびメジャーアップグレード
  • サブスクリプション終了後も SDK は機能し続けます
  • 優先サポート
  • 毎年自動更新 (いつでもキャンセル可能)
  • 200 以上のすべての処理ブロックが含まれています
ベストバリュー

ライフタイムライセンス

€1,500/ 1 回限り
ライフタイムライセンスを購入
  • 無期限の無制限アップデート
  • 優先サポートと修正
  • 1 回限りの支払い
  • 将来のすべての機能が含まれています
  • 200 以上のすべての処理ブロックが含まれています

非商用利用は無料です。無料ライセンスを取得するにはお問い合わせください。

すべてのライセンスには、ロイヤリティフリーの配布権が含まれています。

ソースコードライセンス

このSDKのソースコードライセンスはリクエストに応じてご利用いただけます。価格やライセンス条件については、営業チームにお問い合わせください。

ソースコードライセンスを申請

💰 バンドルパッケージでさらに節約

この製品は、コスト効率の高いバンドルパッケージに含まれています。より多くの製品を入手して最大71%節約しましょう!

.NET Bundle Professional

年間:€700.00
生涯:€1800.00

最大71%節約

含まれるもの:

  • 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

年間:€1000.00
生涯:€2500.00

最大70%節約

含まれるもの:

  • 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

システム要件

プラットフォーム間での開発と展開のための最小要件

オペレーティングシステム
  • Windows 10 / 11 (32 ビットおよび 64 ビット)
  • Windows 8/8.1、Windows 7 SP1
  • Windows Server 2016 以降
  • macOS 12 以降
  • Ubuntu 22.04 / 24.04
  • Android 8 以降
  • iOS 12 以降
.NET Framework
  • .NET Framework 4.6.1 以降
  • .NET Core 3.1
  • .NET 5/6/7/8/9/10
ハードウェア
  • 最小 2 GB RAM (4 GB 推奨)
  • Intel Core i5 または AMD 同等のプロセッサ
  • GPU アクセラレーションサポートはオプション (NVIDIA/Intel/AMD)
UI フレームワーク
  • WinForms
  • WPF
  • WinUI 3 for Desktop
  • Avalonia
  • GTK#
  • MAUI
  • Xamarin.Android/iOS/Mac
  • Unity

ドキュメントとリソース

Media Blocks SDK を使い始めるために必要なすべて

AIコーディングエージェントで開発する

Claude Code、Cursor、GitHub Copilot、Gemini CLI、OpenAI Codex などの AI エージェントと開発していますか?VisioForge は Media Blocks SDK .NET 向けに機械可読なインターフェースを公開しているので、エージェントは最初から正しく統合できます。適切な NuGet パッケージ、ライセンス登録、プロジェクト設定、そして本来なら推測するしかないクロスプラットフォームのデプロイ詳細まで。

ライブ API クエリとクラス検索
プラットフォーム別の統合プレイブック
クロスプラットフォームのデプロイレシピ
ドキュメント全体を llms.txt として

MCP サーバーに接続

MCP

VisioForge の MCP サーバーをエージェントに追加すると、コンテキストに応じたヘルプが得られます。API の検索、クラスとメンバーの参照、動作するコード例の取得、デプロイガイドの取得をエディター内で直接行えます。

Claude Code

claude mcp add --transport http visioforge-sdk https://mcp.visioforge.com/mcp

VS Code (.vscode/mcp.json)

{ "servers": { "visioforge-sdk": { "type": "http", "url": "https://mcp.visioforge.com/mcp" } } }
MCP サーバー利用ガイド

Agent Skill を読み込む

Agent Skills

SDK とプラットフォームの組み合わせごとにダウンロード可能なスキルを公開しています。Media Blocks 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
スキル一覧とツール別セットアップを見る

ドキュメント全体をエージェントに渡したいですか?プレーンな Markdown としても利用できます: /llms.txt · /llms-full.txt

始める準備はできましたか?

無料トライアルをダウンロードして、今すぐメディアパイプラインの構築を開始してください

よくある質問

Media Blocks SDKとは何ですか?他のVisioForge SDKとの違いは?

Media Blocks SDKは、個々の処理ブロック(ソース、エンコーダー、エフェクト、出力)をビルディングブロックのように接続するモジュラーパイプラインアーキテクチャを採用しています。既製のワークフローを提供するVideo CaptureやMedia Player SDKとは異なり、Media Blocksはメディアパイプラインのすべての段階を完全に制御でき、カスタムや複雑なシナリオに最適です。

C#でメディアパイプラインを構築するにはどうすればよいですか?

MediaBlocksPipelineインスタンスを作成し、ソースブロック(ファイル、カメラ、RTSP、画面キャプチャ)を追加し、処理ブロック(エンコーダー、エフェクト、オーバーレイ)を接続し、出力ブロック(ファイル出力、レンダラー、ネットワークストリーム)をアタッチします。StartAsync()を呼び出して実行します。SDKがスレッド管理、同期、ハードウェアアクセラレーションを自動的に処理します。

Media Blocks SDKはmacOS、Linux、モバイルプラットフォームで動作しますか?

はい。Media Blocks SDKはWindows、macOS 12以降、Ubuntu 22.04/24.04、Android 8以降、iOS 12以降に対応しています。WinForms、WPF、MAUI、Uno Platform、Avalonia、Xamarinで動作します。同じパイプラインコードがすべてのプラットフォームで実行され、プラットフォーム固有のレンダリングとハードウェアアクセラレーションが適用されます。

RTMP、RTSP、HLSでビデオをストリーミングできますか?

はい。SDKにはRTMP(YouTube Live、Facebook Live)、RTSPサーバー、HLS、SRT、NDI、Shoutcast用の専用ストリーミング出力ブロックが含まれています。Teeブロックを使用してパイプラインを複数の出力に分割することで、ストリーミングとローカル録画およびプレビューを組み合わせることができます。

GPU高速化によるエンコードとデコードに対応していますか?

はい。Media Blocks SDKはNVIDIA NVENC、Intel Quick Sync、AMD AMFによるハードウェアアクセラレーションエンコーディング、およびハードウェアデコーディングに対応しています。モバイルプラットフォームでは、iOSおよびAndroidのハードウェアコーデックが自動的に使用されます。これにより、最小限のCPU使用率でリアルタイム4K処理が可能になります。

産業用カメラ(GigE Vision、USB3 Vision)やBlackmagic Decklinkを使用できますか?

はい。SDKにはGigE VisionおよびUSB3 Visionを介したGenICam対応産業用カメラ(Basler、Allied Vision、FLIR/Teledyne)用のソースブロックが含まれています。Blackmagic Decklinkデバイスは、プロフェッショナルなビデオキャプチャと出力用の専用ソースブロックとシンクブロックでサポートされています。

Live Video Compositor とは何ですか?手動でパイプラインを構築する場合とどう違いますか?

Live Video Compositor は、Media Blocks SDK 上に構築されたハイレベルなリアルタイム映像合成エンジンです。個々のブロックを使ってカスタムミキシングパイプラインを手動で組み立てることも可能ですが、コンポジターは OBS のようなアプリケーションに必要な完全なアーキテクチャをすぐに利用できる形で提供します。ブリッジベースの入力分離、GPU アクセラレーションによる合成、実行時の動的なソース・出力管理、Z-order レイヤー制御、ライブテキスト・画像オーバーレイ、合成後のエフェクト、オーディオ VU メーターなどが含まれます。C# と .NET でマルチカメラ切替システム、ライブ配信ソフトウェア、放送制作ツールを構築するのに最適です。

Media Blocks SDK を Unity で使用できますか?

はい。Media Blocks SDK .NET は、Windows、Android、macOS、iOS を 1 回のインポートで対象とする、Unity 6 向けの単一のクロスプラットフォーム .unitypackage を提供します。キャプチャ、ソース、デコーダーとエンコーダー、エフェクト、ミキシング、録画、ストリーミングまで完全な SDK を利用でき、あらゆるパイプラインを Unity の RawImage にレンダリングできます。2 つのサンプルシーン(メディアファイルプレーヤーとライブ RTSP / IP カメラビューアー)が出発点として付属しています。セットアップとプラットフォーム別ビルドガイドについては Unity ドキュメントを参照してください。

Unity 標準の Video Player とはどう違いますか?

Unity の Video Player はバンドルされたクリップの再生には適していますが、RTSP / IP カメラ入力に対応しておらず、コーデックも限られ、キャプチャや配信の機能はありません。Media Blocks SDK は、ライブ RTSP および IP カメラ再生、はるかに幅広いフォーマットとコーデック(H.264、H.265、AV1、VP8/VP9、ProRes、MJPEG など)、デバイスキャプチャ、録画、外部への配信を追加します。これらはすべて、Windows、Android、macOS、iOS で同じ挙動を示す一貫した 1 つのパイプラインを通じて提供されます。

Unity アプリから映像を録画したり配信したりできますか?

はい。Unity ビルドの内部から、MP4、MKV、WebM に録画し、RTMP、SRT、HLS、または内蔵 RTSP サーバー経由で配信できます。モバイルではハードウェアアクセラレーションされた H.264 / H.265 エンコーダーを使用します。ソース、オーバーレイ、ビデオミキサーを組み合わせることで、録画・配信する内容を正確に構成できます。デスクトップとモバイルの両方で利用可能です。

C# で AI ビデオ解析パイプラインを構築できますか?

はい。Media Blocks SDK .NET には、OCR、ANPR、物体検出、物体解析、顔認識、背景除去、カスタム ONNX 推論のための VisioForge.DotNet.Core.AI ブロックが含まれています。これらのブロックは、カメラ、RTSP ストリーム、レンダラー、エンコーダー、ファイル出力、ストリーミング出力と同じ MediaBlocksPipeline 内で接続します。

Whisper の音声テキスト変換はオフラインで動作しますか?

はい。VisioForge.DotNet.Core.AI.Whisper パッケージは、GGML/whisper.cpp バックエンドを通じて Whisper をローカルで実行し、発話のセグメント化のためにオプションで Silero VAD を利用できます。オーディオをクラウドサービスに送信することなく、ライブ字幕、認識された発話イベント、そしてサイドカーの SRT または VTT 字幕ファイルを生成できます。

カスタム ONNX モデルを使用できますか?

はい。OnnxInferenceBlock を使用すると、カスタムの ONNX Runtime モデルをビデオフレームに対して実行し、独自のデコーダーや後処理コードのために生のテンソル出力を受け取ることができます。一般的な検出器ファミリーについては、YOLOObjectDetectorBlock がすでに YOLOX、YOLOv8、RT-DETR の前処理、デコード、座標マッピング、オーバーレイを処理します。

これらの AI ブロックを、手動のパイプラインの代わりに VideoCaptureCoreX や MediaPlayerCoreX で使用できますか?

はい。すべての AI ブロックは、VideoCaptureCoreX および MediaPlayerCoreX が使用する処理ブロックインターフェイスも実装しているため、StartAsync(キャプチャ)や OpenAsync/PlayAsync(再生)を呼び出す前に、同じブロックインスタンスを Video_Processing_AddBlock または Audio_Processing_AddBlock に登録するだけで利用できます — 手動での MediaBlocksPipeline の構築は不要です。