Majdnem egy év fejlesztés után megérkezett a GStreamer 1.28 nyílt forráskódú platform, amely lehetővé teszi különböző multimédia alkalmazások, például médiaplayerek és audio/video fájlok konvertálásának készítését, valamint VoIP alkalmazások és streaming rendszer kiépítését. A GStreamer kódja LGPLv2.1 licenc alatt terjesztett. A gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly pluginok fejlődnek tovább, mint ahogy a gst-libav wrapper és a gst-rtsp-server streaming szerver is. Az API és ABI szinten az új kiadás visszafelé kompatibilis az 1.0 ággal. A bináris build-ek hamarosan elérhetőek lesznek Android, iOS, macOS és Windows platformokra (Linux esetén ajánlott a disztribúcióból származó csomagok használata).
A GStreamer 1.28 főbb fejlesztései:
- Új HIP (Heterogeneous-computing Interface for Portability) plugint adtak hozzá, amely az AMD által fejlesztett heterogén számítási interfészt támogatja, ahol a CPU mellett a GPU párhuzamos számítási eszközeit is használják. A HIP egyszerűsíti a különböző GPU-k támogatásának megvalósítását egyetlen kódalapban (AMD GPU-k esetén a ROCm stack, míg NVIDIA GPU-k esetén a CUDA-ba való fordításhoz szükséges réteg kerül alkalmazásra). A plugin olyan komponenseket biztosít, amelyek HIP használatával valósítanak meg műveleteket, mint például videókeverés, színterek közötti átalakítás, videó átméretezés és adatok átvitele a rendszer- és a videomemória között. Továbbá könyvtár készült a HIP alkalmazásokba való integrálására.
- Hozzáadták az LCEVC (Low Complexity Enhancement Video Coding) videó kódolás szabvány támogatását is, amely a H.265 és H.266 szabványokra alapozva egy extra réteget valósít meg, amely javítja a videó minőségét. Az LCEVC kódoló és dekódoló implementációja a V-Nova SDK könyvtáraira épül.
- A Vulkan grafikus API támogatása is bekerült, amely felgyorsítja a videó dekódolását AV1 és VP9 formátumban, valamint H.264 formátumban történő kódolását. A Vulkanra épülő H.265 videó dekódoló támogatja a 10 bites színmélységet is.
- A gtkwaylandsink elem, amely a GTK4 és Wayland használatával való rajzolásra szolgál, kibővítette a színkezelési lehetőségeket, például hozzáadta a HDR10 metainformációk feldolgozásának és megjelenítésének támogatását.
- Új elem került hozzáadásra a hangforrások szétválasztására (például a beszéd és a háttérzene szétválasztására), amely a charon-audio könyvtáron alapul, és a Rust nyelven megvalósított Demucs módszert valósítja meg. Emellett a csomagba beépült a Rust nyelven írt Deepgram plugin, amely a beszédfelismerésért felelős.
- Bővültek az analitika és az objektumfelismerés lehetőségei. Hozzáadtuk az analitika egyesítésére és szétválasztására szolgáló elemeket. Megvalósult a tensor-decoder osztályozó, a facedetector arcok detektáló, a YOLOv8 objektumdetektáló, valamint a YOLOX objektumfelismerő modellhez tartozó végrehajtó és dekóder elem. Hozzáadtuk a tensordecodebin elemet az automatikus dekódolók csatlakoztatásához, valamint egy elemet, amely az AI-modellek végrehajtását végzi a LiteRT segítségével (a TensorFlow Lite helyett).
- Új elem került hozzáadásra GIF-képek dekódolásához, amely Rust nyelven készült, és támogatja a ciklikus animációkat.
- Az input-selector elemben megvalósult egy kétfázisú mechanizmus a bejövő áramok (sinkpad) közötti váltáshoz, amely kizárja a versenyhelyzetek kialakulását a váltások során.
- A webrtcsink elemhez hozzáadva lett a hardveres gyorsítási támogatás a kódoláshoz VA-API által, valamint a kapcsolat újraegyeztetésének lehetősége.
- Hozzáadtunk elemeket a ST-2038 műsorszórási szabványú formátumú áramok kombinálására és kinyerésére.
- A fallbacksrc elemhez támogatás került hozzáadva a kódolt áramokhoz.
- A FLV multimédiás tárolóban, amely RTMP-közvetítéshez használatos, javult a H.265 video támogatás, valamint hozzáadtuk a többcsatornás hang támogatását.
- A glupload elemhez hozzáadva lett az udmabuf alapú feltöltő támogatása, ami lehetővé teszi a puffer megosztását a szoftveres dekódolók/források és a GPU, valamint a megjelenítő motorok (wayland) és más eszközök között.
- Hozzáadva a qml6 elem a Qt6 QML segítségével történő rajzoláshoz.
- A videókkal való munka könyvtárához hozzáadtuk a vágás, skálázás, forgatás és eltolás műveleteit.
- Hozzáadva a GstContext objektum, amely lehetővé teszi a közös szálmedence használatát a végrehajtott elemek teljesítményének növelése érdekében, olyan műveletek során, mint a kompozitálás és a video átalakítás.
- Hozzáadva az icecastsink elem, amely IceCast-ból streameteket fogad, támogatja az AAC formátumot, és Rust nyelven íródott.
- Új elem került hozzáadásra az ElevenLabs hangklónozására.
- A beszédszintetizálóhoz hozzáadva lett egy mód a lejátszás felgyorsítására, a hangmagasság megőrzésével.
- Hozzáadva a vmaf elem a videóminőség észlelésének értékeléséhez a Netflix VMAF keretrendszere alapján.
- Hozzáadva egy új MPEG-H hangdekóder plugin, amely a Fraunhofer MPEG-H dekóderén alapul, és támogatja az MP4 médiatárolók kicsomagolását.
- Kibővült a rejtett feliratok (CC - Closed Captions) támogatása és a szövegfeldolgozás.
Forrás: opennet.ru
