Po prawie roku prac dostępny jest pakiet multimedialny FFmpeg 8.0, zawierający zbiór aplikacji oraz kolekcję bibliotek do operacji na różnych formatach multimedialnych (nagrywanie, konwersja i dekodowanie formatów dźwiękowych i wideo). Pakiet jest napisany w języku C i jest dystrybuowany na licencjach LGPL i GPL.
Wśród zmian w FFmpeg 8.0:
- Na bazie interfejsu graficznego API Vulkan 1.3 zaimplementowano kodeki FFV1 (kodowanie i dekodowanie) oraz ProRes RAW (tylko dekodowanie), charakteryzujące się znacznym zwiększeniem wydajności dzięki równoległemu przetwarzaniu operacji. W fazie testów znajdują się enkodery i dekodery oparte na interfejsie API Vulkan dla formatów ProRes i VC-2. W kodekach opartych na API Vulkan wykorzystano cieniowanie obliczeniowe oraz zapewniono przyspieszenie sprzętowe.
- Wykorzystano rozszerzenia API graficznego Vulkan do przyspieszenia sprzętowego dekodowania wideo VP9, VVC (opartego na VAAPI) i H.264 (na bazie OpenHarmony).
- Wykorzystano rozszerzenia API graficznego Vulkan do przyspieszenia sprzętowego kodowania wideo AV1 i H.264 (na bazie OpenHarmony).
- Dodano dekodery dla formatów kodowania wideo APV (Advanced Professional Video), ProRes RAW oraz RealVideo 6.0.
- Dodano dekodery dla formatów kodowania dźwięku Sanyo LD-ADPCM, Xbox ADPCM IMA oraz G.728.
- Zrealizowano enkoder formatu APV (Advanced Professional Video), zbudowany na bazie biblioteki libopenapv.
- W dekoderze formatu wideo VVC (Versatile Video Coding, H.266) zaimplementowano wsparcie dla rozszerzeń IBC (Inter Block Copy), SSC (Screen Content Coding) oraz ACT (Adaptive Color Transform), a także trybu palety. Dodano wariant dekodera formatu wideo VVC, korzystający z VAAPI. Umożliwiono korzystanie z formatu VVC w kontenerze multimedialnym Matroska.
- Do biblioteki libx265 dodano wsparcie dla kodowania kanału alfa (przezroczystość).
- Dodano interfejs do wykorzystania sprzętowo przyspieszonych enkoderów i dekoderów z projektu OpenHarmony.
- Dodano wsparcie dla kodowania animowanych obrazów w formacie JPEG XL z wykorzystaniem biblioteki libjxl.
- Ulepszono wsparcie dla wielościeżkowego audio i wideo w formacie FLV v2.
- Do pakietu kontenerów MP4 dodano wsparcie dla formatów AV1 i APV.
- Usunięto wyłączenie auto-wektoryzacji przy kompilacji w GCC na systemach x86, ARM i AArch64.
- Zrealizowano optymalizacje assemblera oparte na instrukcjach AVX-512, które znacznie przyspieszyły niektóre operacje wykorzystywane przy dekodowaniu wideo.
- Nowe filtry:
- whisper do automatycznego rozpoznawania mowy za pomocą modelu AI Whisper.
- colordetect do określania efektywnego zakresu wartości i trybu kanału alfa.
- pad_cuda do dodawania pól do wejściowego strumienia wideo z użyciem CUDA.
- scale_d3d11 do zmiany rozmiaru wideo, wykorzystując interfejs API graficznego Direct3D 11.
- Wsparcie dla wersji biblioteki OpenSSL starszych niż 1.1.0 zostało zakończone.
- Wsparcie dla asemblera yasm zostało zakończone (pozostawiono tylko wsparcie dla nasm).
- Kodery oparte na interfejsie API OpenMAX (Open Media Acceleration) zostały oznaczone jako niezalecane.
- Weryfikacja włączona domyślnie. certyfikatów TLS (ze względu na zmianę zachowania podczas przetwarzania TLS, numer wersji FFmpeg został znacznie zmieniony).
Źródło: opennet.ru
