Nach sieben Monaten Entwicklung wurde das Multimedia-Paket FFmpeg 8.1 veröffentlicht, das eine Sammlung von Anwendungen und Bibliotheken für Operationen mit verschiedenen Multimedia-Formaten (Aufzeichnung, Umwandlung und Dekodierung von Audio- und Videoformaten) enthält. Das Paket ist in der Programmiersprache C geschrieben und wird unter den Lizenzen LGPL und GPL verteilt.
Unter den Änderungen in FFmpeg 8.1:
- Es wurden ein Parser, ein Encoder und ein Decoder sowie ein Muxer und ein Demuxer für das Bildformat JPEG XS hinzugefügt, das als leichtgewichtiges Bildcodierungssystem positioniert ist und minimale Latenzen beim Codieren und Dekodieren gewährleistet. Es ist auf die Optimierung der Übertragung von Sekundärektionen in sehr hoher Qualität (bis 8K) ausgerichtet. JPEG XS ermöglicht eine erhebliche Reduzierung der benötigten Bandbreite ohne für das menschliche Auge wahrnehmbare Qualitätsverluste. Die Implementierung basiert auf der Bibliothek libsvtjpegxs.
- Ein experimenteller Decoder für das Audio-Codierungsformat xHE-AAC (High-Efficiency Advanced Audio Coding) mit der Raumklang-Architektur Mps212 (MPEG Surround mit Kanalverteilung 212) wurde hinzugefügt. xHE-AAC wird im Streaming von Netflix verwendet und ist Teil der Digital Radio Mondiale-Technologien für digitales Radio. Der Codec zeichnet sich durch eine breite Bitrate von 12 bis 300 kbit/s, hohe Kompression, dauerhafte Lautstärkewiedergabe, hohe Klarheit bei allen Lautstärkepegeln sowie zusätzliche Profile zur dynamischen Bereichsverwaltung beim Hören in geräuschvollen Umgebungen aus und ermöglicht die Addition von Metadaten zur Wiederherstellung von Verlusten auf der Empfängerseite.
- Auf Basis der Bibliothek libmpeghdec wurde ein Decoder für interaktiven und räumlichen Klang im NGA-Format (Next Generation Audio) implementiert, das im MPEG-H-Standard für Audio- und Video-Codierung definiert ist.
- Es wurde Unterstützung für das Verpacken und Entpacken von räumlichem Klang im IAMF-Format (Immersive Audio Model and Formats) mit räumlichem Klang im Ambisonics-Modus hinzugefügt, wobei die Schallverbreitung nicht nur in der horizontalen, sondern auch in der vertikalen Ebene berücksichtigt wird (um die Quelle des Schalls von oben oder unten zu bestimmen).
- Die Unterstützung für die Analyse und Weiterleitung von Metadaten im LCEVC-Format (Low Complexity Enhancement Video Coding) wurde hinzugefügt, das eine zusätzliche Ebene mit Metadaten über die Standardcodecs implementiert, um die Videoqualität zu verbessern. Die Unterstützung für den Export von LCEVC-Qualitätsverbesserungsebenen in Multimedia-Container im MPEG-TS-Format (MPEG Transport Stream) wurde hinzugefügt.
- Auf Basis der Grafik-API Vulkan wurden ein Encoder und Decoder für den Apple ProRes Codec sowie ein Decoder für das industriell genutzte Format zur separaten Übertragung von Einzelbildern DPX (Digital Picture Exchange) implementiert. Die Implementierungen auf der Grundlage der Vulkan-API zeichnen sich durch eine signifikante Leistungssteigerung durch hardwarebeschleunigte Verarbeitung, Parallelisierung von Operationen und den Einsatz von Compute-Shadern aus. Die Implementierungen der Codecs basierend auf AI Vulkan wurden optimiert. Um die Initialisierung der Codecs zu beschleunigen, wurde die Möglichkeit implementiert, bereits kompilierte GLSL-Shader zu verwenden, ohne sie während des Betriebs kompilieren zu müssen.
- In der Bibliothek swscale (Software Scaler), die in FFmpeg für softwareseitige Skalierung und Farbkonvertierung verwendet wird, wurde ein Backend implementiert, das zur Beschleunigung der Ausführung von Operationen die Grafik-API Vulkan nutzt.
- Es wurden Varianten der Encodierer für die Formate H.264 und AV1 hinzugefügt, die die API D3D12 (Direct3D 12) für die hardwarebeschleunigte Codierung verwenden.
- Eine Variante des Encoders für das Format H.264/HEVC wurde hinzugefügt, die die in Rockchip-Chips verfügbaren Hardware-Codierungsmöglichkeiten nutzt.
- Demuxer für Multimedia-Container im HXVS- und HXVT-Format, die in IP-Kameras verwendet werden, wurden hinzugefügt.
- Ein Parser für Metadaten im EXIF-Format und eine begleitende API zur Analyse der Metadaten wurden implementiert.
- Der Utility ffprobe erhielt die Option „-codec“ („-c“), um eine bestimmte Implementierung des Decoders auszuwählen.
- Der Utility ffmpeg wurde die Unterstützung für den mosaikartigen Modus (tiled) zur Speicherung von Bildern im HEIF-Format hinzugefügt (wenn ein sehr großes Bild in Form einer Sammlung kleinerer Bilder gespeichert wird).
- Der alte HLS-Protokollhandler wurde entfernt.
- Neue Filter:
- drawvg zur Ausgabe von Vektorgrafik über Videobilder hinweg, unter Verwendung der Bibliothek libcairo.
- vpp_amf zur Größenänderung von Videos und zur Umwandlung von Farbräumen, unter Verwendung des AMD Advanced Media Framework zur hardwarebeschleunigten Verarbeitung.
- vf_scale_d3d12, vf_deinterlace_d3d12, vf_mestimate_d3d12 zur Skalierung, Deinterlacing und Bewegungsanalyse in Videos, unter Verwendung der Grafik-API Direct3D 12 für die Hardwarebeschleunigung.
- gfxcapture zum Erfassen von Fenster- und Bildschirminhalten auf der Windows-Plattform mithilfe der API Windows.Graphics.Capture.
- Ein Bitstream-Filter für LCEVC-Metadaten wurde hinzugefügt.
Quelle: opennet.ru
