Dostępny jest multimedialny framework GStreamer 1.28.0

Po prawie roku prac rozwojowych zaprezentowano wydanie GStreamer 1.28, wieloplatformowego zestawu komponentów do tworzenia szerokiego zakresu aplikacji multimedialnych, od odtwarzaczy multimedialnych i konwerterów plików audio/wideo, po aplikacje VoIP i systemy strumieniowego przesyłania danych. Kod GStreamer jest dystrybuowany na licencji LGPLv2.1. Oddzielnie rozwijane są aktualizacje wtyczek gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, a także opakowanie gst-libav i serwer strumieniowy gst-rtsp-server. Na poziomie API i ABI nowe wydanie jest wstecznie zgodne z gałęzią 1.0. Binarne wersje będą wkrótce przygotowane dla Androida, iOS, macOS i Windows (w przypadku Linuxa zaleca się korzystanie z pakietów z dystrybucji).

Kluczowe ulepszenia GStreamer 1.28:

  • Dodano nowe wtyczka HIP (Heterogeneous-computing Interface for Portability) do wsparcia rozwijanego przez firmę AMD interfejsu dla obliczeń heterogenicznych, w których oprócz CPU wykorzystywane są środki obliczeń równoległych GPU. HIP upraszcza wdrażanie wsparcia dla różnych GPU w jednym kodzie źródłowym (dla GPU AMD używany jest stos ROCm, a dla GPU NVIDIA – warstwa tłumaczenia na CUDA). Wtyczka udostępnia komponenty, zrealizowane przy użyciu HIP, do wykonywania takich operacji, jak mieszanie wideo, konwersja z jednego przestrzeni kolorów do innej, zmiana rozmiaru wideo i organizacja wymiany danych między pamięcią systemową a pamięcią wideo. Dodatkowo przygotowano bibliotekę do integracji wsparcia HIP w aplikacjach.
  • Dodano wsparcie dla standardu kodowania wideo LCEVC (Low Complexity Enhancement Video Coding), który implementuje dodatkową warstwę metadanych nad standardowymi kodekami H.265 i H.266 w celu poprawy jakości wideo. Implementacja kodera i dekodera LCEVC bazuje na bibliotekach z SDK V-Nova.
  • Dodano wsparcie dla możliwości graficznego API Vulkan, aby przyspieszyć dekodowanie wideo w formatach AV1 i VP9, a także kodowanie wideo w formacie H.264. W bazującym na Vulkan dekoderze wideo H.265 dodano wsparcie dla głębi koloru z 10-bitami na kanał.
  • W elemencie gtkwaylandsink, przeznaczonym do renderowania z użyciem GTK4 i Wayland, rozszerzono możliwości pracy z kolorem, na przykład dodano wsparcie dla analizy i ustawiania metadanych HDR10.
  • Dodano nowy element do rozdzielania źródeł dźwięku (na przykład, rozdzielania głosu i muzyki tła), oparty na bibliotece charon-audio, implementującej metodę Demucs w języku Rust. Ponadto, w skład wchodzi wtyczka Deepgram do rozpoznawania mowy, napisana w Rust.
  • Rozszerzono możliwości analizy i rozpoznawania obiektów. Dodano elementy do łączenia i rozdzielania analizy. Zrealizowano klasyfikator tensor-decoder, detektor twarzy facedetector, detektor obiektów YOLOv8, element do realizacji i dekoder dla modelu rozpoznawania obiektów YOLOX. Dodano element tensordecodebin do automatycznego łączenia dekoderów oraz element do realizacji modeli AI za pomocą LiteRT (zastępującego TensorFlow Lite).
  • Dodano nowy element do dekodowania obrazów GIF, napisany w Rust i wspierający pętlę animacyjną.
  • W elemencie input-selector zrealizowano dwufazowy mechanizm przełączania między strumieniami wejściowymi (sinkpad), eliminujący powstawanie stanu wyścigu podczas przełączania.
  • W elemencie webrtcsink dodano wsparcie dla sprzętowego przyspieszania kodowania za pomocą VA-API oraz możliwość ponownego negocjowania połączenia.
  • Dodano elementy do łączenia i wyciągania strumieni w formacie standardu telewizyjnego ST-2038.
  • W elemencie fallbacksrc dodano wsparcie dla zakodowanych strumieni.
  • W multimedialnym kontenerze FLV, używanym do transmisji RTMP, ulepszono wsparcie dla wideo H.265 oraz dodano wsparcie dla dźwięku wielościeżkowego.
  • W elemencie glupload dodano wsparcie dla ładowania opartego na udmabuf, umożliwiającego współdzielenie buforów między programowymi dekoderami/źródłami a GPU, silnikami wyświetlania (wayland) oraz innymi urządzeniami.
  • Dodano element qml6 do renderowania przy użyciu Qt6 QML.
  • W bibliotece do pracy z wideo dodano operacje do kadrowania, skalowania, obracania i przesuwania.
  • Dodano obiekt GstContext, umożliwiający wykorzystanie wspólnego puli strumieni podczas realizacji elementów w celu zwiększenia wydajności operacji takich jak kompozycja i przetwarzanie wideo.
  • Dodano element icecastsink do odbierania strumieni z IceCast, wspierający format AAC, napisany w Rust.
  • Dodano nowy element klonowania głosu ElevenLabs.
  • W syntezatorze mowy dodano tryb przyspieszenia odtwarzania przy zachowaniu wysokości tonu.
  • Dodano element vmaf do oceny percepcji jakości wideo przy użyciu frameworka VMAF od Netflixa.
  • Dodano nowy plugin do dekodowania dźwięku MPEG-H, oparty na dekoderze Fraunhofer MPEG-H, wspierający rozpakowywanie kontenerów medialnych MP4.
  • Rozszerzone wsparcie dla ukrytych napisów (CC — Closed Captions) oraz przetwarzania tekstu.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster