Media Blocks SDK .NET
Media Blocks SDK .NET を使用して、強力なマルチメディアアプリケーションを簡単かつ柔軟に作成します。これは、視覚的なコンストラクター (カメラ → コーデック → 出力) のように複雑なビデオワークフローを構築できるモジュラーツールキットです。MP4、MKV、および AVI への録画、HLS、RTMP、および RTSP 経由のストリーミングをサポートし、色補正、インターレース解除、透かし、画面キャプチャ、オーディオ処理などの豊富なエフェクトセットを提供します。組み込みのコンピュータービジョン、QR コード認識、顔追跡、および Blackmagic および ONVIF デバイスの完全なサポートにより、あらゆるプロジェクトにプロフェッショナルグレードの機能をもたらします。SDK は WinForms、WPF、MAUI、Xamarin、および Avalonia とシームレスに連携し、高度なメディア機能をデスクトップおよびモバイルアプリに簡単に統合できます。
インストール
NuGet によるクイックインストール
パッケージマネージャーコンソールを使用して、SDK をプロジェクトに直接インストールします:
Install-Package VisioForge.DotNet.MediaBlocksまたは、Visual Studio の NuGet パッケージマネージャーで VisioForge.DotNet.MediaBlocks を検索してください。 インストールガイドを見る →
主な利点
モジュラーアーキテクチャ
ビルディングブロックのように接続してカスタムメディアパイプラインを作成する 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...
VisioForge Media Blocks SDK .Net の主な機能は次のとおりです:
コア機能
- • オーディオ/ビデオプレビュー
- • 幅広い形式へのビデオおよびオーディオキャプチャ
- • Bitmap クラス、BMP、JPEG、および PNG ファイルへのフレームキャプチャ
- • ビデオ処理とエフェクト (CPU/GPU)
- • ビデオキャプチャデバイス制御
- • ネットワークストリーミング
- • モーション検出
- • カスタムインターフェイスのサポート
- • コンピュータービジョン API
- • PIP (ピクチャーインピクチャー)
- • 画面キャプチャ/ウィンドウキャプチャ
- • 顔検出とオブジェクト追跡
- • 複数の出力画面のサポート
- • スピーカーからのオーディオキャプチャ
- • オーディオ/ビデオファイルタグの読み取りと書き込みのサポート
サポートされている入力デバイス
- • USB Web カメラおよびキャプチャデバイス (4K を含む)
- • 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 カメラ
- • アニメーション 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 暗号化機能
- • ティー (スプリッター)
価格
年間サブスクリプションまたはライフタイムライセンスから選択
通常ライセンス
- 1 年間の無料マイナーおよびメジャーアップグレード
- サブスクリプション終了後も SDK は機能し続けます
- 優先サポート
- 毎年自動更新 (いつでもキャンセル可能)
- 200 以上のすべての処理ブロックが含まれています
ライフタイムライセンス
- 無期限の無制限アップデート
- 優先サポートと修正
- 1 回限りの支払い
- 将来のすべての機能が含まれています
- 200 以上のすべての処理ブロックが含まれています
非商用利用は無料です。無料ライセンスを取得するにはお問い合わせください。
すべてのライセンスには、ロイヤリティフリーの配布権が含まれています。
システム要件
プラットフォーム間での開発と展開のための最小要件
| オペレーティングシステム |
|
| .NET Framework |
|
| ハードウェア |
|
| UI フレームワーク |
|
ドキュメントとリソース
Media Blocks SDK を使い始めるために必要なすべて
