Na tien maanden ontwikkeling is het multimedia-pakket FFmpeg 5.0 beschikbaar, inclusief een set applicaties en een collectie bibliotheken voor bewerkingen met verschillende multimedia-formaten (opname, conversie en decodering van audio- en videoformaten). Het pakket wordt verspreid onder de LGPL- en GPL-licenties, en de ontwikkeling van FFmpeg gaat hand in hand met het MPlayer-project. De aanzienlijke wijziging in het versienummer wordt verklaard door substantiële veranderingen in de API en de overgang naar een nieuw release-schema, waarbij nieuwe significante versies elk jaar worden samengesteld en versies met uitgebreide ondersteuning om de twee jaar. FFmpeg 5.0 zal de eerste LTS-release van het project zijn.
Enkele van de wijzigingen die zijn toegevoegd in FFmpeg 5.0 zijn:
- Er is een aanzienlijke opruiming van oude API's voor codering en decodering uitgevoerd en de overgang naar een nieuwe N:M API voltooid, die een uniforme programmeerinterface voor audio en video biedt, evenals gescheiden codecs voor invoer- en uitvoerstreams. Alle oude API's die eerder als verouderd waren gemarkeerd, zijn verwijderd. Een nieuwe API voor bitstream-filters is toegevoegd. Formats en codecs zijn gescheiden — demultiplexers voor mediacontainers integreren niet langer de volledige context van de decoders. API's voor codec- en formatregistratie zijn verwijderd — alle formats zijn nu altijd geregistreerd.
- De bibliotheek libavresample is verwijderd.
- Er is een eenvoudigere API op basis van AVFrame aan de libswscale-bibliotheek toegevoegd.
- De ondersteuning voor de grafische API Vulkan is aanzienlijk verbeterd.
- Er is ondersteuning toegevoegd voor hardwarematige versnelling van de decodering en codering van VP9- en ProRes-formaten met gebruik van de VideoToolbox API.
- Ondersteuning toegevoegd voor de LoongArch-architectuur die wordt gebruikt in Loongson-processoren, evenals ondersteuning voor de SIMD-extensies LSX en LASX die door LoongArch worden aangeboden. Specifieke optimalisaties voor LoongArch zijn geïmplementeerd voor de codecs H.264, VP8 en VP9.
- Ondersteuning voor het Concatf-protocol is toegevoegd, dat een formaat definieert voor het overdragen van een lijst met bronnen (‘ffplay concatf:split.txt’).
- Nieuwe decoders zijn toegevoegd: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (rasters).
- Nieuwe encoders zijn toegevoegd: bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. De encoderinstellingen voor AAC zijn gewijzigd om een hogere kwaliteit te bereiken.
- Nieuwe multiplexer-mediacontainers (muxer) zijn toegevoegd: Westwood AUD, Argonaut Games CVG, AV1 (laag overhead bitstream).
- Nieuwe demultiplexer-mediacontainers (demuxer) zijn toegevoegd: IMF, Argonaut Games CVG.
- Er is een nieuwe parser toegevoegd voor de AMR (Adaptive Multi-Rate) audiocodec.
- Er is een payload-data verpakkingsfunctie (packetizer) toegevoegd voor het verzenden van ongecomprimeerde video via het RTP-protocol (RFC 4175).
- Nieuwe video-filters:
- segment en asegment — splitsing van een enkele video- of audiostream in meerdere streams op basis van tijd of frames.
- hsvkey en hsvhold — vervangen een deel van het kleurenspectrum HSV in video door waarden in grijstinten.
- grayworld — kleurcorrectie van video met behulp van een algoritme dat is gebaseerd op de gray world-hypothese.
- scharr — toepassing van de Scharr-operator (een variant van de Sobel-operator met andere coëfficiënten) op de invoervideo.
- morpho — maakt verschillende morfologische transformaties van video mogelijk.
- latency en alatency — meten de minimale en maximale filteringvertraging voor ранее toegepast filter.
- limitdiff — bepaalt het verschil tussen twee of drie videostreams.
- xcorrelate — berekent de kruiscorrelatie tussen videostreams.
- varblur — variabel vervagen van video met vastgestelde vervagingsradius uit een tweede video.
- huesaturation — toepassing van aanpassing van tint, verzadiging of intensiteit op video.
- colorspectrum — generatie van een videostream met een opgegeven kleurenpalet.
- libplacebo — toepassing voor het verwerken van HDR-shaders uit de libplacebo-bibliotheek.
- vflip_vulkan, hflip_vulkan en flip_vulkan — alternatieven voor filters voor verticale of horizontale flip van video (vflip, hflip en flip), geïmplementeerd met behulp van de Vulkan grafische API.
- yadif_videotoolbox — variant van de yadif deinterlacing-filter op basis van het VideoToolbox-framework.
- Nieuwe geluid-filters:
- apsyclip — toepassing van een psychoakoestische afsnijdfilter op de audiostream.
- afwtdn — onderdrukt breedbandruis.
- adecorrelate — toepassing van een decorrelatie-algoritme op de invoerstroom.
- atilt — toepassing van spectrale verschuiving voor een opgegeven frequentiebereik.
- asdr — bepaling van signaalvervorming tussen twee audiostreams.
- aspectralstats — uitvoer van statistieken met spectrale kenmerken van elk audiokanaal.
- adynamicsmooth — dynamische smoothing van de audiostream.
- adynamicequalizer — dynamische equalizing van de audiostream.
- anlmf — toepassing van het algoritme van de kleinste kwadraten op de audiostream.
Bron: opennet.ru
