Gość (37.30.*.*)
Format GIF towarzyszy nam w internecie od niemal czterech dekad. Choć stał się nieodłącznym elementem popkultury, komunikatorów i memów, z technicznego punktu widzenia jest już prawdziwym przeżytkiem. Jego ograniczenia, takie jak paleta zaledwie 256 kolorów czy ogromny rozmiar plików, od lat spędzają sen z powiek twórcom stron internetowych. Na ratunek przyszedł Google ze swoim formatem WebP, który szybko zyskał miano „następcy GIF-a”. Jak jednak te dwa formaty wypadają w bezpośrednim starciu? Czy WebP rzeczywiście deklasuje swojego starszego rywala, zwłaszcza gdy zaczynamy mówić o ekstremalnie długich animacjach? Przyjrzyjmy się temu z bliska.
WebP to nowoczesny format obrazów, który został zaprojektowany z myślą o szybkości ładowania stron internetowych. Oferuje on szereg usprawnień, które sprawiają, że GIF wygląda przy nim jak technologia z poprzedniej epoki:
Krótka i jednoznaczna odpowiedź brzmi: nie, pliki WebP nie mogą zawierać dźwięku.
WebP jest z założenia formatem obrazu (zarówno statycznego, jak i animowanego). Nie posiada on kontenera ani kodeków przeznaczonych do przesyłania ścieżki dźwiękowej.
Jeśli potrzebujesz animacji z dźwiękiem, musisz sięgnąć po formaty wideo. Bezpośrednim, „dźwiękowym” odpowiednikiem WebP stworzonym przez Google jest format WebM. WebM wykorzystuje te same techniki kompresji obrazu (VP8/VP9/AV1), ale posiada kontener zdolny pomieścić ścieżkę audio (np. w formacie Vorbis lub Opus). Alternatywą jest oczywiście powszechny format MP4.
Zanim przejdziemy do wyliczeń, musimy wyjaśnić sobie jedną, kluczową kwestię: ani GIF, ani WebP nie zostały stworzone do obsługi tak długich materiałów. Używanie formatów graficznych do kodowania wielominutowych filmów jest skrajnie nieefektywne i w praktyce niemal niestosowane.
Współczesne kodeki wideo (takie jak H.264, H.265 czy AV1) kompresują obraz w czasie (analizują różnice między klatkami na przestrzeni sekund i minut). Formaty animowanych obrazów (GIF i WebP) zapisują klatki znacznie prościej, przez co ich waga rośnie niemal liniowo wraz z każdą sekundą.
Dodatkowo napotykamy tu na bariery technologiczne:
Przeanalizujmy jednak teoretyczne porównanie rozmiarów plików dla animacji o długości 10, 30 i 60 minut przy dwóch różnych założeniach jakościowych.
Jako punkt wyjścia (bazę) przyjmijmy realne dane dla krótkiej, 10-sekundowej animacji w niskiej rozdzielczości:
Wykonajmy obliczenia krok po kroku, skalując te wartości liniowo dla dłuższych czasów:
Mnożnik czasu wynosi $600\text{ s} / 10\text{ s} = 60$.
Mnożnik czasu wynosi $1800\text{ s} / 10\text{ s} = 180$.
Mnożnik czasu wynosi $3600\text{ s} / 10\text{ s} = 360$.
W wyższej rozdzielczości i przy płynności 30 kl./s waga plików drastycznie rośnie. Szacunkowa waga 10-sekundowego klipu w tej jakości to:
Uwaga na limit! W przypadku 60-minutowej animacji w rozdzielczości 720p, teoretyczny rozmiar pliku WebP wyniósłby ok. 5,4 GB. Oznacza to, że taki plik w formacie WebP nie mógłby w ogóle powstać, ponieważ przekracza on wspomniany wcześniej maksymalny limit kontenera RIFF wynoszący 4 GB.
Dla porównania: 60-minutowy film w formacie MP4 (H.264) o rozdzielczości 720p i z dźwiękiem waży zazwyczaj zaledwie 500 MB – 1 GB, oferując przy tym nieporównywalnie lepszą jakość obrazu.
Do konwersji lub tworzenia plików WebP nie potrzebujesz połączenia z siecią. Istnieje wiele darmowych i profesjonalnych narzędzi, które wykonają to zadanie lokalnie na Twoim komputerze.
.webp i w oknie opcji zaznaczyć pole Jako animacja.Google udostępnia oficjalny pakiet narzędzi konsolowych o nazwie libwebp dla systemów Windows, macOS i Linux. Możesz go pobrać i używać wiersza poleceń do błyskawicznej konwersji:
gif2webp:
gif2webp animacja.gif -o animacja.webp
img2webp:
img2webp -loop 0 klatka1.png klatka2.png klatka3.png -o animacja.webp
Jeśli masz na dysku plik wideo (np. MP4 lub MKV) i chcesz zamienić go w animację WebP bez użycia internetu, najlepszym wyborem będzie darmowy program konsolowy FFmpeg.
Przykładowe polecenie konwertujące wideo na zapętlony plik WebP:
ffmpeg -i wideo.mp4 -vcodec libwebp -filter:v fps=fps=20 -lossless 0 -compression_level 4 -q:v 70 -loop 0 -an animacja.webp
Wyjaśnienie parametrów:
-vcodec libwebp – użycie kodeka WebP do kompresji wideo.-filter:v fps=fps=20 – ograniczenie płynności do 20 klatek na sekundę (pozwala zmniejszyć wagę pliku).-lossless 0 – zastosowanie kompresji stratnej (dla mniejszego rozmiaru).-q:v 70 – ustawienie jakości obrazu na poziomie 70%.-loop 0 – nieskończone zapętlenie animacji.-an – wyłączenie ścieżki dźwiękowej (niezbędne, ponieważ WebP nie obsługuje audio).