Пасля амаль года распрацоўкі прадстаўлены рэліз GStreamer 1.28, кросплатформавага набору кампанентаў для стварэння шырокага спектру мультымедыя прыкладанняў, ад медыяплэераў і канвертараў аўдыё/відэа файлаў, да VoIP-прыкладанняў і сістэм струменевага вяшчання. Код GStreamer распаўсюджваецца пад ліцэнзіяй LGPLv2.1. Асобна развіваюцца абнаўленні плагінаў gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, а таксама абвязка gst-libav і сервер струменевага вяшчання gst-rtsp-server. На ўзроўні API і ABI новы выпуск зваротна сумяшчальны з галінкай 1.0. Бінарныя зборкі ў хуткім часе будуць падрыхтаваны для Android,iOS, macOS и Windows (у Linux рэкамендуецца выкарыстоўваць пакеты з дыстрыбутыва).
Ключавыя паляпшэнні GStreamer 1.28:
- Дададзены новы убудова HIP (Heterogeneous-computing Interface for Portability) для падтрымкі які развіваецца кампаніяй AMD праграмнага інтэрфейсу для гетэрагенных вылічэнняў, у якіх апроч CPU выкарыстоўваюцца сродкі раўналежных вылічэнняў GPU. HIP спрашчае рэалізацыю падтрымкі розных GPU у адной кодавай базе (для выканання на GPU AMD задзейнічаны стэк ROCm, а на GPU NVIDIA – праслойка для трансляцыі ў CUDA). Убудовай падаюцца кампаненты, рэалізаваныя з выкарыстаннем HIP, для выканання такіх аперацый, як змешванне відэа, пераўтварэнні з адной каляровай прасторы ў іншую, змена памеру відэа і арганізацыя абмену дадзенымі паміж сістэмнай памяццю і відэапамяццю. Дадаткова падрыхтавана бібліятэка для інтэграцыі падтрымкі HIP у дадатку.
- Дададзена падтрымка стандарту кадавання відэа LCEVC (Low Complexity Enhancement Video Coding), які рэалізуе па-над штатнымі кодэкамі H.265 і H.266 дадатковы пласт з метададзенымі для паляпшэння якасці відэа. Рэалізацыя кадавальніка і дэкадавальніка LCEVC грунтуецца на бібліятэках з SDK V-Nova.
- Дададзена падтрымка магчымасцяў графічнага API Vulkan для паскарэння дэкадавання відэа ў фарматах AV1 і VP9, а таксама кадавання відэа ў фармаце H.264. У які базуецца на Vulkan дэкадавальнік відэа H.265 дададзеная падтрымка глыбіні колеру з 10-бітамі на канал.
- У элеменце gtkwaylandsink, прызначаным для адмалёўкі з выкарыстаннем GTK4 і Wayland, пашыраны магчымасці для працы з колерам, напрыклад, дададзена падтрымка разбору і выстаўленні метададзеных HDR10.
- Дададзены новы элемент для падзелу крыніц гуку (напрыклад, падзелу голасу і фонавай музыкі), заснаваны на бібліятэцы charon-audio, якая рэалізуе метад Demucs на мове Rust. Акрамя таго, у склад уключаны плягін Deepgram для распазнання прамовы, напісаны на Rust.
- Пашыраны магчымасці аналітыкі і распазнанні аб'ектаў. Дададзеныя элементы для аб'яднання і падзелы аналітыкі. Рэалізаваны класіфікатар tensor-decoder, дэтэктар асоб facedetector, дэтэктар аб'ектаў YOLOv8, элемент для выканання і дэкадавальнік для мадэлі распазнання аб'ектаў YOLOX. Дададзены элемент tensordecodebin для аўтападлучэння дэкадавальнікаў і элемент для выканання AI-мадэляў пры дапамозе LiteRT (прыйшоў на змену TensorFlow Lite).
- Дададзены новы элемент для дэкадавання GIF-малюнкаў, напісаны на Rust і які падтрымлівае зацыкленую анімацыю.
- У элеменце input-selector рэалізаваны двухфазны механізм пераключэння паміж уваходнымі струменямі (sinkpad), выняткоўвалы ўзнікненне стану гонкі пры пераключэнні.
- У элемент webrtcsink дададзена падтрымка апаратнага паскарэння кадавання пры дапамозе VA-API і магчымасць паўторнага ўзгаднення злучэння.
- Дададзеныя элементы для камбінавання і вымання струменяў у фармаце стандарту тэлевяшчання ST-2038.
- У элемент fallbacksrc дададзеная падтрымка кадаваных струменяў.
- У мультымедыйным кантэйнеры FLV, які выкарыстоўваецца для RTMP-вяшчання, палепшана падтрымка відэа H.265 і дададзена падтрымка шматтоекавы гуку.
- У элемент glupload дададзеная падтрымка загрузніка на базе udmabuf, які дазваляе сумесна выкарыстоўваць буферы паміж праграмнымі дэкадавальніка/крыніцамі і GPU, дысплейнымі рухавікамі (wayland) і іншымі прыладамі.
- Дададзены элемент qml6 для адмалёўкі пры дапамозе Qt6 QML.
- У бібліятэку для працы з відэа дададзены аперацыі для кадравання, маштабавання, павароту і зруху.
- Дададзены аб'ект GstContext, які дазваляе выкарыстоўваць сумесны пул патокаў пры выкананні элементаў для павышэння прадукцыйнасці такіх аперацый, як кампазітынг і пераўтварэнне відэа.
- Дададзены элемент icecastsink для прыёму патокаў з IceCast, які падтрымлівае фармат AAC і напісаны на Rust.
- Дададзены новы элемент кланавання голасу ElevenLabs.
- У сінтэзатар прамовы дададзены рэжым для паскарэння прайгравання з захаваннем вышыні тону.
- Дададзены элемент vmaf для адзнакі ўспрымання якасці відэа з выкарыстаннем фрэймворка VMAF ад Netflix.
- Дададзены новы убудова дэкадавання гуку MPEG-H, заснаваны на дэкадавальніку Fraunhofer MPEG-H і які падтрымлівае распакаванне медыякантэйнераў MP4.
- Пашыраная падтрымка ўтоеных субтытраў (CC - Closed Captions) і апрацоўкі тэксту.
Крыніца: opennet.ru
