Efter halvandet års udvikling er GStreamer 1.20 blevet udgivet. Det er et cross-platform komponentsæt skrevet i C til at skabe en bred vifte af multimedieapplikationer, fra medieafspillere og lyd/video-filkonvertere til VoIP-applikationer og streamingsystemer. GStreamer-kode distribueres under LGPLv2.1-licensen. Samtidig er opdateringer tilgængelige til plugins gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, samt gst-libav 1.20 wrapperen og gst-rtsp-server 20 streamingserveren. Den nye udgivelse er bagudkompatibel med 1.0-grenen på API- og ABI-niveau. Binære builds vil snart blive forberedt til... Android, IOS, macOS и Windows (I Linux (Det anbefales at bruge pakker fra distributionen).
Vigtigste forbedringer i GStreamer 1.20:
- Udvikling på GitLab er blevet skiftet til at bruge et enkelt repository, der er fælles for alle moduler.
- Et nyt bibliotek på højt niveau, GstPlay, er blevet tilføjet, som erstatter GstPlayer API'en og tilbyder lignende funktionalitet til afspilning af indhold, idet det adskiller sig ved brugen af en beskedbus til at underrette applikationer i stedet for GObject-signaler.
- Tilføjet understøttelse af afkodning af gennemsigtighedsinformation i WebM-format, hvilket muliggør afspilning af VP8/VP9-videoer med gennemsigtige områder.
- Tilføjet understøttelse af konfiguration af yderligere applikationsspecifikke egenskaber til kodningsprofiler.
- Compositor implementerer understøttelse af videokonvertering og -mixning i multitrådet tilstand.
- Klasserne depayloader og payloader understøtter nu arbejde med yderligere RTP-headere (RTP Header Extensions).
- Tilføjet understøttelse af SMPTE 2022-1 2-D Forward Error Correction-mekanismen.
- I encodebin og transcodebin for VP8-, VP9- og H.265-codecs er der implementeret en smart encoding-tilstand, hvor transkodning kun udføres, når det er nødvendigt, og resten af tiden videresendes den eksisterende stream.
- Sikrede kompatibilitet mellem souphttpsrc-plugin og libsoup2 og libsoup3.
- Tilføjet muligheden for at afkode inputdata på underrammeniveau, så du kan starte afkodningen uden at vente på, at en fuld ramme modtages. Understøttelse af denne optimering er aktiveret i OpenJPEG JPEG 2000-, FFmpeg H.264- og OpenMAX H.264/H.265-dekoderne.
- Ved afkodning af video til RTP-, WebRTC- og RTSP-protokoller håndteres pakketab, datakorruption og keyframe-anmodninger automatisk.
- mp4- og Matroska-mediecontainerpakkerne understøtter nu ændring af codec-data undervejs, så du kan ændre profil, niveau og opløsning for H.264/H.265-inputstrømme.
- Tilføjet tilstand til oprettelse af fragmenterede mp4-mediecontainere.
- Lydunderstøttelse er blevet tilføjet til den WPE-baserede port (WebKit Port for Embedded).
- Tilføjet muligheden for at bruge CUDA til farverumskonvertering, elementskalering og elementindlæsning.
- Understøttelse af NVMM (NVIDIA Memory Module)-hukommelse er blevet tilføjet til OpenGL glupload- og gldownload-elementerne.
- Forbedret WebRTC-understøttelse.
- Et nyt plugin til VA-API (Video Acceleration API) er blevet introduceret, som understøtter flere dekodere og efterbehandlingselementer.
- AppSink API'en har tilføjet understøttelse af hændelser ud over buffere og bufferlister.
- Yderligere interne køindstillinger er blevet tilføjet til AppSrc.
- Opdaterede Rust-bindinger og tilføjede 26 nye plugins skrevet i Rust (gst-plugins-rs).
- Tilføjede aesdec- og aesenc-elementer til kryptering og dekryptering ved hjælp af AES-algoritmen.
- Tilføjede fakeaudiosink- og videocodectestsink-elementer til test og fejlfinding.
- Forbedrede værktøjer til at skabe minimalistiske GStreamer-builds.
- Tilføjet muligheden for at bygge med FFmpeg 5.0.
- for Linux Statsløse versioner af MPEG-2 og VP9 codecs er blevet implementeret.
- for Windows Den Direct3D11/DXVA-baserede dekoder understøtter nu AV1 og MPEG-2.
Kilde: opennet.ru
