GStreamer Metal Plugin
Przetwarzanie wideo z akceleracją GPU dla GStreamer na platformach Apple. Siedem elementów opartych na Metal zastępuje operacje ograniczone przez CPU przetwarzaniem GPU typu zero-copy w jednym przebiegu.
Czym jest GStreamer Metal?
GStreamer Metal (gst-vf-metal) to profesjonalna wtyczka GStreamer zapewniająca implementacje oparte na Metal popularnych elementów wideo ograniczonych przez CPU dla macOS i iOS. Dostarcza znaczące ulepszenia wydajności dzięki frameworkowi Metal firmy Apple z shaderami obliczeniowymi, umożliwiając przetwarzanie wideo w czasie rzeczywistym przy minimalnym obciążeniu CPU.
Architektura zero-copy
CVMetalTextureCache eliminuje nadmiarowe kopiowanie CPU-GPU. Elementy automatycznie pomijają pracę GPU, gdy są skonfigurowane z wartościami tożsamości/domyślnymi.
Przetwarzanie GPU w jednym przebiegu
Wszystkie efekty filtrów (jasność, kontrast, odcień, chroma key, LUT itp.) stosowane w jednym wywołaniu GPU — brak pośrednich buforów między efektami.
Kompozycja mieszanych formatów
Kompozytor akceptuje heterogeniczne formaty wejściowe (np. BGRA + NV12 jednocześnie) z automatyczną konwersją formatu.
6 formatów pikseli
Obsługuje formaty pikseli BGRA, RGBA, NV12, I420, UYVY i YUY2 w całym zestawie elementów.
Elementy z akceleracją GPU
vfmetalcompositor
Wielowejściowe miksowanie i kompozycja wideo
- Pozycjonowanie, skalowanie, alfa i kolejność Z na pad
- Tryby mieszania: source, over, add
- Wejścia mieszanych formatów (BGRA + NV12 jednocześnie)
- Polityki rozmiarów z zachowaniem proporcji
vfmetalvideosink
Sprzętowo akcelerowany renderer i wyświetlacz wideo
- Obsługa GstVideoOverlay i GstNavigation
- Automatyczne tworzenie okna z zachowaniem proporcji
- Przekazywanie zdarzeń myszy/klawiatury
- Formaty BGRA, RGBA, NV12 i I420
vfmetalvideofilter
15 efektów wizualnych z akceleracją GPU w jednym elemencie
- Kolor: jasność, kontrast, nasycenie, odcień, gamma
- Efekty: ostrość/rozmycie, sepia, inwersja, szum, winietowanie
- Chroma key (zielony ekran) z kontrolą tolerancji
- Korekcja kolorów 3D LUT (formaty .cube i .png)
vfmetalconvertscale
Konwersja formatu i skalowanie w jednym
- Wszystkie 6 par formatów obsługiwane (np. NV12→BGRA, UYVY→I420)
- Interpolacja bilinearna i najbliższego sąsiada
- Letterboxing z niestandardowymi kolorami obramowania
- Zastępuje zarówno videoconvert, jak i videoscale
vfmetaltransform
Transformacje geometryczne
- 8 metod obrotu i odbicia
- Przycinanie na krawędź
- Przepuszczanie tożsamościowe bez transformacji
- Formaty BGRA, RGBA, NV12 i I420
vfmetaldeinterlace
Usuwanie przeplotu z akceleracją GPU
- Algorytmy Bob, weave, linear i greedy-H
- Usuwanie przeplotu adaptacyjne do ruchu (greedy-H)
- Automatyczne/ręczne wykrywanie kolejności pól
- Formaty BGRA, RGBA, NV12 i I420
vfmetaloverlay
Nakładka kompozycji obrazu
- Obsługa nakładek PNG i JPEG
- Pozycjonowanie bezwzględne i względne
- Niestandardowy rozmiar z mieszaniem alfa
- Formaty BGRA, RGBA, NV12 i I420
15 efektów wideo
Wszystkie efekty stosowane w jednym przebiegu GPU i mogą być animowane przez GstController:
Regulacja jasności (-1 do 1)
Kontrola kontrastu (0 do 2)
Nasycenie koloru (0 do 2)
Obrót odcienia (-1 do 1)
Korekcja gamma (0,01 do 10)
Ostrość i rozmycie (-1 do 1)
Efekt tonu sepii (0 do 1)
Inwersja kolorów
Nakładka szumu/ziarna (0 do 1)
Przyciemnienie winiety (0 do 1)
Chroma key (usuwanie zielonego ekranu)
Tolerancja krawędzi chroma key
Gładkość krawędzi chroma key
Grading 3D LUT przez pliki .cube (DaVinci Resolve/Adobe)
Grading 3D LUT przez pliki paskowe .png
Obsługa platform
macOS
13.0+ (Ventura)
Biblioteka dynamiczna (gstvfmetal.dylib)
iOS
14.0+
Biblioteka statyczna (libgstvfmetal.a)
Często zadawane pytania
Czym jest GStreamer Metal?
GStreamer Metal to otwartoźródłowa wtyczka GStreamer dostarczająca elementy przetwarzania wideo z akceleracją GPU dla macOS i iOS. Wykorzystuje framework Metal firmy Apple i shadery obliczeniowe do zastępowania operacji wideo ograniczonych przez CPU, zapewniając znacznie lepszą wydajność w zadaniach takich jak kompozycja, korekcja kolorów, konwersja formatów i usuwanie przeplotu.
Jakie platformy są obsługiwane?
GStreamer Metal obsługuje macOS 13.0 (Ventura) i nowsze oraz iOS 14.0 i nowsze. Na macOS kompiluje się jako biblioteka dynamiczna (gstvfmetal.dylib), podczas gdy na iOS kompiluje się jako biblioteka statyczna (libgstvfmetal.a) z nagłówkiem rejestracyjnym.
Jakie formaty pikseli są obsługiwane?
Wtyczka obsługuje sześć formatów pikseli: BGRA, RGBA, NV12, I420, UYVY i YUY2. Większość elementów obsługuje BGRA, RGBA, NV12 i I420, podczas gdy vfmetalconvertscale obsługuje wszystkie sześć formatów dla maksymalnej elastyczności konwersji.
Jak zainstalować wtyczkę?
Sklonuj repozytorium GitHub i uruchom dołączony skrypt budowania (./build.sh) dla macOS. Dla iOS użyj konfiguracji kompilacji krzyżowej opartej na CMake. Wynikowa biblioteka może zostać umieszczona w ścieżce wtyczek GStreamer w celu automatycznego wykrycia.
Czy jest darmowa? Jaka jest licencja?
Tak, GStreamer Metal jest całkowicie darmowa i otwartoźródłowa, wydana na licencji GNU Library General Public License v2 (LGPL v2). Możesz używać jej zarówno w aplikacjach otwartoźródłowych, jak i komercyjnych bez opłat licencyjnych.
Jakie elementy GStreamer są zawarte?
Wtyczka dostarcza siedem elementów z akceleracją GPU: vfmetalcompositor (miksowanie wideo), vfmetalvideosink (wyświetlanie), vfmetalvideofilter (15 efektów wizualnych), vfmetalconvertscale (konwersja formatu i skalowanie), vfmetaltransform (obrót/odbicie/przycinanie), vfmetaldeinterlace (usuwanie przeplotu) i vfmetaloverlay (kompozycja obrazu).
Czy mogę używać jej w aplikacjach iOS?
Tak. Dla iOS wtyczka kompiluje się jako biblioteka statyczna (libgstvfmetal.a) z nagłówkiem gstvfmetal_static.h do rejestracji statycznej. Integruje się z GStreamer iOS SDK i obsługuje formaty wideo powszechnie używane na iOS.
Jak przetwarzanie GPU wypada w porównaniu z elementami opartymi na CPU?
Przetwarzanie z akceleracją GPU zapewnia znaczące ulepszenia wydajności w porównaniu z elementami GStreamer opartymi na CPU. Architektura zero-copy i przetwarzanie w jednym przebiegu minimalizują transfer danych i buforowanie klatek. Elementy automatycznie pomijają pracę GPU przy wartościach tożsamościowych, zapewniając brak narzutu, gdy przetwarzanie nie jest potrzebne.
Zacznij z GStreamer Metal
Przyspiesz swój pipeline przetwarzania wideo na platformach Apple dzięki elementom GStreamer z GPU.
