Video til GIF - online animeret GIF-skaber — Lav et videoklip om til en animeret GIF med løkke, med den valgte billedhastighed, bredde og palet-kvalitet. GIF er et længe etableret åbent format, som stort set alle enheder og chatplatforme forstår. Alt behandles lokalt i browseren, og filerne uploades aldrig til en server.
Understøttet input: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG og andre almindelige videoformater. Alt konverteres lokalt i browseren; filerne uploades aldrig til en server.
Den første brug indlæser en videobehandlingsmotor på ca. 30 MB i den aktuelle browser. Den caches og genbruges bagefter, så vent venligst.
🎥
Klik for at vælge eller træk og slip en videofil
Understøtter WebM, OGV, MKV, AVI, GIF og andre almindelige formater; under 500 MB anbefales
Billedhastighed:højere = glattere, men større fil
Maks. bredde:skaleres automatisk for at bevare billedforholdet
Palet-farver:færre farver = mindre fil, lille kvalitetstab
Konvertering til animeret GIF: udtrækker billeder med den valgte billedhastighed, skalerer til den maksimale bredde og bygger en optimeret farvepalet til løkken. Lydsporet (hvis der er et) kasseres.
Hvorfor er GIF'er så store? Paletter, dithering og formatet fra 1987, der tager videoens job
GIF (Graphics Interchange Format, 1987) blev designet som et stillbilledformat med en lille animationsbonus, og det kan mærkes. To egenskaber driver alt på denne side: hvert billede er begrænset til 256 farver valgt fra en gemt palet, og billeder komprimeres med LZW — en generel bytekomprimator fra zip-æraen — som ingen anelse har om, at der gemmes en video. Der er ingen bevægelseskompensation, ingen „dette billede er mest det foregående billede“-aritmetik som i rigtige videocodecs; hvert billede er i bund og grund et enkeltkomprimeret billede. At forstå paletten er nøglen til små, pæne GIF'er.
Fem fakta at forankre resten af siden i: • hvert billede indeholder højst 256 farver (28) fra en palet; video i ægte farver skal kvantiseres ned • dithering simulerer manglende farver ved at sprede prikker fra nabopaletposter — større filer, glattere toner • billedtiming gemmes i 10 ms-enheder: 10 fps → forsinkelse 10 (100 ms); den praktiske grænse er forsinkelse 2 (20 ms = 50 fps) • billeder LZW-komprimeres uafhængigt — ingen mellembilledkomprimering er den største størrelsesdræber • færre farver, færre billeder, mindre dimensioner: hver knap formindsker LZW-inputtet, og effekten multipliceres
256-farvepaletten og båndingen
En videopixel i ægte farver kræver 24 bit (16,7 millioner muligheder); en GIF-pixel er et 8-bit indeks i en tabel med højst 256 farver. Konvertering af video til GIF kører derfor palet-kvantisering: vælg de 256 farver, der bedst repræsenterer indholdet, og snap derefter hver pixel til den nærmeste. Toner betaler prisen — en himmel, der har brug for 4.000 lidt forskellige blå, får 30 af dem, og den glatte overgang kollapser til synlige striber kaldet bånding. Flade grafikker med høj kontrast (logoer, spilsprites, diagrammer) bemærker det næsten ikke; fotos og video rammes hårdest. En konverters palet-kvalitet er en stor del af dens outputkvalitet.
Dithering: at bytte støj for glathed
Dithering er den klassiske løsning på bånding: i stedet for at snappe hver pixel til dens nærmeste palet-farve spredes en blanding af de to nærmeste farver, så gennemsnittet over et lille område matcher den oprindelige tone. Toner ser markant glattere ud — stribene opløses i fin støj, som øjet blander ved normal visningsafstand. Prisen er filstørrelsen: støj er højfrekvent detalje, og LZW komprimerer regelmæssige striber langt bedre end spredte prikker. Det er den grundlæggende GIF-afvejning, siden her viser: slå dithering fra for mindre filer med bånding, slå den til for glatte toner til en størrelsespræmie.
Billedtiming: 20 ms-gulvet
GIF gemmer forsinkelsen mellem billeder i enheder af 1/100 sekund. 10 fps giver forsinkelse 10 (100 ms pr. billede); 20 fps giver forsinkelse 5 (50 ms). Den mindste brugbare værdi er 2 (20 ms, dvs. 50 fps), og i praksis begrænser de fleste browsere alt under det til 100 ms — at bede om 60 fps giver stille og roligt langsommere afspilning. Over grænsen multiplicerer hver fps-stigning billedantallet: 15 fps → 50 fps for den samme optagelse betyder mere end tre gange så mange billeder, og GIF-størrelsen skalerer nogenlunde lineært med antallet af billeder. En 10-sekunders optagelse ved 15 fps er 150 billeder; ved 50 fps ville det være 500.
Hvorfor GIF'er vokser i forhold til rigtig video
Moderne videocodecs bruger det meste af deres bits på at beskrive ændringer mellem billeder — et låst kamera betyder, at senere billeder næsten intet koster. GIF's LZW ser hvert billede som et nyt billede (dets eneste mellembilledtrick er et gennemsigtighedsflag, der springer over pixels, der er identiske med det foregående billede, og det hjælper langt mindre end rigtig bevægelseskompensation). Tommelfingerreglen: for den samme optagelse skal man forvente, at en GIF er mange gange større end en velkodet WebM i samme opløsning. Hvis destinationen accepterer rigtig video, bør den foretrækkes; GIF vinder kun, hvor dens universalitet og auto-afspilnings-/løkkeadfærd betyder noget.
Almindelige misforståelser
„GIF er komprimeret, så den er effektiv til video.“ LZW er en komprimator på bytes-niveau fra 1987 uden bevægelsesmodel; for bevægelige optagelser er det det mindst effektive bredt anvendte format på nettet.
„Min kilde er 60 fps, så GIF'en bør også være det.“ Forsinkelsesgrænsen på 20 ms begrænser GIF til 50 fps, og browsere hæver forsinkelser under grænsen. Billede-for-billede-tro gengivelse er ikke noget, GIF kan levere.
„Dithering er bare støj, der bør slås fra.“ Det er en bevidst kvalitets-/størrelsesafvejning: fra giver mindre filer med bånding, til giver glatte toner, der koster bytes.
„Færre farver ser altid forfærdelige ud.“ Til flade grafikker og animation med høj kontrast kan selv 64 farver se identiske ud med 256 — og gøre filen endnu mindre.
Relaterede værktøjer: Video til WebP/APNG for animation i ægte farver med rigtig komprimering, GIF til video for den modsatte retning (palet til ægte farver), Video til WebM for den samme optagelse som rigtig video, og Videoklipper til at beskære kilden før konvertering.