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作業を自動的にバイパスし、処理が不要な場合のオーバーヘッドをゼロにします。
