Utilia

Video na GIF

Zmeň časť videa MP4, MOV alebo WebM na animovaný GIF v prehliadači, s optimalizovanou farebnou paletou, odhadom veľkosti a ukážkou.

GIF vytvára FFmpeg skompilovaný do WebAssembly v dvoch prechodoch (farebná paleta prispôsobená tvojmu záberu a potom snímky). Pri prvom použití sa stiahne približne 30 MB, ktoré sa potom uchovajú vo vyrovnávacej pamäti prehliadača. Prehliadač je pomalší než desktopový softvér: záber nech je krátky.

Ako vytvoriť GIF z videa

  1. Presuň video do poľa vyššie alebo naň klikni a vyber súbor (najviac 300 MB).
  2. Vybraných je prvých 5 sekúnd. Presuň sa na požadovaný okamih a stlač Nastaviť začiatok tu, potom Nastaviť koniec tu, alebo zadaj časy v sekundách (12,5) alebo v minútach:sekundách (0:12,5). Prehrať výber znova prehrá zvolenú časť.
  3. Vyber Snímky za sekundu a Šírku. Riadok vedľa tlačidla ukazuje dĺžku, počet snímok, veľkosť v pixeloch a hrubý odhad veľkosti súboru.
  4. Stlač Vytvoriť GIF. Zobrazí sa ukazovateľ priebehu s tlačidlom Zrušiť.
  5. Animovaný GIF sa zobrazí ako ukážka. Ak sa ti páči, stiahni ho; ak je príliš veľký, zmeň nastavenia a vytvor ho znova.

Ako konverzia funguje

GIF dokáže uložiť iba 256 farieb na snímku, zatiaľ čo snímka videa má milióny. Kvalita GIF závisí najmä od toho, ktorých 256 farieb sa vyberie. Tento nástroj používa dvojprechodovú metódu FFmpeg, ktorá sa odporúča na pekne vyzerajúce GIF:

  1. Prechod s paletou. FFmpeg raz prečíta vybranú časť a zostaví paletu 256 farieb, ktoré najlepšie reprezentujú práve tento záber (palettegen), pričom dáva väčšiu váhu častiam, ktoré sa hýbu.
  2. Prechod kódovania. Záber prečíta znova a každú snímku namapuje na túto paletu (paletteuse) s ľahkým rozptylovaním chyby (dithering) na vyhladenie prechodov. Dithering sa znova použije len v oblastiach, ktoré sa medzi snímkami menia, čo zabraňuje blikajúcemu šumu a udržiava súbor menší.

Snímky sa tiež prevzorkujú na zvolenú snímkovú frekvenciu a zmenšia filtrom Lanczos, ktorý zachováva ostrý text a hrany. Výsledok sa opakuje donekonečna, ako väčšina GIF na webe.

Všetko beží v tvojom prehliadači s FFmpeg skompilovaným do WebAssembly. Pri prvom použití sa stiahne približne 30 MB a uchová vo vyrovnávacej pamäti prehliadača. Tvoje video sa nikdy nenahráva na server.

Ako udržať GIF malý

GIF je starý a neefektívny formát: GIF je často 5- až 10-krát ťažší než ten istý záber ako MP4. Jeho veľkosť rastie so šírkou × výškou × počtom snímok, preto:

  • Skráť záber. 2 až 6 sekúnd je typické pre reakciu alebo ukážku.
  • Zníž počet snímok za sekundu. 10 fps vyzerá pre väčšinu obsahu dostatočne plynulo a váži polovicu oproti 20 fps. Nahrávky obrazovky často vyzerajú dobre pri 5 – 8 fps.
  • Zmenši šírku. Zmenšenie zo 640 px na 480 px vydelí počet pixelov takmer dvoma. 480 px je dobrá predvolená hodnota pre chat a sociálne siete.

Odhad veľkosti predpokladá približne 0,3 bajtu na pixel na snímku. Skutočné zábery sa veľmi líšia: ploché nahrávky obrazovky sa komprimujú oveľa lepšie, zrnitý záber z kamery oveľa horšie. Keď odhad prekročí 15 MB alebo záber presiahne 450 snímok, nástroj zobrazí upozornenie. Nad 1 500 snímok odmietne pokračovať, pretože by konverzia trvala príliš dlho a spotrebovala príliš veľa pamäte v prehliadači.

Obmedzenia

Prehliadač je pomalší než desktopový softvér: každý prechod dekóduje video na jedinom jadre procesora. Krátke zábery s miernou šírkou sa konvertujú za sekundy; dlhé zábery vo Full HD môžu trvať minúty. Pri dlhom úryvku ho najprv vystrihni pomocou strihu videa a potom konvertuj iba túto časť. Súbory, ktoré tvoj prehliadač neprehrá (AVI, niektoré MKV), sa dajú konvertovať, ale bez ukážky: zadaj čas začiatku a konca.

Často kladené otázky

Nahráva sa moje video na server?

Nie. Konverzia beží v tvojom prehliadači s FFmpeg skompilovaným do WebAssembly. Nič sa neodosiela na server.

Prečo je môj GIF taký veľký?

Pretože GIF komprimuje zle: každá snímka sa ukladá takmer ako celý obraz s 256 farbami. Skráť výber, zníž počet snímok za sekundu alebo zmenši šírku. Zmenšenie šírky na polovicu zníži veľkosť približne na štvrtinu.

Akú snímkovú frekvenciu zvoliť?

10 fps je dobrý kompromis medzi plynulosťou a veľkosťou. Pre rýchly pohyb, ako šport alebo hry, použi 15 – 25 fps a pre nahrávky obrazovky či prezentácie 5 – 8 fps.

Prečo sú tam dva prechody?

Prvý prechod nájde 256 farieb, ktoré sa najlepšie hodia na tvoj záber; druhý prechod nimi vykreslí každú snímku. Jedna všeobecná paleta dáva pruhovanie a nesprávne farby, preto GIF vytvorené týmto spôsobom vyzerajú oveľa čistejšie.

Je odhad veľkosti presný?

Je to hrubé vodidlo, nie sľub. Používa priemerný pomer a skutočná veľkosť závisí od toho, koľko sa obraz hýbe a aký je podrobný. Presná veľkosť sa zobrazí po konverzii.

Zachová GIF zvuk?

Nie. Formát GIF nemá zvuk. Ak chceš zvuk zachovať, namiesto toho video ostrihaj, alebo zvuk extrahuj osobitne ako MP3.