پس از یک سال و نیم توسعه، GStreamer 1.20 منتشر شد. این یک مجموعه کامپوننت چند پلتفرمی است که به زبان C نوشته شده است تا طیف گستردهای از برنامههای چندرسانهای، از پخشکنندههای رسانهای و مبدلهای فایلهای صوتی/تصویری گرفته تا برنامههای VoIP و سیستمهای استریمینگ را ایجاد کند. کد GStreamer تحت مجوز LGPLv2.1 توزیع شده است. همزمان، بهروزرسانیهایی برای افزونههای gst-plugins-base 1.20، gst-plugins-good 1.20، gst-plugins-bad 1.20، gst-plugins-ugly 1.20 و همچنین بستهبندی gst-libav 1.20 و سرور استریم gst-rtsp-server 20 در دسترس هستند. نسخه جدید با شاخه 1.0 در سطح API و ABI سازگار است. نسخههای باینری به زودی برای Android، iOS ، macOS и Windows (در Linux (توصیه میشود از بستههای موجود در توزیع استفاده کنید).
پیشرفت های کلیدی در GStreamer 1.20:
- توسعه در GitLab به یک مخزن واحد مشترک برای همه ماژولها منتقل شده است.
- یک کتابخانه سطح بالای جدید، GstPlay، اضافه شده است که جایگزین API GstPlayer شده و عملکرد مشابهی را برای پخش محتوا ارائه میدهد، با این تفاوت که به جای سیگنالهای GObject از یک گذرگاه پیام برای اطلاعرسانی به برنامهها استفاده میکند.
- پشتیبانی از رمزگشایی اطلاعات شفافیت در قالب WebM اضافه شده است که امکان پخش ویدیوهای VP8/VP9 با نواحی شفاف را فراهم میکند.
- پروفایلهای رمزگذاری اکنون از تنظیم ویژگیهای اضافی مختص برنامه پشتیبانی میکنند.
- کامپوزیتور پشتیبانی از تبدیل و میکس ویدیو را در حالت چند رشتهای پیادهسازی میکند.
- کلاسهای depayloader و payloader اکنون از هدرهای RTP اضافی (RTP Header Extensions) به صورت یکپارچه پشتیبانی میکنند.
- پشتیبانی از مکانیزم تصحیح خطای رو به جلوی دوبعدی SMPTE 2022-1 اضافه شد.
- Encodebin و transcodebin برای کدکهای VP8، VP9 و H.265 یک حالت رمزگذاری هوشمند را پیادهسازی میکنند که فقط در صورت لزوم رمزگذاری را انجام میدهد و در بقیه زمان، جریان موجود را هدایت میکند.
- افزونه souphttpsrc اکنون با libsoup2 و libsoup3 سازگار است.
- قابلیت رمزگشایی دادههای ورودی در سطح زیرفریم اضافه شده است که امکان شروع رمزگشایی بدون انتظار برای دریافت کل فریم را فراهم میکند. این بهینهسازی توسط رمزگشاهای OpenJPEG JPEG 2000، FFmpeg H.264 و OpenMAX H.264/H.265 پشتیبانی میشود.
- هنگام رمزگشایی ویدیو برای پروتکلهای RTP، WebRTC و RTSP، مدیریت خودکار از دست رفتن بستهها، خرابی دادهها و درخواستهای فریم کلیدی ارائه میشود.
- بستههای رسانهای mp4 و Matroska اکنون از تغییر دادههای کدک در حین اجرا پشتیبانی میکنند و به شما امکان میدهند پروفایل، سطح و وضوح جریانهای ورودی H.264/H.265 را تغییر دهید.
- حالت ایجاد کانتینرهای رسانهای mp4 تکهتکه شده اضافه شد.
- پشتیبانی از صدا به پورت مبتنی بر WPE (پورت WebKit برای Embedded) اضافه شده است.
- قابلیت استفاده از CUDA برای تبدیل فضای رنگی، مقیاسبندی المان و بارگذاری المان اضافه شد.
- پشتیبانی از حافظه NVMM (ماژول حافظه NVIDIA) به عناصر glupload و gldownload در OpenGL اضافه شده است.
- پشتیبانی بهبود یافته از WebRTC
- افزونه جدیدی برای VA-API (رابط برنامهنویسی کاربردی شتابدهنده ویدیو) معرفی شده است که از رمزگشاها و عناصر پسپردازش بیشتری پشتیبانی میکند.
- API مربوط به AppSink علاوه بر بافرها و لیستهای بافر، پشتیبانی از رویدادها را نیز اضافه کرده است.
- تنظیمات صف داخلی اضافی به AppSrc اضافه شده است.
- بهروزرسانی اتصالات Rust و اضافه شدن ۲۶ افزونه جدید نوشته شده با Rust (gst-plugins-rs).
- عناصر aesdec و aesenc برای رمزگذاری و رمزگشایی با استفاده از الگوریتم AES اضافه شد.
- عناصر fakeaudiosink و videocodectestsink برای آزمایش و اشکالزدایی اضافه شدند.
- ابزارهای بهبود یافته برای ایجاد نسخههای مینیمالیستی GStreamer.
- قابلیت ساخت با FFmpeg 5.0 اضافه شد.
- برای Linux نسخههای بدون وضعیت کدکهای MPEG-2 و VP9 پیادهسازی شدهاند.
- برای Windows رمزگشای مبتنی بر Direct3D11/DXVA اکنون از AV1 و MPEG-2 پشتیبانی میکند.
منبع: opennet.ru
