Utilia

Video în GIF

Transformă o parte dintr-un video MP4, MOV sau WebM într-un GIF animat în browser, cu paletă de culori optimizată, estimare a dimensiunii și previzualizare.

GIF-ul este creat de FFmpeg compilat în WebAssembly, în două treceri (o paletă de culori adaptată clipului tău, apoi cadrele). Prima dată se descarcă aproximativ 30 MB, pe care browserul tău îi păstrează apoi în cache. Un browser este mai lent decât programele desktop: păstrează clipurile scurte.

Cum faci un GIF dintr-un videoclip

  1. Trage un videoclip în caseta de mai sus sau fă clic pe ea pentru a alege un fișier (până la 300 MB).
  2. Sunt selectate primele 5 secunde. Mergi la momentul dorit și apasă Setează începutul aici, apoi Setează sfârșitul aici, sau scrie timpii ca secunde (12,5) ori minute:secunde (0:12,5). Redă selecția reia partea aleasă.
  3. Alege Cadre pe secundă și Lățime. Rândul de lângă buton arată durata, numărul de cadre, dimensiunea în pixeli și o estimare brută a dimensiunii fișierului.
  4. Apasă Creează GIF. Apare o bară de progres cu un buton Anulează.
  5. GIF-ul animat este afișat ca previzualizare. Dacă îți place, descarcă-l; dacă este prea greu, schimbă setările și creează-l din nou.

Cum funcționează conversia

Un GIF poate conține doar 256 de culori pe cadru, în timp ce un cadru video are milioane. Calitatea unui GIF depinde mai ales de care 256 de culori sunt alese. Instrumentul folosește metoda în două treceri a FFmpeg, cea recomandată pentru GIF-uri frumoase:

  1. Trecerea de paletă. FFmpeg citește o dată partea selectată și construiește o paletă cu cele 256 de culori care reprezintă cel mai bine clipul respectiv (palettegen), dând o pondere mai mare zonelor care se mișcă.
  2. Trecerea de codare. Citește clipul din nou și asociază fiecare cadru cu acea paletă (paletteuse), cu o ușoară difuzie a erorii (dithering) pentru a netezi degradeurile. Doar zonele care se schimbă între cadre sunt retramate, ceea ce evită zgomotul care pâlpâie și păstrează fișierul mai mic.

Cadrele sunt, de asemenea, reeșantionate la rata de cadre aleasă și redimensionate cu filtrul Lanczos, care păstrează textul și marginile clare. Rezultatul se repetă la nesfârșit, ca majoritatea GIF-urilor de pe web.

Totul rulează în browserul tău, cu FFmpeg compilat în WebAssembly. Prima dată se descarcă aproximativ 30 MB, pe care browserul tău îi păstrează apoi în cache. Videoclipul tău nu este încărcat niciodată pe un server.

Cum păstrezi GIF-ul mic

GIF este un format vechi și ineficient: un GIF este adesea de 5–10 ori mai greu decât același clip în MP4. Dimensiunea lui crește cu lățime × înălțime × numărul de cadre, deci:

  • Scurtează clipul. 2–6 secunde este tipic pentru o reacție sau o demonstrație.
  • Redu numărul de cadre pe secundă. 10 fps arată suficient de fluid pentru majoritatea conținutului și cântărește jumătate cât 20 fps. Înregistrările de ecran arată adesea bine la 5–8 fps.
  • Micșorează lățimea. Trecerea de la 640 px la 480 px împarte numărul de pixeli la aproape doi. 480 px este o valoare implicită bună pentru chat și rețele sociale.

Estimarea dimensiunii presupune aproximativ 0,3 octeți pe pixel pe cadru. Clipurile reale variază mult: înregistrările de ecran plate se comprimă mult mai bine, imaginile de cameră granulate mult mai prost. Când estimarea trece de 15 MB sau clipul depășește 450 de cadre, instrumentul afișează un avertisment. Peste 1500 de cadre refuză, pentru că într-un browser conversia ar dura prea mult și ar folosi prea multă memorie.

Limite

Un browser este mai lent decât programele desktop: fiecare trecere decodează videoclipul pe un singur nucleu de procesor. Clipurile scurte, la lățimi moderate, se convertesc în câteva secunde; clipurile lungi în Full HD pot dura minute. Pentru un fragment lung, taie-l mai întâi cu instrumentul de tăiere video, apoi convertește doar acea parte. Fișierele pe care browserul tău nu le poate reda (AVI, unele MKV) pot fi totuși convertite, dar fără previzualizare: scrie timpii de început și de sfârșit.

Întrebări frecvente

Este videoclipul meu încărcat pe un server?

Nu. Conversia rulează în browserul tău, cu FFmpeg compilat în WebAssembly. Nimic nu este trimis către un server.

De ce GIF-ul meu este atât de mare?

Pentru că GIF comprimă prost: fiecare cadru este stocat aproape ca o imagine completă cu 256 de culori. Scurtează selecția, redu numărul de cadre pe secundă sau micșorează lățimea. Înjumătățirea lățimii împarte dimensiunea la aproximativ patru.

Ce rată de cadre să aleg?

10 fps este un echilibru bun între fluiditate și dimensiune. Folosește 15–25 fps pentru mișcări rapide, precum sportul sau jocurile, și 5–8 fps pentru înregistrări de ecran sau prezentări.

De ce sunt două treceri?

Prima trecere găsește cele 256 de culori care se potrivesc cel mai bine clipului tău; a doua desenează fiecare cadru cu ele. O singură paletă generică dă benzi de culoare și culori greșite, motiv pentru care GIF-urile făcute astfel arată mult mai curat.

Este estimarea dimensiunii exactă?

Este un reper brut, nu o promisiune. Folosește un raport mediu, iar dimensiunea reală depinde de cât se mișcă imaginea și de cât de detaliată este. Dimensiunea exactă este afișată după conversie.

Păstrează GIF-ul sunetul?

Nu. Formatul GIF nu are sunet. Pentru a păstra sunetul, taie în schimb videoclipul sau extrage separat sunetul ca MP3.