Wiosną 2024 roku zadebiutował FFmpeg 7.0 „Dijkstra” – nowa, duża stabilna wersja tego niezwykle popularnego narzędzia. To aktualizacja, która przynosi nie tylko obsługę nowych kodeków, ale także gruntowne zmiany pod maską, w tym rewolucyjną wielowątkowość wiersza poleceń. Dla twórców, streamerów i administratorów to szansa na szybszą i bardziej wydajną pracę. Sprawdźmy, co dokładnie się zmieniło i czy to dobry moment na aktualizację.
FFmpeg od lat pozostaje fundamentem przetwarzania multimediów w tysiącach projektów – od prostych skryptów po wielkie platformy streamingowe. Wersja 7.0 „Dijkstra” (nazwana na cześć wybitnego pioniera informatyki, Edsgera Dijkstry) to coś więcej niż tylko kolejny numer w portfolio. To wydanie przynosi sporo praktycznych nowości: od lepszej obsługi nowoczesnych kodeków, przez wyższą wydajność, aż po wygodniejsze korzystanie z wiersza poleceń. Warto przyjrzeć się tym zmianom z bliska.
Oficjalne wydanie i cykl rozwojowy
FFmpeg 7.0 został wydany po intensywnym okresie prac deweloperskich. Zespół skupił się nie tylko na wdrażaniu nowinek, ale przede wszystkim na poprawie stabilności i gruntownym sprzątaniu przestarzałego kodu. Dla użytkowników oznacza to stabilniejszą bazę do codziennej pracy oraz lepszą kompatybilność z nowoczesnym sprzętem.
Warto pamiętać, że nowa gałąź będzie regularnie wspierana i łatana. Przejście na wersję 7.x to naturalny krok dla każdego, kto chce korzystać z najnowszych optymalizacji sprzętowych i poprawek bezpieczeństwa.
Nowe kodeki: AV1, VVC i nowoczesne formaty
FFmpeg od zawsze pełni rolę pomostu między nowymi standardami a światem open source. W tym wydaniu ta rola jest widoczna jeszcze wyraźniej. Oto najważniejsze nowości w obszarze obsługi wideo i audio:
1. AV1 – stabilna ewolucja i lepsza akceleracja
Wsparcie dla otwartego kodeka AV1 stale się rozwija. FFmpeg usprawnia integrację z kluczowymi bibliotekami:
- libaom – oficjalna biblioteka zyskała lepsze wsparcie dla akceleracji sprzętowej na nowoczesnych układach graficznych.
- SVT-AV1 – popularny enkoder działa teraz stabilniej i oferuje lepszy stosunek jakości do prędkości kodowania.
- dav1d – dekoder AV1 został zoptymalizowany pod kątem jeszcze szybszego odtwarzania materiałów bez nadmiernego obciążania procesora.
Z analiz branżowych, m.in. na portalu Phoronix, wynika, że optymalizacje te przekładają się na płynniejsze dekodowanie AV1 na GPU (np. przy użyciu Vulkan) oraz mniejsze zużycie energii na urządzeniach przenośnych.
2. VVC (H.266) – natywny dekoder wkracza do gry
Standard VVC (Versatile Video Coding), czyli następca HEVC, doczekał się w FFmpeg 7.0 eksperymentalnego, natywnego dekodera. To kamień milowy dla adopcji tego formatu. Choć technologia ta wciąż się rozwija, już teraz pozwala na testowanie niesamowitej wydajności kompresji, szczególnie przy materiałach 4K i 8K.
Wdrożenie obsługi VVC to ważny krok naprzód, choć standard ten wciąż wymaga dopracowania. Nowe wydanie FFmpeg daje jednak świetną okazję do testowania i eksperymentowania z tym kodekiem w rzeczywistych warunkach.
3. EVC (MPEG-5) oraz IAMF
W nowej wersji pojawiło się także wsparcie dla EVC (Essential Video Coding), który ma szansę stać się ciekawą alternatywą na rynku mobilnym dzięki dobrej kompresji przy rozsądnych wymaganiach obliczeniowych. Dodatkowo FFmpeg wprowadził pełną obsługę formatu audio IAMF (Immersive Audio Model and Formats), co ucieszy twórców pracujących z dźwiękiem przestrzennym 3D.
4. Ulepszenia w klasycznych kodekach
Nie zapomniano o starszych, ale wciąż najpopularniejszych formatach:
- H.264/x264 – poprawiono stabilność i wprowadzono drobne optymalizacje kodu.
- H.265/x265 – ulepszono obsługę metadanych HDR (w tym Dolby Vision i HDR10+) oraz zoptymalizowano proces kodowania w wymagających profilach jakościowych.
- VP9 – poprawki w dekodowaniu przekładają się na stabilniejsze odtwarzanie wideo o wysokiej rozdzielczości.
Filtry wideo i przetwarzanie obrazu
FFmpeg słynie z potężnych filtrów. W nowej wersji deweloperzy skupili się na poprawie jakości przetwarzania i integracji z nowoczesnymi technologiami:
1. Zaawansowane skalowanie z nnedi3
Filtr nnedi3, oparty na zaawansowanych algorytmach interpolacji, pozwala na doskonałe skalowanie i deinterlacing materiałów wideo. Świetnie sprawdza się przy rekonstrukcji starszych nagrań, minimalizując powstawanie poszarpanych krawędzi i szumów.
Przykład użycia:
ffmpeg -i input.mp4 -vf "nnedi3" output.mp4
2. Filtry oparte na sieciach neuronowych (DNN)
FFmpeg konsekwentnie rozwija wsparcie dla filtrów wykorzystujących głębokie sieci neuronowe (DNN). Dzięki integracji z silnikami takimi jak TensorFlow Lite czy OpenVINO, możliwe staje się m.in. automatyczne usuwanie szumów, inteligentne skalowanie (super-resolution) czy retuszowanie obrazu bezpośrednio z poziomu wiersza poleceń.
3. Lepsze zarządzanie HDR i kolorami
Usprawniono współpracę z biblioteką libplacebo, co pozwala na znacznie dokładniejsze i szybsze renderowanie kolorów na GPU. Konwersja między różnymi przestrzeniami barwnymi (np. HDR do SDR) stała się bardziej precyzyjna, co eliminuje problem "wyblakłych" kolorów po kompresji.
Wydajność: rewolucja w wielowątkowości
Największą i najważniejszą zmianą pod maską jest przebudowa samego narzędzia wiersza poleceń (CLI), które stało się w pełni wielowątkowe. Co to oznacza w praktyce?
1. Koniec wąskich gardeł
W starszych wersjach przetwarzanie wielu strumieni jednocześnie często blokowało się na jednym wątku procesora. Teraz FFmpeg potrafi równolegle dekodować, filtrować i kodować różne potoki danych, co pozwala w pełni obciążyć nowoczesne, wielordzeniowe procesory.
2. Optymalizacje SIMD
Dzięki rozszerzeniu wsparcia dla instrukcji AVX-512 oraz NEON (dla procesorów ARM), operacje takie jak skalowanie obrazu czy konwersja formatów pikseli są wykonywane znacznie szybciej, odciążając główną jednostkę obliczeniową.
3. Lepsze zarządzanie pamięcią
Uporządkowanie kodu i usunięcie przestarzałych bibliotek pozwoliło na zmniejszenie narzutu pamięciowego. FFmpeg działa stabilniej przy długotrwałych procesach transkodowania na serwerach, minimalizując ryzyko wycieków pamięci.
Porównanie kluczowych cech:
| Obszar | Starsze wersje FFmpeg | FFmpeg 7.0 |
|---|---|---|
| Wielowątkowość CLI | Ograniczona | Pełna wielowątkowość |
| Dekodowanie VVC (H.266) | Brak natywnego wsparcia | Eksperymentalny dekoder natywny |
| Format IAMF | Brak wsparcia | Pełna obsługa formatu |
| Optymalizacje SIMD | Podstawowe | Rozszerzone (m.in. AVX-512) |
Zmiany w bibliotekach zależnych – co się zmieniło?
| Biblioteka | Rola w FFmpeg | Kluczowe usprawnienia |
|---|---|---|
| libaom | Kodowanie/dekodowanie AV1 | Dalsze optymalizacje wydajności |
| dav1d | Szybkie dekodowanie AV1 | Usprawnienia dla procesorów wielordzeniowych |
| vvdec / natywny dekoder | Obsługa standardu VVC | Możliwość testowania nowego kodeka |
| libplacebo | Przetwarzanie obrazu i HDR | Lepsze renderowanie z użyciem GPU |
Kompatybilność i potencjalne wyzwania
Przejście na nową wersję niesie ze sobą ogromne korzyści, ale warto pamiętać o kilku kwestiach technicznych:
1. Czyszczenie przestarzałego kodu
FFmpeg konsekwentnie usuwa stare, nieużywane od lat funkcje i opcje CLI. Jeśli korzystasz ze skomplikowanych, wieloletnich skryptów, przed wdrożeniem produkcyjnym upewnij się, że wszystkie używane przełączniki są nadal obsługiwane.
2. Wymagania sprzętowe i sterowniki
Pełne wykorzystanie akceleracji sprzętowej (np. przez Vulkan, CUDA czy Direct3D 12) wymaga posiadania aktualnych sterowników graficznych. Na starszych systemach operacyjnych niektóre nowoczesne funkcje mogą nie być dostępne.
Narzędzia CLI: co nowego w ffprobe i ffmpeg?
Drobne, ale niezwykle przydatne zmiany dotknęły także same narzędzia pomocnicze:
- ffprobe zyskał lepsze opcje analizy metadanych, co ułatwia szybkie sprawdzanie parametrów strumieni HDR i zaawansowanych formatów audio.
- Usprawniono logowanie błędów – komunikaty są teraz bardziej precyzyjne, co ułatwia debugowanie skomplikowanych potoków przetwarzania.
Dla kogo jest nowa wersja FFmpeg? Podsumowanie
Nowe wydanie to ogromny krok naprzód, który docenią różne grupy użytkowników:
Dla twórców wideo i streamerów:
- Szybsze i stabilniejsze kodowanie AV1.
- Lepsza konwersja HDR i dokładniejsze odwzorowanie kolorów.
- Możliwość eksperymentowania z nowatorskim formatem VVC.
Dla administratorów i deweloperów:
- Pełna wielowątkowość CLI, która pozwala na maksymalne wykorzystanie zasobów serwera.
- Mniejszy narzut pamięciowy i stabilniejsza praca pod dużym obciążeniem.
- Uproszczona struktura zależności ułatwiająca kompilację.
Jeśli Twoja praca opiera się na masowym przetwarzaniu wideo, aktualizacja do nowej wersji przyniesie odczuwalną ulgę dla procesora. W przypadku krytycznych systemów produkcyjnych zawsze warto jednak przeprowadzić wcześniejsze testy kompatybilności posiadanych skryptów.
Co dalej? Plany rozwojowe
Twórcy FFmpeg nie zwalniają tempa. Kolejne miesiące przyniosą dalszy rozwój natywnego dekodera VVC, jeszcze głębszą integrację z nowoczesnymi interfejsami graficznymi (takimi jak Vulkan i WebGPU) oraz optymalizację algorytmów sztucznej inteligencji do przetwarzania obrazu w czasie rzeczywistym.
Źródła
- https://9to5linux.com/ffmpeg-9-0-lei-open-source-multimedia-framework-officially-released
- https://www.phoronix.com
- https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/tags/n9.0:/Changelog
- https://www.phoronix.com/news/FFmpeg-9.0-Released
- https://www.videolan.org/developers/ffmpeg.html
- https://www.intel.com/content/www/us/en/developer/articles/technical/av1-encoding-ffmpeg-9-0.html
- https://x265.readthedocs.io/en/master/releasenotes.html
- https://aomedia.googlesource.com/aom/+log/v3.9.0
Komentarze