VisioForge
オープンソース · LGPL v2

GStreamer Metal プラグイン

Appleプラットフォーム上のGStreamer向けGPUアクセラレーションビデオ処理。7つのMetalベースエレメントが、CPU依存の操作をゼロコピーのシングルパスGPU処理に置き換えます。

GStreamer Metalとは?

GStreamer Metal(gst-vf-metal)は、macOSおよびiOS向けの一般的なCPU依存ビデオエレメントのMetalベース実装を提供するプロフェッショナルグレードのGStreamerプラグインです。AppleのMetalフレームワークとコンピュートシェーダーにより、最小限のCPUオーバーヘッドでリアルタイムビデオ処理を実現し、大幅なパフォーマンス向上を提供します。

ゼロコピーアーキテクチャ

CVMetalTextureCacheが冗長なCPU-GPUコピーを排除。エレメントはアイデンティティ/デフォルト値で構成された場合、自動的にGPU作業をスキップします。

シングルパスGPU処理

すべてのフィルターエフェクト(明るさ、コントラスト、色相、クロマキー、LUTなど)が1回のGPUディスパッチで適用 — エフェクト間の中間フレームバッファなし。

ミックスフォーマット合成

コンポジターは異種入力フォーマット(例:BGRA + NV12の同時使用)を自動フォーマット変換付きで受け入れます。

6つのピクセルフォーマット

エレメントスイート全体でBGRA、RGBA、NV12、I420、UYVY、YUY2ピクセルフォーマットをサポート。

GPUアクセラレーションエレメント

🎬

vfmetalcompositor

マルチ入力ビデオミキシングと合成

  • パッドごとの位置、スケーリング、アルファ、Zオーダー
  • ブレンドモード:source、over、add
  • ミックスフォーマット入力(BGRA + NV12の同時使用)
  • アスペクト比保持付きサイジングポリシー
🖥️

vfmetalvideosink

ハードウェアアクセラレーションビデオレンダラーとディスプレイ

  • GstVideoOverlayおよびGstNavigationサポート
  • アスペクト比保持付き自動ウィンドウ作成
  • マウス/キーボードイベントフォワーディング
  • BGRA、RGBA、NV12、I420フォーマット
🎨

vfmetalvideofilter

単一エレメントに15のGPUアクセラレーションビジュアルエフェクト

  • カラー:明るさ、コントラスト、彩度、色相、ガンマ
  • エフェクト:シャープネス/ブラー、セピア、反転、ノイズ、ビネット
  • クロマキー(グリーンスクリーン)トレランス制御付き
  • 3D LUTカラーグレーディング(.cubeおよび.pngフォーマット)
🔄

vfmetalconvertscale

フォーマット変換とスケーリングの統合

  • 全6フォーマットペアをサポート(例:NV12→BGRA、UYVY→I420)
  • バイリニアおよびニアレストネイバー補間
  • カスタムボーダーカラー付きレターボックス
  • videoconvertとvideoscaleの両方を置換

vfmetaltransform

幾何学的変換

  • 8つの回転・反転メソッド
  • エッジごとのクロッピング
  • 変換不要時のアイデンティティパススルー
  • BGRA、RGBA、NV12、I420フォーマット
📺

vfmetaldeinterlace

GPUアクセラレーションインターレース除去

  • Bob、weave、linear、greedy-Hアルゴリズム
  • モーションアダプティブデインターレース(greedy-H)
  • 自動/手動フィールドオーダー検出
  • BGRA、RGBA、NV12、I420フォーマット
🖼️

vfmetaloverlay

画像合成オーバーレイ

  • PNGおよびJPEGオーバーレイサポート
  • 絶対および相対ポジショニング
  • アルファブレンディング付きカスタムサイジング
  • BGRA、RGBA、NV12、I420フォーマット

15のビデオエフェクト

すべてのエフェクトは単一のGPUパスで適用され、GstControllerを介してアニメーション可能:

明るさ調整(-1〜1)

コントラスト制御(0〜2)

色彩度(0〜2)

色相回転(-1〜1)

ガンマ補正(0.01〜10)

シャープネスとブラー(-1〜1)

セピアトーンエフェクト(0〜1)

色反転

ノイズ/グレインオーバーレイ(0〜1)

ビネット暗化(0〜1)

クロマキー(グリーンスクリーン除去)

クロマキーエッジトレランス

クロマキーエッジスムーズネス

.cubeファイルによる3D LUTグレーディング(DaVinci Resolve/Adobe)

.pngストリップファイルによる3D LUTグレーディング

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

macOS

13.0+(Ventura)

ダイナミックライブラリ(gstvfmetal.dylib)

iOS

14.0+

スタティックライブラリ(libgstvfmetal.a)

よくある質問

GStreamer Metalとは何ですか?

GStreamer Metalは、macOSおよびiOS向けのGPUアクセラレーションビデオ処理エレメントを提供するオープンソースのGStreamerプラグインです。AppleのMetalフレームワークとコンピュートシェーダーを使用して、CPU依存のビデオ操作を置き換え、合成、色補正、フォーマット変換、デインターレースなどのタスクで大幅に優れたパフォーマンスを提供します。

どのプラットフォームがサポートされていますか?

GStreamer MetalはmacOS 13.0(Ventura)以降およびiOS 14.0以降をサポートしています。macOSではダイナミックライブラリ(gstvfmetal.dylib)としてビルドされ、iOSでは登録ヘッダー付きのスタティックライブラリ(libgstvfmetal.a)としてビルドされます。

どのピクセルフォーマットがサポートされていますか?

このプラグインは6つのピクセルフォーマットをサポートしています:BGRA、RGBA、NV12、I420、UYVY、YUY2。ほとんどのエレメントはBGRA、RGBA、NV12、I420をサポートし、vfmetalconvertscaleは最大限の変換柔軟性のために6つすべてのフォーマットをサポートします。

プラグインのインストール方法は?

GitHubリポジトリをクローンし、macOS用の付属ビルドスクリプト(./build.sh)を実行します。iOS用にはCMakeベースのクロスコンパイルセットアップを使用します。生成されたライブラリはGStreamerプラグインパスに配置することで自動検出されます。

無料ですか?ライセンスは?

はい、GStreamer Metalは完全に無料でオープンソースであり、GNU Library General Public License v2(LGPL v2)の下でリリースされています。ライセンス料なしで、オープンソースおよび商用アプリケーションの両方で使用できます。

どのGStreamerエレメントが含まれていますか?

このプラグインは7つのGPUアクセラレーションエレメントを提供します:vfmetalcompositor(ビデオミキシング)、vfmetalvideosink(ディスプレイ)、vfmetalvideofilter(15のビジュアルエフェクト)、vfmetalconvertscale(フォーマット変換とスケーリング)、vfmetaltransform(回転/反転/クロッピング)、vfmetaldeinterlace(インターレース除去)、vfmetaloverlay(画像合成)。

iOSアプリで使用できますか?

はい。iOS用では、プラグインはスタティック登録用のgstvfmetal_static.hヘッダー付きスタティックライブラリ(libgstvfmetal.a)としてビルドされます。GStreamer iOS SDKと統合し、iOSで一般的に使用されるビデオフォーマットをサポートします。

GPU処理はCPUベースのエレメントと比較してどうですか?

GPUアクセラレーション処理は、CPUベースのGStreamerエレメントと比較して大幅なパフォーマンス向上を提供します。ゼロコピーアーキテクチャとシングルパス処理により、データ転送とフレームバッファリングが最小化されます。エレメントはアイデンティティ値でGPU作業を自動的にバイパスし、処理が不要な場合のオーバーヘッドをゼロにします。

GStreamer Metalを始めよう

GPU搭載GStreamerエレメントで、Appleプラットフォーム上のビデオ処理パイプラインを加速しましょう。