چارچوب چند رسانه ای GStreamer 1.20.0 در دسترس است

پس از یک سال و نیم توسعه، 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 binding و سرور جریان gst-rtsp-server 20. در سطح API و ABI، نسخه جدید با شاخه 1.0 سازگار است. اسمبلی های باینری به زودی برای اندروید، iOS، macOS و ویندوز آماده می شوند (در لینوکس توصیه می شود از بسته های توزیع استفاده کنید).

پیشرفت های کلیدی در GStreamer 1.20:

  • توسعه در GitLab به استفاده از یک مخزن مشترک برای همه ماژول ها تغییر یافته است.
  • یک کتابخانه سطح بالا GstPlay اضافه شده است که جایگزین API GstPlayer می شود و عملکردهای مشابهی را برای پخش محتوا ارائه می دهد که با استفاده از یک گذرگاه پیام برای اطلاع رسانی برنامه ها به جای سیگنال های GObject متفاوت است.
  • اضافه شدن پشتیبانی برای رمزگشایی اطلاعات شفافیت WebM، امکان پخش ویدیوهای VP8/VP9 با مناطق شفاف را فراهم می کند.
  • نمایه‌های رمزگذاری اکنون برای تنظیم ویژگی‌های خاص برنامه کاربردی پشتیبانی می‌کنند.
  • Compositor از تبدیل و میکس ویدیوی چند رشته ای پشتیبانی می کند.
  • کلاس‌های depayloader و payloader پشتیبانی یکپارچه برای کار با هدرهای RTP اضافی (RTP Header Extensions) دارند.
  • پشتیبانی از مکانیسم SMPTE 2022-1 2-D (تصحیح خطای جلو) اضافه شده است.
  • 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 Port for Embedded) اضافه شده است.
  • قابلیت استفاده از CUDA برای تبدیل فضای رنگی، مقیاس بندی عناصر و بارگذاری عناصر اضافه شده است.
  • اضافه شدن پشتیبانی از حافظه NVMM (ماژول حافظه NVIDIA) برای عناصر glupload و gldownload OpenGL.
  • پشتیبانی از WebRTC بهبود یافته است.
  • پلاگین جدیدی برای VA-API (API شتاب ویدئو) پیشنهاد شده است که از رمزگشاها و عناصر پس از پردازش بیشتر پشتیبانی می کند.
  • AppSink API پشتیبانی از رویدادها را علاوه بر بافرها و لیست های بافر اضافه کرده است.
  • تنظیمات اضافی برای صف های داخلی به AppSrc اضافه شده است.
  • اتصالات زبان Rust را به روز کرد و 26 افزونه جدید نوشته شده در Rust (gst-plugins-rs) اضافه کرد.
  • عناصر aesdec و aesenc برای رمزگذاری و رمزگشایی با استفاده از الگوریتم AES اضافه شده است.
  • برای تست و اشکال‌زدایی، عناصر سینک جعلی و ویدیوکدکتست سینک اضافه شده است.
  • ابزارهای بهبود یافته برای ایجاد ساختارهای مینیمالیستی GStreamer.
  • اضافه شدن قابلیت ساخت با FFmpeg 5.0.
  • برای لینوکس، نسخه‌هایی از کدک‌های MPEG-2 و VP9 پیاده‌سازی شده‌اند که بدون حالت ذخیره (Stateless) کار می‌کنند.
  • برای ویندوز، پشتیبانی از AV3 و MPEG-11 به رمزگشای مبتنی بر Direct1D2/DXVA اضافه شده است.

منبع: opennet.ru

اضافه کردن نظر