Nach zehnmonatiger Entwicklungszeit ist das Multimediapaket FFmpeg 5.0 verfügbar, das eine Reihe von Anwendungen und eine Sammlung von Bibliotheken für den Betrieb verschiedener Multimediaformate (Aufzeichnen, Konvertieren und Dekodieren von Audio- und Videoformaten) enthält. Das Paket wird unter LGPL- und GPL-Lizenzen vertrieben, die FFmpeg-Entwicklung erfolgt neben dem MPlayer-Projekt. Die erhebliche Änderung der Versionsnummer erklärt sich durch erhebliche Änderungen in der API und den Übergang zu einem neuen Release-Generierungsschema, nach dem einmal im Jahr neue bedeutende Releases und alle zwei Jahre Releases mit verlängerter Supportzeit generiert werden. FFmpeg 5.0 wird die erste LTS-Version des Projekts sein.
Zu den in FFmpeg 5.0 hinzugefügten Änderungen gehören:
- Es wurde eine umfassende Bereinigung der alten APIs für Kodierung und Dekodierung durchgeführt und ein Übergang zur neuen N:M-API durchgeführt, die eine einzige Softwareschnittstelle für Audio und Video sowie getrennte Codecs für Eingabe- und Ausgabeströme bietet . Alle alten APIs, die zuvor als veraltet markiert waren, wurden entfernt. Eine neue API für Bitstream-Filter hinzugefügt. Getrennte Formate und Codecs – Dekomprimierer für Mediencontainer betten nicht mehr den gesamten Kontext von Decodern ein. APIs zur Registrierung von Codecs und Formaten wurden entfernt – alle Formate werden jetzt immer registriert.
- Die libavresample-Bibliothek wurde entfernt.
- Der libswscale-Bibliothek wurde eine einfachere AVFrame-basierte API hinzugefügt.
- Deutlich verbesserte Unterstützung für die Vulkan-Grafik-API.
- Unterstützung für Hardwarebeschleunigung der Dekodierung und Kodierung von VP9- und ProRes-Formaten mithilfe der VideoToolbox-API hinzugefügt.
- Unterstützung für die in Loongson-Prozessoren verwendete LoongArch-Architektur sowie Unterstützung für die in LoongArch bereitgestellten LSX- und LASX-SIMD-Erweiterungen hinzugefügt. LoongArch-spezifische Optimierungen wurden für die Codecs H.264, VP8 und VP9 implementiert.
- Unterstützung für das Concatf-Protokoll hinzugefügt, das ein Format für die Übertragung einer Liste von Ressourcen definiert („ffplay concatf:split.txt“).
- Neue Decoder hinzugefügt: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (Rasterbilder).
- Neue Encoder wurden hinzugefügt: Bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. Die Einstellungen des AAC-Encoders wurden geändert, um eine höhere Qualität zu erreichen.
- Mediencontainer-Packer (Muxer) hinzugefügt: Westwood AUD, Argonaut Games CVG, AV1 (Bitstream mit geringem Overhead).
- Mediencontainer-Entpacker (Demuxer) hinzugefügt: IMF, Argonaut Games CVG.
- Ein neuer Parser für den AMR-Audiocodec (Adaptive Multi-Rate) hinzugefügt.
- Nutzdatenpacker (Packetizer) für die Übertragung unkomprimierter Videos mithilfe des RTP-Protokolls (RFC 4175) hinzugefügt.
- Neue Videofilter:
- segment und asegment – Aufteilung eines Streams mit Video oder Audio in mehrere Streams, getrennt durch Zeit oder Frames.
- hsvkey und hsvhold – Ersetzen Sie einen Teil des HSV-Farbbereichs im Video durch Graustufenwerte.
- greyworld – Video-Farbkorrektur mit einem Algorithmus, der auf der Gray-World-Hypothese basiert.
- scharr – Anwendung des Schar-Operators (eine Variante des Sobel-Operators mit unterschiedlichen Koeffizienten) auf das Eingabevideo.
- Morpho – ermöglicht Ihnen, verschiedene morphologische Transformationen auf das Video anzuwenden.
- Latenz und Latenz – misst die minimale und maximale Filterverzögerung für einen zuvor angewendeten Filter.
- limitdiff – bestimmt den Unterschied zwischen zwei oder drei Videostreams.
- xcorrelate – Berechnet die Kreuzkorrelation zwischen Videostreams.
- varblur – variable Videounschärfe mit Definition des Unschärferadius aus dem zweiten Video.
- Huesaturation – Wenden Sie Farbton-, Sättigungs- oder Intensitätsanpassungen auf das Video an.
- Farbspektrum – Generierung eines Videostreams mit einem bestimmten Farbspektrum.
- libplacebo – Anwendung zur Verarbeitung von HDR-Shadern aus der libplacebo-Bibliothek.
- vflip_vulkan, hflip_vulkan und flip_vulkan sind Varianten vertikaler oder horizontaler Video-Flip-Filter (vflip, hflip und flip), die mithilfe der Vulkan-Grafik-API implementiert werden.
- yadif_videotoolbox ist eine Variante des yadif-Deinterlacing-Filters, die auf dem VideoToolbox-Framework basiert.
- Neue Soundfilter:
- apsyclip – Anwendung eines psychoakustischen Clippers auf einen Audiostream.
- afwtdn – Unterdrückt Breitbandrauschen.
- adecorrelate – Anwenden des Dekorrelationsalgorithmus auf den Eingabestream.
- atilt – wendet eine spektrale Verschiebung für einen bestimmten Frequenzbereich an.
- ASDR – Bestimmung der Signalverzerrung zwischen zwei Audiostreams.
- Aspectralstats – Ausgabestatistiken mit den spektralen Eigenschaften jedes Audiokanals.
- adynamicsmooth – dynamische Glättung des Schallstroms.
- adynamicequalizer – dynamische Entzerrung des Schallstroms.
- anlmf – Wenden Sie den Algorithmus der kleinsten mittleren Quadrate auf einen Audiostream an.
Source: opennet.ru