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.
