Po pięciu miesiącach prac rozwojowych dostępny jest pakiet multimedialny FFmpeg 7.0, który obejmuje zestaw aplikacji oraz zbiór bibliotek do operacji na różnych formatach multimedialnych (nagrywanie, konwersja i dekodowanie formatów dźwiękowych i wideo). Pakiet jest dystrybuowany na licencjach LGPL i GPL, a rozwój FFmpeg prowadzony jest równolegle z projektem MPlayer.
Wśród zmian wprowadzonych w FFmpeg 7.0 można wyróżnić:
- W narzędziu wiersza poleceń ffmpeg zapewniono równoległe wykonywanie operacji rozpakowywania/pakowania kontenerów multimedialnych, dekodowania, kodowania i stosowania filtrów.
- Wdrożono wsparcie dla kodowania i dekodowania wideo w formacie MPEG-5 (EVC — Essential Video Coding) z wykorzystaniem zewnętrznej biblioteki libxevd.
- Dodano rozpakowywacze i pakowacze kontenerów multimedialnych (demuxer/muxer) dla formatu QOA (Quite OK Audio), wykorzystywanego do przesyłania dźwięku bez utraty jakości. Twierdzi się, że dekodowanie QOA odbywa się trzy razy szybciej niż Ogg-Vorbis, osiągając przy tym wyższą jakość i poziom kompresji w porównaniu do ADPCM.
- Dodano rozpakowywacze i pakowacze kontenerów multimedialnych (demuxer/muxer) dla formatu IAMF (Immersive Audio Model and Format), który definiuje kontener do dystrybucji dźwięku przestrzennego. Format umożliwia przesyłanie dodatkowych informacji niezbędnych do działania algorytmów rekonstrukcji sceny dźwiękowej oraz miksowania dźwięku, a także uwzględnia rozprzestrzenianie sygnałów dźwiękowych w przestrzeni trójwymiarowej, aby odtworzyć dźwięk, maksymalnie zbliżony do naturalnego. Zrealizowano wsparcie dla metadanych IAMF dla formatów MP4 i ISOBMFF.
- Dodano eksperymentalny dekoder dla formatu VVC (Versatile Video Coding), znanego również jako standard kompresji wideo H.266, opracowanego wspólnie przez grupy robocze MPEG (ISO/IEC JTC 1) i VCEG (ITU-T) z udziałem takich firm jak Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm i Sony. H.266 zastępuje H.265 (HEVC) i zapewnia wysoką efektywność przesyłania i przechowywania wszystkich rozdzielczości ekranowych (od SD i HD po 4K i 8K), wspiera wideo z rozszerzonym zakresem dynamicznym (HDR, High Dynamic Range) oraz panoramiczne wideo w trybie 360 stopni.
- Zrealizowano możliwość korzystania z API D3D12VA (Direct 3D 12 Video Encoding) do sprzętowego przyspieszania dekodowania formatów H264, HEVC, VP9, AV1, MPEG-2 i VC1.
- Do programu ffplay dodano wsparcie dla sprzętowego przyspieszania dekodowania przy użyciu API Vulkan i libplacebo.
- Dodano wsparcie dla protokołu Content URI, stosowanego na platformie Android.
- Podniesiono wymagania środowiskowe do kompilacji — do kompilacji FFmpeg teraz potrzebny jest kompilator z obsługą standardu C11. W jednym z kolejnych wydań planuje się użycie wersji C17 jako minimalnie wspieranej.
- Dla kodeków opartych na QSV (Intel Quick Sync Video) domyślna metoda kontroli bitrate'u została zmieniona z VBR (zmienny bitrate) na CQP (stały bitrate).
- Dodano nowy dekompresor kontenerów multimedialnych DVD-Video, oparty na bibliotekach libdvdnav i libdvdread z projektu VideoLAN.
- W realizacji formatu flv dodano możliwość przesyłania metadanych w pakietach (PacketTypeMetadata).
- Dodano kodek DXV DXT1.
- Dodano dekoder LEAD MCMP.
- Dodano multiplexer (muxer) RCWT (Raw Captions with Time) i AEA.
- Dla formatów MP4 i ISOBMFF zrealizowano możliwość włączenia metadanych AVE (Ambient Viewing Environment).
- Zrealizowano wsparcie dla technologii AFGS1 (AOMedia Film Grain Synthesis 1), używanej w specyfikacji AV1 Film Grain i mającej na celu zwiększenie efektywności ziarnistych obrazów.
- Dodano wsparcie dla statycznych (still) obrazów w formatach HEIF i AVIF, a także w mozaikowych obrazach statycznych.
- Dla formatu AV1 zrealizowano profil Dolby Vision.
- Zapewniono wsparcie dla przesyłania metadanych HDR10 podczas kodowania przez biblioteki libx264, libx265 i libsvtav1.
- Dodano optymalizacje do przyspieszenia pracy z formatem HEVC na architekturach AArch64 i Loongarch. Wprowadzono optymalizacje wydajności do przyspieszenia kodowania i dekodowania formatów AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1 i VP8 na systemach z architekturą RISC-V.
- Nowe filtry:
- tiltandshift — przekształcenie wideo w stylu Tilt-Shift, w którym uwaga koncentruje się na określonej części obrazu, a reszta zawartości jest rozmywana, aby stworzyć wrażenie zabawkowości.
- quirc — identyfikacja i dekodowanie kodów QR przy użyciu biblioteki libquirc.
- fsync — synchronizacja klatek wideo na podstawie informacji z zewnętrznego pliku.
- aap — używa algorytmu Affine Projection do określania podobieństwa fragmentów dźwiękowych.
- Dodano backend dnn do tworzenia filtrów, które wykorzystują modele uczenia maszynowego wczytywane z użyciem libtorch.
- Dodano filtry bitstream showinfo do debugowania informacji o pakietach.
- Dodano obsługę qrencodesrc do wstawiania kodów QR.
- W narzędziu ffmpeg wprowadzono wsparcie dla dekoderów loopback, umożliwiono użycie opcji „-bsf” dla strumieni wejściowych i wyjściowych, usunięto przestarzałe opcje „-psnr” i „-map_channel”.
- W narzędziu ffprobe wprowadzono opcję „-show_stream_groups option” oraz zapewniono wyjście metadanych przy użyciu opcji „-export_side_data film_grain”.
Źródło: opennet.ru
