Dopo dieci mesi di sviluppo, è disponibile il pacchetto multimediale FFmpeg 5.0, che include un insieme di applicazioni e una collezione di librerie per operazioni su vari formati multimediali (registrazione, conversione e decodifica di formati audio e video). Il pacchetto è distribuito sotto le licenze LGPL e GPL, lo sviluppo di FFmpeg procede parallelo al progetto MPlayer. Il significativo cambio di versione è giustificato da cambiamenti sostanziali nell'API e dal passaggio a un nuovo schema di rilascio, secondo il quale nuovi rilasci significativi verranno creati una volta all'anno, mentre i rilasci con supporto esteso saranno rilasciati ogni due anni. FFmpeg 5.0 sarà il primo rilascio LTS del progetto.
Tra le modifiche aggiunte in FFmpeg 5.0 si possono evidenziare:
- È stata effettuata una significativa pulizia delle vecchie API per la codifica e la decodifica ed è stato effettuato il passaggio a una nuova API N:M, che offre un'interfaccia di programmazione unificata per audio e video, così come codec separati per flussi in entrata e in uscita. Tutte le vecchie API precedentemente contrassegnate come obsolete sono state rimosse. È stata aggiunta una nuova API per i filtri bitstream. I formati e i codec sono stati separati: i demuxer dei contenitori multimediali non integrano più l'intero contesto dei decoder. Rimosse le API per la registrazione di codec e formati: tutti i formati sono ora sempre registrati.
- La libreria libavresample è stata rimossa.
- Aggiunta una API più semplice basata su AVFrame alla libreria libswscale.
- Migliorato significativamente il supporto per l'API grafica Vulkan.
- Aggiunto supporto per l'accelerazione hardware per la decodifica e codifica dei formati VP9 e ProRes utilizzando l'API VideoToolbox.
- Aggiunto supporto per l'architettura LoongArch, utilizzata nei processori Loongson, e supporto per le estensioni SIMD fornite in LoongArch, LSX e LASX. Per i codec H.264, VP8 e VP9 sono state implementate ottimizzazioni specifiche per LoongArch.
- Aggiunto supporto per il protocollo Concatf, che definisce un formato per la trasmissione di un elenco di risorse (‘ffplay concatf:split.txt’).
- Aggiunti nuovi decoder: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (immagini raster).
- Aggiunti nuovi encoder: bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. I parametri dell'encoder AAC sono stati modificati per ottenere una qualità superiore.
- Aggiunti muxer per contenitori multimediali: Westwood AUD, Argonaut Games CVG, AV1 (bitstream a bassa latenza).
- Aggiunti demuxer per contenitori multimediali: IMF, Argonaut Games CVG.
- Aggiunto un nuovo parser per il codec audio AMR (Adaptive Multi-Rate).
- Aggiunto un pacchetto di dati payload (packetizer) per la trasmissione di video non compressi utilizzando il protocollo RTP (RFC 4175).
- Nuovi filtri per video:
- segment e asegment — suddivisione di un flusso video o audio in più flussi, con separazione temporale o per fotogrammi.
- hsvkey e hsvhold — sostituiscono in video una parte della gamma di colori HSV con valori in gradazioni di grigio.
- grayworld — correzione del colore del video utilizzando un algoritmo basato sull'ipotesi del mondo grigio.
- scharr — applicazione dell'operatore Scharr (una variante dell'operatore Sobel con coefficienti diversi) al video in ingresso.
- morpho — consente di applicare diverse trasformazioni morfologiche al video.
- latency e alatency — misurano il ritardo minimo e massimo della filtrazione per un filtro precedentemente applicato.
- limitdiff — determina la differenza tra due o tre flussi video.
- xcorrelate — calcola la correlazione incrociata tra flussi video.
- varblur — sfocatura variabile del video, determinando il raggio di sfocatura dal secondo video.
- huesaturation — applicazione al video di modifiche di tonalità, saturazione o intensità.
- colorspectrum — generazione di un flusso video con uno spettro di colori specificato.
- libplacebo — applicazione per l'elaborazione di shader HDR dalla libreria libplacebo.
- vflip_vulkan, hflip_vulkan e flip_vulkan — varianti di filtri per la rotazione verticale o orizzontale del video (vflip, hflip e flip), implementate utilizzando l'API grafica Vulkan.
- yadif_videotoolbox — variante del filtro di deinterlacing yadif basata sul framework VideoToolbox.
- Nuovi filtri per audio:
- apsyclip — applicazione di un togli rumore psicoacustico al flusso audio.
- afwtdn — sopprime il rumore a banda larga.
- adecorrelate — applicazione di un algoritmo di decorrelazione al flusso in ingresso.
- atilt — applicazione di uno spostamento spettrale per una gamma di frequenze specificata.
- asdr — definizione della distorsione del segnale tra due flussi audio.
- aspectralstats — output delle statistiche con le caratteristiche spettrali di ciascun canale audio.
- adynamicsmooth — levigatura dinamica del flusso audio.
- adynamicequalizer — equalizzazione dinamica del flusso audio.
- anlmf — applicazione dell'algoritmo dei minimi quadrati al flusso audio.
Fonte: opennet.ru
