Dopo cinque mesi di sviluppo è disponibile il pacchetto multimediale FFmpeg 7.0, che include un insieme di applicazioni e una raccolta 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 avviene parallelamente al progetto MPlayer.
Tra le modifiche apportate in FFmpeg 7.0, si possono evidenziare:
- Nell'utilità della riga di comando ffmpeg è garantita l'esecuzione parallela delle operazioni di estrazione/imballaggio dei contenitori multimediali, decodifica, codifica e applicazione di filtri.
- È stata implementata la supporto per la codifica e decodifica video nel formato MPEG-5 (EVC — Essential Video Coding), utilizzando la libreria esterna libxevd.
- Sono stati aggiunti estrattori e imballatori di contenitori multimediali (demuxer/muxer) per il formato QOA (Quite OK Audio), utilizzato per la trasmissione audio senza perdita di qualità. Si afferma che la decodifica QOA avvenga tre volte più velocemente di Ogg-Vorbis raggiungendo una qualità e un livello di compressione superiori rispetto a ADPCM.
- Sono stati aggiunti estrattori e imballatori di contenitori multimediali (demuxer/muxer) per il formato IAMF (Immersive Audio Model and Format), che definisce un contenitore per la distribuzione del suono surround. Il formato prevede la trasmissione di informazioni aggiuntive necessarie per il funzionamento degli algoritmi di ricreazione della scena audio e miscelazione del suono, e tiene conto della diffusione dei segnali sonori nello spazio tridimensionale per ricreare un suono il più vicino possibile al naturale. È supportato il metadato IAMF per i formati MP4 e ISOBMFF.
- È stato aggiunto un decodificatore sperimentale per il formato VVC (Versatile Video Coding), noto anche come standard di compressione video H.266, sviluppato congiuntamente dai gruppi di lavoro MPEG (ISO/IEC JTC 1) e VCEG (ITU-T), con la partecipazione di aziende come Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm e Sony. H.266 succede a H.265 (HEVC) e garantisce un'elevata efficienza nella trasmissione e conservazione di tutte le risoluzioni dello schermo (da SD e HD a 4K e 8K), supportando video con ampio intervallo dinamico (HDR, High Dynamic Range) e video panoramico in modalità 360 gradi.
- È stata implementata la possibilità di utilizzare l'API D3D12VA (Direct 3D 12 Video Encoding) per l'accelerazione hardware della decodifica dei formati H264, HEVC, VP9, AV1, MPEG-2 e VC1.
- Nell'utility ffplay è stata aggiunta la supporto per l'accelerazione hardware del decoding, utilizzando le API Vulkan e libplacebo.
- Aggiunta la supporto per il protocollo Content URI, utilizzato sulla piattaforma Android.
- Aumentate le esigenze dell'ambiente di compilazione: per compilare FFmpeg ora è necessario un compilatore che supporti lo standard C11. In una delle prossime versioni si prevede di utilizzare C17 come versione minima supportata.
- Per i codificatori basati su QSV (Intel Quick Sync Video), il metodo di controllo del bitrate predefinito è stato cambiato da VBR (bitrate variabile) a CQP (bitrate costante).
- Aggiunto un nuovo demuxer per contenitori multimediali DVD-Video, basato sull'utilizzo delle librerie libdvdnav e libdvdread del progetto VideoLAN.
- Implementata la possibilità di trasmettere metadati in pacchetti (PacketTypeMetadata) nel formato flv.
- Aggiunto il codificatore DXV DXT1.
- Aggiunto il decodificatore LEAD MCMP.
- Aggiunti i muxer per contenitori multimediali: RCWT (Raw Captions with Time) e AEA.
- Per i formati MP4 e ISOBMFF implementata la possibilità di includere metadati AVE (Ambient Viewing Environment).
- Implementato il supporto per la tecnologia AFGS1 (AOMedia Film Grain Synthesis 1), utilizzata nella specifica AV1 Film Grain e destinata ad aumentare l'efficacia delle immagini granulose.
- Aggiunto il supporto per immagini statiche nel formato HEIF e AVIF, oltre a mosaici di immagini statiche.
- Per il formato AV1 implementato il profilo Dolby Vision.
- Implementato il supporto per il passaggio di metadati HDR10 durante la codifica tramite le librerie libx264, libx265 e libsvtav1.
- Aggiunte ottimizzazioni per velocizzare il lavoro con il formato HEVC su architetture AArch64 e Loongarch. Apportate ottimizzazioni delle prestazioni per velocizzare la codifica e la decodifica dei formati AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1 e VP8 su sistemi con architettura RISC-V.
- Nuovi filtri:
- tiltandshift — trasformazione video in stile Tilt-Shift, in cui l'attenzione si concentra su una parte specifica dell'immagine e il resto è sfocato per creare un'impressione di giocattolo.
- quirc — rilevamento e decodifica dei codici QR tramite la libreria libquirc.
- fsync — sincronizzazione dei fotogrammi video basata su informazioni provenienti da un file esterno.
- aap — utilizza l'algoritmo Affine Projection per determinare la somiglianza dei frammenti audio.
- Aggiunto il backend dnn per la creazione di filtri che utilizzano modelli di apprendimento automatico, caricabili tramite libtorch.
- Aggiunto un filtro bitstream showinfo per l'output di debug delle informazioni sui pacchetti.
- Aggiunto un gestore qrencodesrc per l'inserimento di codici QR.
- Nell'utilità ffmpeg è stata implementata la supporto per i decodificatori loopback, è stato consentito l'uso dell'opzione «-bsf» per i flussi in ingresso e in uscita, rimosse le opzioni obsolete «-psnr» e «-map_channel».
- Nell'utilità ffprobe è stata implementata l'opzione «-show_stream_groups option» e fornito output di metadati quando si utilizza l'opzione «-export_side_data film_grain».
Fonte: opennet.ru
