Nach mehr als einem Jahr der Entwicklung Release , in C geschriebene plattformübergreifende Komponentensammlung zur Erstellung einer breiten Palette von Multimedia-Anwendungen, von Media Playern und Audio-/Videokonvertern bis hin zu VoIP-Anwendungen und Streaming-Systemen. Der GStreamer-Code wird unter der LGPLv2.1-Lizenz verbreitet. Gleichzeitig sind Updates für die Plugins gst-plugins-base 1.16, gst-plugins-good 1.16, gst-plugins-bad 1.16, gst-plugins-ugly 1.16 sowie die Schnittstelle gst-libav 1.16 und der Streaming-Server gst-rtsp-server 1.16 verfügbar. Auf API- und ABI-Ebene ist die neue Version abwärtskompatibel mit dem Branch 1.0. Binärassemblierungen werden bald verfügbar sein. für Android, iOS, macOS und Windows (unter Linux wird empfohlen, die Pakete aus der Distribution zu verwenden).
Hauptmerkmale GStreamer 1.16:
- Im WebRTC-Stack wurde Unterstützung für P2P-Datenkanäle hinzugefügt, die mit dem SCTP-Protokoll implementiert wurden, sowie Unterstützung für den Mechanismus zum Senden verschiedener Arten von Multimedia-Daten innerhalb einer Verbindung und die Möglichkeit, mit mehreren TURN-Servern (Stun-Erweiterung zum Umgehen von NAT) zu arbeiten;
- Unterstützung für den Video-Codec AV1 in den Containern Matroska (MKV) und QuickTime/MP4 wurde hinzugefügt. Zusätzliche Einstellungen für AV1 wurden implementiert und die Anzahl der vom Encoder unterstützten Eingabedatenformate erweitert;
- Unterstützung hinzugefügt für , sowie die Möglichkeit, andere Arten von integrierten Daten aus Videos zu erkennen und zu extrahieren (zusätzliche Daten wie Audio und Metadaten, die über digitale Schnittstellen in nicht dargestellten Teilen der Zeilenübertragung übermittelt werden);
- Unterstützung für unkomprimierten (raw) Ton ohne Interleaving von Audiokanälen im Speicher (Non-Interleaved, der linke und der rechte Audiokanal werden in separaten Blöcken abgelegt, anstatt die Kanäle in der Form 'LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT' zu interleaven);
- In das Basis-Paket der Plugins (gst-plugins-base) wurden verschoben (Klasse zum Mischen von Raw-Video), (verbesserter Ersatz für den videomixer) und die OpenGL-Elemente mixer (glvideomixer, glmixerbin, glvideomixerelement, glstereomix, glmosaic), die zuvor im Paket 'gst-plugins-bad' untergebracht waren;
- Ein neuer Interlacing, bei dem jeder Puffer als einzelnes Feld in interlaced Video verarbeitet wird, mit der Trennung von oberem und unterem Feld auf der Ebene der an den Puffer gebundenen Flags;
- Der Matroska-Mediencontainer-Dekoder hat Unterstützung für das WebM-Format und die Verschlüsselung von Inhalten hinzugefügt;
- Ein neues Element wpesrc wurde hinzugefügt, das als Browser auf der Basis der Engine funktioniert (ermöglicht die Verarbeitung der Browserausgabe als Datenquelle);
- Für Video4Linux wird die Unterstützung für die Kodierung und Dekodierung von HEVC, die Kodierung von JPEG und den verbesserten Import und Export von dmabuf bereitgestellt;
- Im Video-Decoder, der hardwarebeschleunigte NVIDIA-GPU-Mittel verwendet, wurde die Unterstützung für die Dekodierung von VP8/VP9 hinzugefügt, während dem Encoder die Unterstützung für die hardwarebeschleunigte Kodierung von H.265/HEVC hinzugefügt wurde;
- Es wurden zahlreiche Verbesserungen am msdk-Plugin vorgenommen, das die Nutzung hardwarebeschleunigter Kodierungs- und Dekodierungsfunktionen auf Intel-Chips (basierend auf Intel Media SDK) ermöglicht. Darunter fällt die Unterstützung für den Import/Export von dmabuf, die Dekodierung von VP9, die Kodierung von 10-Bit-HEVC, die Nachbearbeitung von Videos und die dynamische Anpassung der Auflösung;
- Im Zeichensystem für Untertitel ASS/SSA wurde die Unterstützung für die Verarbeitung mehrerer zeitlich überlappender Untertitel mit gleichzeitiger Anzeige auf dem Bildschirm hinzugefügt;
- Vollständige Unterstützung für das Build-System Meson wurde bereitgestellt, das nun für den Build von GStreamer auf allen Plattformen empfohlen wird. Die Entfernung der Unterstützung für Autotools wird in der nächsten Version erwartet;
- Im Hauptbestandteil von GStreamer wurden Bindungen für die Entwicklung in Rust und ein Modul mit Rust-Plugins aufgenommen;
- Die Leistung wurde optimiert.
Quelle: opennet.ru
