VisioForge
Open Source · LGPL v2

GStreamer Metal Plugin

GPU-beschleunigte Videoverarbeitung für GStreamer auf Apple-Plattformen. Sieben Metal-basierte Elemente ersetzen CPU-gebundene Operationen durch Zero-Copy-GPU-Verarbeitung in einem Durchgang.

Was ist GStreamer Metal?

GStreamer Metal (gst-vf-metal) ist ein professionelles GStreamer-Plugin, das Metal-basierte Implementierungen gängiger CPU-gebundener Video-Elemente für macOS und iOS bereitstellt. Es liefert erhebliche Leistungsverbesserungen durch Apples Metal-Framework mit Compute-Shadern und ermöglicht Echtzeit-Videoverarbeitung mit minimalem CPU-Overhead.

Zero-Copy-Architektur

CVMetalTextureCache eliminiert redundante CPU-GPU-Kopien. Elemente überspringen automatisch GPU-Arbeit, wenn sie auf Identitäts-/Standardwerte konfiguriert sind.

Single-Pass-GPU-Verarbeitung

Alle Filtereffekte (Helligkeit, Kontrast, Farbton, Chroma Key, LUT usw.) werden in einem GPU-Dispatch angewendet — keine Zwischenpuffer zwischen Effekten.

Mixed-Format-Compositing

Der Compositor akzeptiert heterogene Eingangsformate (z.B. BGRA + NV12 gleichzeitig) mit automatischer Formatkonvertierung.

6 Pixelformate

Unterstützt BGRA, RGBA, NV12, I420, UYVY und YUY2 Pixelformate in der gesamten Element-Suite.

GPU-beschleunigte Elemente

🎬

vfmetalcompositor

Multi-Input-Videomischung und -Compositing

  • Positionierung, Skalierung, Alpha und Z-Reihenfolge pro Pad
  • Mischmodi: Source, Over, Add
  • Gemischte Formatannahme (BGRA + NV12 gleichzeitig)
  • Größenrichtlinien mit Seitenverhältniserhaltung
🖥️

vfmetalvideosink

Hardware-beschleunigter Video-Renderer und -Display

  • GstVideoOverlay- und GstNavigation-Unterstützung
  • Automatische Fenstererstellung mit Seitenverhältniserhaltung
  • Maus-/Tastatur-Ereignisweiterleitung
  • BGRA-, RGBA-, NV12- und I420-Formate
🎨

vfmetalvideofilter

15 GPU-beschleunigte visuelle Effekte in einem Element

  • Farbe: Helligkeit, Kontrast, Sättigung, Farbton, Gamma
  • Effekte: Schärfe/Weichzeichner, Sepia, Invertierung, Rauschen, Vignette
  • Chroma Key (Greenscreen) mit Toleranzsteuerung
  • 3D-LUT-Farbkorrektur (.cube- und .png-Formate)
🔄

vfmetalconvertscale

Formatkonvertierung und Skalierung kombiniert

  • Alle 6 Formatpaare unterstützt (z.B. NV12→BGRA, UYVY→I420)
  • Bilineare und Nearest-Neighbor-Interpolation
  • Letterboxing mit benutzerdefinierten Randfarben
  • Ersetzt sowohl videoconvert als auch videoscale

vfmetaltransform

Geometrische Transformationen

  • 8 Rotations- und Spiegelungsmethoden
  • Zuschnitt pro Kante
  • Identitäts-Durchleitung ohne Transformation
  • BGRA-, RGBA-, NV12- und I420-Formate
📺

vfmetaldeinterlace

GPU-beschleunigte Interlace-Entfernung

  • Bob-, Weave-, Linear- und Greedy-H-Algorithmen
  • Bewegungsadaptives Deinterlacing (Greedy-H)
  • Automatische/manuelle Feldreihenfolge-Erkennung
  • BGRA-, RGBA-, NV12- und I420-Formate
🖼️

vfmetaloverlay

Bild-Compositing-Overlay

  • PNG- und JPEG-Overlay-Unterstützung
  • Absolute und relative Positionierung
  • Benutzerdefinierte Größe mit Alpha-Blending
  • BGRA-, RGBA-, NV12- und I420-Formate

15 Videoeffekte

Alle Effekte werden in einem einzigen GPU-Durchgang angewendet und können über GstController animiert werden:

Helligkeitsanpassung (-1 bis 1)

Kontraststeuerung (0 bis 2)

Farbsättigung (0 bis 2)

Farbtonrotation (-1 bis 1)

Gammakorrektur (0,01 bis 10)

Schärfe und Weichzeichner (-1 bis 1)

Sepia-Toneffekt (0 bis 1)

Farbinvertierung

Rausch-/Korn-Overlay (0 bis 1)

Vignetten-Abdunkelung (0 bis 1)

Chroma Key (Greenscreen-Entfernung)

Chroma-Key-Kantentoleranz

Chroma-Key-Kantenglättung

3D-LUT-Grading über .cube-Dateien (DaVinci Resolve/Adobe)

3D-LUT-Grading über .png-Strip-Dateien

Plattformunterstützung

macOS

13.0+ (Ventura)

Dynamische Bibliothek (gstvfmetal.dylib)

iOS

14.0+

Statische Bibliothek (libgstvfmetal.a)

Häufig gestellte Fragen

Was ist GStreamer Metal?

GStreamer Metal ist ein Open-Source GStreamer-Plugin, das GPU-beschleunigte Videoverarbeitungselemente für macOS und iOS bereitstellt. Es nutzt Apples Metal-Framework und Compute-Shader, um CPU-gebundene Videooperationen zu ersetzen und liefert deutlich bessere Leistung bei Aufgaben wie Compositing, Farbkorrektur, Formatkonvertierung und Deinterlacing.

Welche Plattformen werden unterstützt?

GStreamer Metal unterstützt macOS 13.0 (Ventura) und höher sowie iOS 14.0 und höher. Auf macOS wird es als dynamische Bibliothek (gstvfmetal.dylib) kompiliert, während es auf iOS als statische Bibliothek (libgstvfmetal.a) mit einem Registrierungs-Header erstellt wird.

Welche Pixelformate werden unterstützt?

Das Plugin unterstützt sechs Pixelformate: BGRA, RGBA, NV12, I420, UYVY und YUY2. Die meisten Elemente unterstützen BGRA, RGBA, NV12 und I420, während vfmetalconvertscale alle sechs Formate für maximale Konvertierungsflexibilität unterstützt.

Wie installiere ich das Plugin?

Klonen Sie das GitHub-Repository und führen Sie das enthaltene Build-Skript (./build.sh) für macOS aus. Für iOS verwenden Sie das CMake-basierte Cross-Compilation-Setup. Die resultierende Bibliothek kann in Ihrem GStreamer-Plugin-Pfad platziert werden, um automatisch erkannt zu werden.

Ist es kostenlos? Welche Lizenz gilt?

Ja, GStreamer Metal ist vollständig kostenlos und Open Source, veröffentlicht unter der GNU Library General Public License v2 (LGPL v2). Sie können es sowohl in Open-Source- als auch in kommerziellen Anwendungen ohne Lizenzgebühren verwenden.

Welche GStreamer-Elemente sind enthalten?

Das Plugin bietet sieben GPU-beschleunigte Elemente: vfmetalcompositor (Videomischung), vfmetalvideosink (Anzeige), vfmetalvideofilter (15 visuelle Effekte), vfmetalconvertscale (Formatkonvertierung und Skalierung), vfmetaltransform (Rotation/Spiegelung/Zuschnitt), vfmetaldeinterlace (Interlace-Entfernung) und vfmetaloverlay (Bild-Compositing).

Kann ich es in iOS-Apps verwenden?

Ja. Für iOS wird das Plugin als statische Bibliothek (libgstvfmetal.a) mit einem gstvfmetal_static.h-Header für die statische Registrierung kompiliert. Es integriert sich mit dem GStreamer iOS SDK und unterstützt die auf iOS gängigen Videoformate.

Wie schneidet GPU-Verarbeitung im Vergleich zu CPU-basierten Elementen ab?

GPU-beschleunigte Verarbeitung bietet erhebliche Leistungsverbesserungen gegenüber CPU-basierten GStreamer-Elementen. Die Zero-Copy-Architektur und Single-Pass-Verarbeitung minimieren Datentransfers und Frame-Pufferung. Elemente umgehen automatisch GPU-Arbeit bei Identitätswerten, wodurch kein Overhead entsteht, wenn keine Verarbeitung benötigt wird.

Starten Sie mit GStreamer Metal

Beschleunigen Sie Ihre Videoverarbeitungs-Pipeline auf Apple-Plattformen mit GPU-gestützten GStreamer-Elementen.