Nástroje pro video — převod videa na animovaný GIF
Video do GIF
Video do GIFu — online tvůrce animovaných GIFů — proměňte videoklip na smyčkovaný animovaný GIF s vybranou snímkovou frekvencí, šířkou a kvalitou palety. GIF je dlouhodobý otevřený formát, kterému rozumí téměř každé zařízení a chatovací platforma. Vše se zpracovává lokálně ve vašem prohlížeči, soubory se nikdy nenahrávají na server.
Podporovaný vstup: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG a další běžné video formáty. Vše se převádí lokálně ve vašem prohlížeči; soubory se nikdy nenahrávají na server.
První použití načte do aktuálního prohlížeče zpracovatelský engine videa o velikosti ~30 MB. Poté se uloží do mezipaměti a znovu použije, proto prosím vydržte.
🎥
Klikněte pro výběr nebo přetáhněte video soubor
Podporuje WebM, OGV, MKV, AVI, GIF a další běžné formáty; doporučeno do 500 MB
Snímková frekvence:vyšší = plynulejší, ale větší soubor
Maximální šířka:automaticky přepočítáno tak, aby se zachoval poměr stran
Barvy palety:méně barev = menší soubor, mírná ztráta kvality
Převod na animovaný GIF: vybere snímky při zvolené snímkové frekvenci, změní měřítko na maximální šířku a sestaví optimalizovanou barevnou paletu pro smyčku. Zvuková stopa (pokud je) se zahodí.
Proč jsou GIFy tak velké? Palety, dithering a formát z roku 1987, který dělá práci videa
GIF (Graphics Interchange Format, 1987) vznikl jako formát pro statické obrázky s malým bonusem v podobě animace, a je to znát. Dvě vlastnosti řídí vše na této stránce: každý snímek je omezen na 256 barev vybraných z uložené palety a snímky se komprimují pomocí LZW — obecného kompresoru bajtů z dob zipu — který nemá tušení, že se ukládá video. Chybí kompenzace pohybu, žádná aritmetika typu „tento snímek je z větší části předchozí snímek“, jaké používají skutečné video kodeky; každý snímek je v podstatě samostatně komprimovaný obrázek. Pochopení palety je klíčem k malým a dobře vypadajícím GIFům.
Pět faktů, o které se opírá zbytek této stránky: • každý snímek nese nejvýše 256 barev (28) z palety; barevné video se musí kvantovat na menší sadu • dithering simuluje chybějící barvy rozptýlením teček sousedních položek palety — větší soubory, plynulejší přechody • časování snímků se ukládá v jednotkách 10 ms: 10 fps → zpoždění 10 (100 ms); praktická spodní hranice je zpoždění 2 (20 ms = 50 fps) • snímky se komprimují LZW nezávisle — nejčastější příčinou velikosti je absence komprese mezi snímky • méně barev, méně snímků, menší rozměry: každý z těchto parametrů zmenšuje vstup LZW a účinky se násobí
Paleta 256 barev a pruhování
Pixel barevného videa potřebuje 24 bitů (16,7 milionu možností); pixel GIFu je 8bitový index do tabulky nejvýše 256 barev. Převod videa na GIF proto probíhá přes kvantizaci palety: vyberte 256 barev, které nejlépe reprezentují obsah, a každý pixel přichytněte k nejbližší z nich. Přechody platí cenu — obloha, která potřebuje 4 000 mírně odlišných modrých, dostane 30 z nich a plynulý přechod se zhroutí do viditelných pruhů zvaných pruhování. Grafika s vysokým kontrastem (loga, herní sprajty, grafy) to téměř nepozná; fotografie a video jsou zasaženy nejvíce. Kvalita palety převodníku je velkou částí kvality výstupu.
Dithering: výměna šumu za plynulost
Dithering je klasická náprava pruhování: místo přichycení každého pixelu k nejbližší barvě palety se rozptýlí směs dvou nejbližších barev, takže průměr přes malou oblast odpovídá původnímu tónu. Přechody vypadají dramaticky plynuleji — pruhy se rozpustí do jemného šumu, který oko při běžné vzdálenosti sledování slije. Cenou je velikost souboru: šum je vysokofrekvenční detail a LZW komprimuje pravidelné pruhy mnohem lépe než rozptýlené tečky. To je základní kompromis GIFu, který tato stránka odhaluje: vypnutí ditheringu dá menší soubory s pruhováním, zapnutí plynulé přechody za prémii v podobě velikosti.
Časování snímků: 20ms spodní hranice
GIF ukládá prodlevu mezi snímky v jednotkách 1/100 sekundy. 10 fps znamená zpoždění 10 (100 ms na snímek); 20 fps znamená zpoždění 5 (50 ms). Nejmenší užitečná hodnota je 2 (20 ms, tedy 50 fps) a v praxi většina prohlížečů zvedne cokoli pod to na 100 ms — požadavek 60 fps tiše vytvoří pomalejší přehrávání. Nad spodní hranicí každé zvýšení fps násobí počet snímků: 15 fps → 50 fps pro tentýž klip znamená více než třikrát více snímků a velikost GIFu roste zhruba lineárně s počtem snímků. Desetisekundový klip při 15 fps má 150 snímků; při 50 fps by jich bylo 500.
Proč GIFy nabobtnají ve srovnání se skutečným videem
Moderní video kodeky utrácejí většinu bitů za popis změny mezi snímky — zafixovaná kamera znamená, že pozdější snímky stojí téměř nic. LZW GIFu vidí každý snímek jako čerstvý obrázek (jeho jediný trik mezi snímky je příznak průhlednosti, který přeskočí pixely shodné s předchozím snímkem, a pomáhá mnohem méně než skutečná kompenzace pohybu). Praktické pravidlo: u stejného klipu očekávejte, že GIF bude mnohonásobně větší než dobře zakódovaný WebM při stejném rozlišení. Pokud cílová platforma přijímá skutečné video, dejte přednost jemu; GIF vyhrává jen tam, kde záleží na jeho všudypřítomnosti a chování automatického přehrávání a smyčky.
Časté omyly
„GIF je komprimovaný, takže je pro video efektivní.“ LZW je kompresor na úrovni bajtů z roku 1987 bez modelu pohybu; u pohybujících se záběrů je to nejméně účinný široce používaný formát na webu.
„Můj zdroj má 60 fps, takže GIF by je měl mít také.“ Spodní hranice zpoždění 20 ms omezuje GIF na 50 fps a prohlížeče zpoždění pod touto hranicí zvedají nahoru. Věrnost snímek po snímku GIF nezajistí.
„Dithering je jen šum, který by se měl vypnout.“ Je to záměrný kompromis kvality a velikosti: vypnutý dává menší soubory s pruhováním, zapnutý plynulé přechody, které stojí bajty.
„Méně barev vždy vypadá hrozně.“ U plochých grafik a animací s vysokým kontrastem mohou vypadat 64 barev stejně jako 256 — a soubor ještě zmenší.
Související nástroje: Video do WebP/APNG pro animaci v reálných barvách se skutečnou kompresí, GIF na video pro opačný směr (paleta na reálné barvy), Video na WebM pro tentýž klip jako skutečné video a Střih videa pro oříznutí zdroje před převodem.