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 con le licenze LGPL e GPL, e lo sviluppo di FFmpeg avviene in parallelo con il progetto MPlayer.
Le modifiche introdotte in FFmpeg 7.0 includono:
- Nell'utilità da riga di comando ffmpeg è stata garantita l'esecuzione parallela delle operazioni di estrazione/inserimento 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 demuxer e 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 rispetto a Ogg-Vorbis, raggiungendo un livello di qualità e compressione superiore rispetto all'ADPCM.
- Aggiunti demuxer e muxer per i contenitori multimediali nel formato IAMF (Immersive Audio Model and Format), che definisce il contenitore per la distribuzione dell'audio spaziale. Il formato prevede la trasmissione di informazioni aggiuntive necessarie per il funzionamento degli algoritmi di ricostruzione della scena audio e di missaggio del suono, e considera la diffusione dei segnali sonori nello spazio tridimensionale per ricreare un'esperienza sonora il più vicina possibile alla realtà. È fornito supporto per i metadati IAMF nei formati MP4 e ISOBMFF.
- 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 sostituisce H.265 (HEVC) e garantisce un'elevata efficienza nella trasmissione e archiviazione 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'utilità ffplay è stato aggiunto il supporto per l'accelerazione hardware della decodifica, utilizzando l'API Vulkan e libplacebo.
- È stato aggiunto il supporto per il protocollo Content URI, utilizzato nella piattaforma Android.
- Sono stati aumentati i requisiti ambientali per la compilazione: ora è necessario un compilatore che supporti lo standard C11 per compilare FFmpeg. 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 gestione del bitrate predefinito è stato cambiato da VBR (bitrate variabile) a CQP (bitrate costante).
- È stato aggiunto un nuovo estrattore di contenitori video DVD-Video, basato sull'uso delle librerie libdvdnav e libdvdread del progetto VideoLAN.
- Nell'implementazione del formato flv è stata aggiunta la possibilità di trasmettere metadati nei pacchetti (PacketTypeMetadata).
- È stato aggiunto il codificatore DXV DXT1.
- È stato aggiunto il decodificatore LEAD MCMP.
- Sono stati aggiunti i pacchetti di contenitori multimediali (muxer) RCWT (Raw Captions with Time) e AEA.
- Per i formati MP4 e ISOBMFF è stata implementata la possibilità di includere metadati AVE (Ambient Viewing Environment).
- Implementata la supporto per la tecnologia AFGS1 (AOMedia Film Grain Synthesis 1), utilizzata nella specifica AV1 Film Grain e progettata per migliorare l'efficacia delle immagini granulose.
- Aggiunto il supporto per immagini statiche (still) nei formati HEIF e AVIF, oltre a immagini statiche mosaicate.
- Per il formato AV1 è stato implementato il profilo Dolby Vision.
- Garantito 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. Effettuate ottimizzazioni delle prestazioni per accelerare la codifica e decodifica dei formati AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1 e VP8 su sistemi con architettura RISC-V.
- Nuovi filtri:
- tiltandshift — conversione video in stile Tilt-Shift, in cui l'attenzione si concentra su una parte specifica dell'immagine, mentre il resto del contenuto viene sfocato per creare un'impressione di oggettistica.
- quirc — identificazione e decodifica di 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 di frammenti audio.
- Aggiunto il backend dnn per creare filtri che utilizzano modelli di machine learning, caricati tramite libtorch.
- Aggiunto il filtro bitstream showinfo per l'output di debug delle informazioni sui pacchetti.
- Aggiunto il gestore qrencodesrc per l'inserimento di codici QR.
- Nell'utility ffmpeg è stata implementata la supporto per i decoder loopback, è consentito l'uso dell'opzione «-bsf» per i flussi di input e output, sono state rimosse le opzioni obsolete «-psnr» e «-map_channel».
- Nell'utility ffprobe è stata implementata l'opzione «-show_stream_groups option» ed è stato garantito l'output dei metadati utilizzando l'opzione «-export_side_data film_grain».
Fonte: opennet.ru
