GStreamer 1.20.0 multimediaframework is beschikbaar

Na anderhalf jaar ontwikkeling werd GStreamer 1.20 uitgebracht, een platformonafhankelijke set componenten geschreven in C voor het creëren van een breed scala aan multimediatoepassingen, van mediaspelers en audio-/videobestandsconverters tot VoIP-toepassingen en streamingsystemen. De GStreamer-code is gelicentieerd onder LGPLv2.1. Tegelijkertijd zijn updates voor de plug-ins gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20 beschikbaar, evenals de gst-libav 1.20-binding en de streamingserver gst-rtsp-server 20. Op API- en ABI-niveau is de nieuwe release achterwaarts compatibel met de 1.0-tak. Binaire assemblies zullen binnenkort worden voorbereid voor Android, iOS, macOS en Windows (in Linux wordt aanbevolen om pakketten uit de distributie te gebruiken).

Belangrijkste verbeteringen in GStreamer 1.20:

  • De ontwikkeling op GitLab is overgeschakeld naar het gebruik van één enkele repository die voor alle modules geldt.
  • Er is een nieuwe GstPlay-bibliotheek op hoog niveau toegevoegd, die de GstPlayer API vervangt en vergelijkbare functionaliteit biedt voor het afspelen van inhoud, maar verschilt door een berichtenbus te gebruiken om applicaties op de hoogte te stellen in plaats van GObject-signalen.
  • Ondersteuning toegevoegd voor het decoderen van WebM-transparantie-informatie, waardoor het afspelen van VP8/VP9-video's met transparante gebieden mogelijk is.
  • Coderingsprofielen bieden nu ondersteuning voor het instellen van aanvullende toepassingsspecifieke eigenschappen.
  • Compositor ondersteunt multi-threaded videoconversie en -mixen.
  • De klassen depayloader en payloader hebben uniforme ondersteuning voor het werken met extra RTP-headers (RTP Header Extensions).
  • Ondersteuning toegevoegd voor het SMPTE 2022-1 2-D-mechanisme (Forward Error Correction).
  • Encodebin en transcodebin voor VP8-, VP9- en H.265-codecs implementeren een slimme coderingsmodus, waarbij transcodering alleen wordt uitgevoerd wanneer dat nodig is, en de rest van de tijd de bestaande stream wordt doorgestuurd.
  • De souphttpsrc-plug-in is nu compatibel met libsoup2 en libsoup3.
  • De mogelijkheid toegevoegd om invoergegevens te decoderen op het niveau van tussenliggende frames (subframe), waardoor u kunt beginnen met decoderen zonder te wachten tot het volledige frame is ontvangen. Ondersteuning voor deze optimalisatie is opgenomen in de OpenJPEG JPEG 2000-, FFmpeg H.264- en OpenMAX H.264/H.265-decoders.
  • Bij het decoderen van video voor de RTP-, WebRTC- en RTSP-protocollen wordt automatische afhandeling van pakketverlies, datacorruptie en keyframe-verzoeken geboden.
  • Ondersteuning voor het direct wijzigen van codecgegevens is toegevoegd aan de mp4- en Matroska-mediacontainerpackers, waarmee u het profiel, het niveau en de resolutie voor H.264/H.265-invoerstreams kunt wijzigen.
  • Een modus toegevoegd voor het maken van gefragmenteerde mp4-mediacontainers.
  • Audio-ondersteuning is toegevoegd aan de op WPE (WebKit Port for Embedded) gebaseerde poort.
  • De mogelijkheid toegevoegd om CUDA te gebruiken voor kleurruimteconversie, elementschaling en elementladen.
  • Ondersteuning toegevoegd voor NVMM-geheugen (NVIDIA Memory Module) voor OpenGL gupload- en gldownload-elementen.
  • Verbeterde WebRTC-ondersteuning.
  • Er is een nieuwe plug-in voor VA-API (Video Acceleration API) voorgesteld, die meer decoders en naverwerkingselementen ondersteunt.
  • De AppSink API heeft naast buffers en bufferlijsten ondersteuning voor evenementen toegevoegd.
  • Er zijn aanvullende instellingen voor interne wachtrijen toegevoegd aan AppSrc.
  • Rust-taalbindingen bijgewerkt en 26 nieuwe plug-ins toegevoegd, geschreven in Rust (gst-plugins-rs).
  • Aesdec- en aesenc-elementen toegevoegd voor codering en decodering met behulp van het AES-algoritme.
  • Fakeaudiosink- en videocodectestsink-elementen toegevoegd voor testen en debuggen.
  • Verbeterde tools voor het maken van minimalistische GStreamer-builds.
  • De mogelijkheid toegevoegd om te bouwen met FFmpeg 5.0.
  • Voor Linux zijn versies van de MPEG-2- en VP9-codecs geïmplementeerd, die werken zonder de status op te slaan (Stateless).
  • Voor Windows is AV3- en MPEG-11-ondersteuning toegevoegd aan de op Direct1D2/DXVA gebaseerde decoder.

Bron: opennet.ru

Voeg een reactie