Dopo dieci mesi di sviluppo è disponibile il pacchetto multimediale FFmpeg 5.0, che comprende un insieme di applicazioni e una raccolta di librerie per operazioni su diversi formati multimediali (registrazione, conversione e decodifica di formati audio e video). Il pacchetto è distribuito sotto le licenze LGPL e GPL, lo sviluppo di FFmpeg viene effettuato adiacente al progetto MPlayer. Il cambiamento significativo nel numero di versione è spiegato da cambiamenti significativi nell'API e dal passaggio a un nuovo schema di generazione delle versioni, in base al quale nuove versioni significative verranno generate una volta all'anno e versioni con tempo di supporto esteso - una volta ogni due anni. FFmpeg 5.0 sarà la prima versione LTS del progetto.
Tra le modifiche aggiunte a FFmpeg 5.0 ci sono:
- È stata effettuata una pulizia significativa delle vecchie API per la codifica e la decodifica ed è stata effettuata una transizione alla nuova API N:M, che offre un'unica interfaccia software per audio e video, oltre a separare i codec per i flussi di input e output . Rimosse tutte le vecchie API precedentemente contrassegnate come deprecate. Aggiunta una nuova API per i filtri bitstream. Formati e codec separati: i decompressori dei contenitori multimediali non incorporano più l'intero contesto dei decodificatori. Le API per la registrazione di codec e formati sono state rimosse: ora tutti i formati sono sempre registrati.
- La libreria libavresample è stata rimossa.
- Una API più semplice basata su AVFrame è stata aggiunta alla libreria libswscale.
- Supporto notevolmente migliorato per l'API grafica Vulkan.
- Aggiunto supporto per l'accelerazione hardware della decodifica e codifica dei formati VP9 e ProRes utilizzando l'API VideoToolbox.
- Aggiunto il supporto per l'architettura LoongArch utilizzata nei processori Loongson, nonché il supporto per le estensioni LSX e LASX SIMD fornite in LoongArch. Sono state implementate ottimizzazioni specifiche di LoongArch per i codec H.264, VP8 e VP9.
- Aggiunto il supporto per il protocollo Concatf, che definisce un formato per il trasferimento di un elenco di risorse (“ffplay concatf:split.txt”).
- Aggiunti nuovi decoder: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (immagini raster).
- Sono stati aggiunti nuovi codificatori: bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. Le impostazioni del codificatore AAC sono state modificate per ottenere una qualità superiore.
- Aggiunti packer di contenitori multimediali (muxer): Westwood AUD, Argonaut Games CVG, AV1 (bitstream a basso costo).
- Aggiunti decompressori di contenitori multimediali (demuxer): IMF, Argonaut Games CVG.
- Aggiunto un nuovo parser per il codec audio AMR (Adaptive Multi-Rate).
- Aggiunto packer dati payload (packetizer) per la trasmissione di video non compressi utilizzando il protocollo RTP (RFC 4175).
- Nuovi filtri video:
- segmento e asegmento: divisione di un flusso con video o audio in più flussi, separati da tempo o fotogrammi.
- hsvkey e hsvhold: sostituiscono parte della gamma di colori HSV nel video con valori in scala di grigi.
- greyworld: correzione del colore video utilizzando un algoritmo basato sull'ipotesi del mondo grigio.
- scharr — applicazione dell'operatore Schar (una variante dell'operatore Sobel con coefficienti diversi) al video in ingresso.
- morpho: consente di applicare varie trasformazioni morfologiche al video.
- latenza e alatenza: misura il ritardo di filtraggio minimo e massimo per un filtro applicato in precedenza.
- limitdiff: determina la differenza tra due o tre flussi video.
- xcorrelate: calcola la correlazione incrociata tra i flussi video.
- varblur: sfocatura video variabile con definizione del raggio di sfocatura dal secondo video.
- tonalitàsaturazione: applica le regolazioni di tonalità, saturazione o intensità al video.
- colorspectrum: generazione di un flusso video con un determinato spettro di colori.
- libplacebo - applicazione per l'elaborazione degli shader HDR dalla libreria libplacebo.
- vflip_vulkan, hflip_vulkan e flip_vulkan sono varianti dei filtri di capovolgimento video verticali o orizzontali (vflip, hflip e flip), implementati utilizzando l'API grafica Vulkan.
- yadif_videotoolbox è una variante del filtro di deinterlacciamento yadif basato sul framework VideoToolbox.
- Nuovi filtri audio:
- apsyclip - applicazione di un clipper psicoacustico a un flusso audio.
- afwtdn - Sopprime il rumore a banda larga.
- adecorrelate: applica l'algoritmo di decorrelazione al flusso di input.
- tilt - applica uno spostamento spettrale per una determinata gamma di frequenze.
- asdr - determinazione della distorsione del segnale tra due flussi audio.
- spectralstats: statistiche di output con le caratteristiche spettrali di ciascun canale audio.
- adynamicsmooth: livellamento dinamico del flusso sonoro.
- adynamicequalizer: equalizzazione dinamica del flusso sonoro.
- anlmf: applica l'algoritmo dei minimi quadrati a un flusso audio.
Fonte: opennet.ru