Video naar GIF

Video naar GIF - online geanimeerde GIF-maker — zet een videoclip om in een lussende geanimeerde GIF met de beeldsnelheid, breedte en palettekwaliteit naar keuze. GIF is een al lang bestaand open formaat dat vrijwel elk apparaat en chatplatform begrijpt. Alles wordt lokaal in uw browser verwerkt; bestanden worden nooit naar een server geüpload.
Ondersteunde invoer: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG en andere gangbare videoformaten. Alles wordt lokaal in uw browser geconverteerd; bestanden worden nooit naar een server geüpload.
Het eerste gebruik laadt een videoverwerkingsengine van ca. 30 MB in de huidige browser. Die wordt daarna in de cache bewaard en hergebruikt, dus heb even geduld.
🎥
Klik om een videobestand te kiezen of sleep het hierheen
Ondersteunt WebM, OGV, MKV, AVI, GIF en andere gangbare formaten; onder 500 MB aanbevolen
Beeldsnelheid: hoger = gladder maar groter bestand
Maximale breedte: automatisch geschaald om de beeldverhouding te behouden
Paletkleuren: minder kleuren = kleiner bestand, lichtjes minder kwaliteit
Conversie naar geanimeerde GIF: haalt beelden uit de video met de gekozen beeldsnelheid, schaalt naar de maximale breedte, en bouwt een geoptimaliseerd kleurenpalet voor de lus. Het audiospoor (indien aanwezig) wordt weggegooid.
Waarom zijn GIF's zo groot? Paletten, dithering en het formaat uit 1987 dat videowerk doet

GIF (Graphics Interchange Format, 1987) is ontworpen als stilstaand-beeldformaat met een kleine animatiebonus, en dat is te zien. Twee eigenschappen bepalen alles op deze pagina: elk beeld is beperkt tot 256 kleuren gekozen uit een opgeslagen palet, en beelden worden gecomprimeerd met LZW — een algemene bytecompressor uit het zip-tijdperk — die geen idee heeft dat er video wordt opgeslagen. Er is geen bewegingscompensatie, geen rekenwerk van "dit beeld lijkt grotendeels op het vorige" zoals bij echte videocodecs; elk beeld is in wezen een afzonderlijk gecomprimeerde afbeelding. Het palet begrijpen is de sleutel tot kleine, mooi ogende GIF's.

Vijf feiten om de rest van de pagina te verankeren:
• elk beeld bevat maximaal 256 kleuren (28) uit een palet; echte kleurenvideo moet naar beneden gekwantiseerd worden
• dithering simuleert ontbrekende kleuren door stippen van naburige palettinten te verspreiden — grotere bestanden, gladdere verlopen
• de beeldtiming wordt opgeslagen in eenheden van 10 ms: 10 fps → vertraging 10 (100 ms); de praktische ondergrens is vertraging 2 (20 ms = 50 fps)
• beelden worden onafhankelijk met LZW gecomprimeerd — geen compressie tussen beelden is de belangrijkste grootteboosdoener
• minder kleuren, minder beelden, kleinere afmetingen: elke instelling verkleint de LZW-invoer, en het effect vermenigvuldigt zich
Het palet van 256 kleuren en banding

Een pixel van een kleurenvideo heeft 24 bits nodig (16,7 miljoen mogelijkheden); een GIF-pixel is een 8-bits index in een tabel van maximaal 256 kleuren. Video naar GIF converteren betekent daarom palettekwantisatie: kies de 256 kleuren die de inhoud het best vertegenwoordigen en snap daarna elke pixel naar de dichtstbijzijnde. Verlopen betalen de prijs — een lucht die 4.000 licht verschillende blauwtinten nodig heeft, krijgt er 30, en het gladde verloop stort in zichtbare strepen in, de zogenaamde banding. Vlakke graphics met hoog contrast (logo's, gamesprites, grafieken) merken het nauwelijks; foto's en video worden het hardst getroffen. De kwaliteit van het palet van een converter bepaalt een groot deel van de uitvoerkwaliteit.

Dithering: ruis inruilen voor gladheid

Dithering is de klassieke oplossing voor banding: in plaats van elke pixel naar de dichtstbijzijnde palettint te snappen, verspreidt het een mengsel van de twee dichtstbijzijnde kleuren zodat het gemiddelde over een klein gebied overeenkomt met de oorspronkelijke tint. Verlopen zien er dramatisch gladder uit — de strepen lossen op in fijne ruis die het oog op normale kijkafstand mengt. De prijs is de bestandsgrootte: ruis is hoogfrequent detail, en LZW comprimeert regelmatige strepen veel beter dan verspreide stippen. Dat is de fundamentele GIF-afweging die deze pagina blootlegt: zet dithering uit voor kleinere bestanden met banding, zet het aan voor gladde verlopen tegen een groottepremie.

Beeldtiming: de ondergrens van 20 ms

GIF slaat de vertraging tussen beelden op in eenheden van 1/100 seconde. 10 fps betekent vertraging 10 (100 ms per beeld); 20 fps betekent vertraging 5 (50 ms). De kleinste nuttige waarde is 2 (20 ms, dus 50 fps), en in de praktijk zetten de meeste browsers alles daaronder op 100 ms — om 60 fps te vragen levert stilzwijgend tragere weergave op. Voorbij de ondergrens vermenigvuldigt elke extra fps het aantal beelden: 15 fps → 50 fps voor hetzelfde fragment betekent meer dan drie keer zoveel beelden, en de GIF-grootte schaalt ongeveer lineair met het aantal beelden. Een clip van 10 seconden op 15 fps is 150 beelden; op 50 fps zou het er 500 zijn.

Waarom GIF's zoveel groter worden dan echte video

Moderne videocodecs besteden de meeste bits aan het beschrijven van verandering tussen beelden — een vastgezette camera maakt dat latere beelden bijna niets kosten. De LZW van GIF ziet elk beeld als een nieuwe afbeelding (de enige truc tussen beelden is een transparantievlag die pixels overslaat die identiek zijn aan het vorige beeld, wat veel minder helpt dan echte bewegingscompensatie). De vuistregel: voor hetzelfde fragment is een GIF vele malen groter dan een goed gecodeerde WebM met dezelfde resolutie. Als de bestemming echte video accepteert, geef daar de voorkeur aan; GIF wint alleen waar zijn universaliteit en het automatisch afspelen/lussen belangrijk zijn.

Veelvoorkomende misverstanden
  • "GIF is gecomprimeerd, dus het is efficiënt voor video." LZW is een compressor op bytenniveau uit 1987 zonder bewegingsmodel; voor bewegende beelden is het het minst efficiënte veelgebruikte formaat op het web.
  • "Mijn bron is 60 fps, dus de GIF moet dat ook zijn." De vertragingsondergrens van 20 ms beperkt GIF tot 50 fps, en browsers zetten vertragingen onder de ondergrens omhoog. Beeld-voor-beeld-getrouwheid kan GIF niet leveren.
  • "Dithering is gewoon ruis die uitgezet moet worden." Het is een bewuste kwaliteit-groottewisseling: uit geeft kleinere bestanden met banding, aan geeft gladde verlopen die bytes kosten.
  • "Minder kleuren ziet er altijd slecht uit." Voor vlakke graphics en animatie met hoog contrast kunnen zelfs 64 kleuren identiek lijken aan 256 — en het bestand nog kleiner maken.

Gerelateerde tools: Video naar WebP/APNG voor animatie in echte kleuren met echte compressie, GIF naar video voor de omgekeerde richting (palet naar echte kleuren), Video naar WebM voor hetzelfde fragment als echte video, en Videosnijder om de bron voor het converteren bij te snijden.