Nach mehr als einem Jahr Entwicklung Release , eine in C geschriebene plattformübergreifende Sammlung von Komponenten zur Erstellung einer Vielzahl von Multimedia-Anwendungen, von Media Playern und Audio-/Video-Converter 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 für das Binding gst-libav 1.16 und den Streaming-Server gst-rtsp-server 1.16 verfügbar. Auf API- und ABI-Ebene ist die neue Version rückwärtskompatibel mit der 1.0-Serie. Binärpakete werden in Kürze für Android, iOS, macOS und Windows (unter Linux wird empfohlen, die Pakete aus der Distribution zu verwenden).
Schlüssige GStreamer 1.16:
- Der WebRTC-Stack wurde um die Unterstützung von P2P-Datenkanälen ergänzt, die über das SCTP-Protokoll implementiert sind, sowie um die Unterstützung des -Mechanismus, der das Senden verschiedener Arten von Multimedia-Daten innerhalb einer einzigen Verbindung ermöglicht, und die Möglichkeit, mit mehreren TURN-Servern zu arbeiten (Erweiterung von STUN zur Umgehung von Adressübersetzern);
- Die Unterstützung des Video-Codecs AV1 in Matroska (MKV) und QuickTime/MP4 Containern wurde hinzugefügt. Zusätzliche AV1-Einstellungen wurden implementiert und die Anzahl der vom Encoder unterstützten Eingangsformate erweitert.
- Unterstützung für , sowie die Möglichkeit, andere Arten integrierter Daten aus Videos zu identifizieren und zu extrahieren (Zusätzliche Daten, wie Audio und Metadaten, die über digitale Schnittstellen in nicht sichtbaren Teilen der Zeilenübertragung übertragen werden);
- Die Unterstützung für unkodierten (raw) Sound ohne Interleaving der Audiokanäle im Speicher wurde hinzugefügt (Non-Interleaved, die linke und rechte Audiokanäle werden in separaten Blöcken abgelegt, anstatt die Kanäle im Format «LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT» zu mischen);
- In das Basis-Plugin-Paket (gst-plugins-base) wurden verschoben (eine Klasse zum Mischen von raw-Video), (verbesserte Alternative zu videomixer) und OpenGL Mixer Elemente (glvideomixer, glmixerbin, glvideomixerelement, glstereomix, glmosaic), die zuvor im Paket «gst-plugins-bad» enthalten waren;
- Ein neuer Feldwechsel, bei dem jeder Puffer als separates Feld in einem interlaced Video verarbeitet wird, wobei die obere und untere Feldtrennung durch an den Puffer gebundene Flags erfolgt;
- Der Media Container-Entpacker Matroska hat die 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 Basis der Engine (ermöglicht die Verarbeitung der Browserausgabe als Datenquelle);
- Für Video4Linux wurde die Unterstützung für die Kodierung und Dekodierung von HEVC, die Kodierung von JPEG sowie eine verbesserte Import- und Exportfunktion für dmabuf sichergestellt;
- In den Video-Decoder, der Nvidia-GPU-Hardware-Beschleunigung verwendet, wurde die Unterstützung für die Dekodierung von VP8/VP9 hinzugefügt, während der Encoder die hardwarebeschleunigte Kodierung von H.265/HEVC unterstützt;
- Zahlreiche Verbesserungen am msdk-Plugin wurden vorgenommen, das die Nutzung hardwarebeschleunigter Codierungs- und Decodierungsfunktionen auf Intel-Chips ermöglicht (basierend auf Intel Media SDK). Darunter fällt die Unterstützung für den Import/Export von dmabuf, das Decodieren von VP9, die Kodierung von 10-Bit HEVC, die Video-Nachbearbeitung und die dynamische Anpassung der Auflösung;
- Im ASS/SSA-Untertitel-Rendering-System wurde die Unterstützung für die Verarbeitung mehrerer zeitlich überlappender Untertitel hinzugefügt, die gleichzeitig auf dem Bildschirm angezeigt werden können.
- Eine vollwertige Unterstützung des Build-Systems 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 Bindings für die Entwicklung in der Sprache Rust und ein Modul mit Rust-Plugins hinzugefügt.
- Die Leistung wurde optimiert.
Quelle: opennet.ru
