Video til GIF — online animert GIF-skaper — Gjør et videoklipp om til en løkkende animert GIF med valgt bildefrekvens, bredde og palettkvalitet. GIF er et langvarig åpent format som nesten alle enheter og chatplattformer forstår. Alt behandles lokalt i nettleseren, og filene lastes aldri opp til en server.
Støttet inndata: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG og andre vanlige videoformater. Alt konverteres lokalt i nettleseren; filer lastes aldri opp til en server.
Første bruk laster en videobehandlingsmotor på rundt 30 MB inn i nettleseren. Den caches og gjenbrukes etterpå, så vær tålmodig.
🎥
Klikk for å velge eller dra og slipp en videofil
Støtter WebM, OGV, MKV, AVI, GIF og andre vanlige formater; under 500 MB anbefales
Bildefrekvens:høyere = jevnere, men større fil
Maks bredde:skalert automatisk for å bevare sideforholdet
Palettfarger:færre farger = mindre fil, litt tap i kvalitet
Konvertering til animert GIF: henter ut bilder i valgt bildefrekvens, skalerer til maks bredde og bygger en optimalisert fargepalett for løkken. Lydsporet (hvis det finnes) kastes.
Hvorfor er GIF-er så store? Paletter, dithering og formatet fra 1987 som gjør videojobb
GIF (Graphics Interchange Format, 1987) ble laget som et stillbildeformat med en liten animasjonsbonus, og det merkes. To egenskaper driver alt på denne siden: hvert bilde er begrenset til 256 farger valgt fra en lagret palett, og bilder komprimeres med LZW — en generell byte-komprimerer fra zip-tiden — som ikke har noen anelse om at en video lagres. Det finnes ingen bevegelseskompensasjon, ingen «dette bildet er mest som forrige bilde»-regnestykke slik ekte videokodeker har; hvert bilde er i praksis et individuelt komprimert bilde. Å forstå paletten er nøkkelen til å få små, godt utseende GIF-er.
Fem fakta som forankrer resten av siden: • hvert bilde har høyst 256 farger (28) fra en palett; fargevideo i full farge må kvantiseres ned • dithering later som manglende farger ved å spre prikker av naboer i paletten — større filer, jevnere overganger • bildetiming lagres i 10 ms-enheter: 10 bilder/s → forsinkelse 10 (100 ms); praktisk gulv er forsinkelse 2 (20 ms = 50 bilder/s) • bilder LZW-komprimeres uavhengig av hverandre — ingen komprimering mellom bilder er den største størrelsesdreperen • færre farger, færre bilder, mindre dimensjoner: hver innstilling krymper LZW-inndataene, og effekten multipliseres
Det 256-fargers paletten og båndingen
En fargevideopiksel trenger 24 bit (16,7 millioner muligheter); en GIF-piksel er en 8-bit indeks inn i en tabell med høyst 256 farger. Å konvertere en video til GIF kjører derfor palettkvantisering: velg de 256 fargene som best representerer innholdet, og snap så hver piksel til den nærmeste. Overganger betaler prisen — en himmel som trenger 4000 litt ulike blåtoner får 30 av dem, og den jevne rampen kollapser til synlige striper som kalles bånding. Flate grafikker med høy kontrast (logoer, spillsprites, diagrammer) merker knapt noe; fotografier og video rammes hardest. En konverterers palettkvalitet er en stor del av utdatakvaliteten.
Dithering: å bytte støy mot glatthet
Dithering er den klassiske løsningen på bånding: i stedet for å snappe hver piksel til nærmeste palettfarge, sprer man en blanding av de to nærmeste fargene slik at gjennomsnittet over et lite område samsvarer med den opprinnelige tonen. Overganger ser dramatisk jevnere ut — stripene løses opp i fin støy som øyet blander på normal sitteavstand. Prisen er filstørrelse: støy er høyfrekvent detalj, og LZW komprimerer regulære striper langt bedre enn spredte prikker. Det er den grunnleggende GIF-avveiningen denne siden viser: slå av dithering for mindre filer med bånding, slå på den for jevne overganger til et størrelsestillegg.
Bildetiming: 20 ms-gulvet
GIF lagrer forsinkelsen mellom bilder i enheter på 1/100 sekund. 10 bilder/s gir forsinkelse 10 (100 ms per bilde); 20 bilder/s gir forsinkelse 5 (50 ms). Den minste nyttige verdien er 2 (20 ms, altså 50 bilder/s), og i praksis hever de fleste nettlesere alt under det til 100 ms — å be om 60 bilder/s gir stille tregere avspilling. Over gulvet multipliserer hver økning i bilder/s antallet bilder: 15 bilder/s → 50 bilder/s for samme klipp gir mer enn tre ganger så mange bilder, og GIF-størrelsen skalerer omtrent lineært med antallet bilder. Et 10 sekunders klipp ved 15 bilder/s er 150 bilder; ved 50 bilder/s ville det vært 500.
Hvorfor GIF-er blåser opp sammenlignet med ekte video
Moderne videokodeker bruker de fleste bitene sine på å beskrive endring mellom bilder — et låst kamera gjør at senere bilder nesten ingenting koster. GIFs LZW ser hvert bilde som et nytt bilde (dets eneste mellombildetriks er et gjennomsiktighetsflagg som hopper over piksler som er identiske med bildet før, noe som hjelper langt mindre enn ekte bevegelseskompensasjon). Tommelfingerregelen: for samme klipp må man forvente at en GIF er mange ganger større enn en godt kodet WebM i samme oppløsning. Hvis destinasjonen aksepterer ekte video, foretrekk den; GIF vinner bare der dens universalitet og auto-avspilling/løkkeatferd betyr noe.
Vanlige misforståelser
«GIF er komprimert, så det er effektivt for video.» LZW er en byte-nivå-komprimerer fra 1987 uten bevegelsesmodell; for bevegelige opptak er det det minst effektive mye brukte formatet på nettet.
«Kilden min er 60 bilder/s, så GIF-en bør være det også.» Forsinkelsesgulvet på 20 ms begrenser GIF til 50 bilder/s, og nettlesere hever forsinkelser under gulvet. Bilde-for-bilde-troskap er ikke noe GIF kan levere.
«Dithering er bare støy som bør skrus av.» Det er en bevisst kvalitet/størrelse-avveining: av gir mindre filer med bånding, på gir jevne overganger som koster byte.
«Færre farger ser alltid forferdelig ut.» For flate grafikker og animasjoner med høy kontrast kan selv 64 farger se identiske ut med 256 — og krympe filen ytterligere.
Relaterte verktøy: Video til WebP/APNG for animasjon i full farge med ekte komprimering, GIF til video for motsatt retning (palett til full farge), Video til WebM for det samme klippet som ekte video, og Videoklipper for å trimme kilden før konvertering.