Video naar GIF Converter

Zet een fragment van een videobestand om in een geanimeerde GIF, rechtstreeks in uw browser — kies het bereik, de framesnelheid en het formaat. Er wordt niets geüpload.

252 weergaven

Waarom een GIF Is Opgebouwd uit Losse Frames, Niet "Gecomprimeerde Video"

Een geanimeerde GIF is geen gecomprimeerde versie van een video zoals een MP4 dat is — het is fundamenteel een ander, veel ouder formaat: een reeks complete stilstaande afbeeldingen, elk met een eigen minuscuul 256-kleurenpalet, achter elkaar afgespeeld met een vertraging per frame. Die limiet van 256 kleuren komt voort uit de oorsprong van het GIF-formaat in 1987, toen 8-bit (256-waarden) kleurindexering het praktische plafond was voor de hardware van die tijd, en dit is sindsdien nooit veranderd — wat precies verklaart waarom GIF's van fotografische inhoud vaak zichtbare bandvorming of dithering vertonen die een videoformaat nooit zou tonen, en waarom deze tool elk frame door een proces van twee stappen laat gaan: kleurkwantisatie (het analyseren van de daadwerkelijke kleuren in een frame en het kiezen van de 256 die het best representatief zijn) gevolgd door paletmapping (elke pixel opnieuw toewijzen aan de dichtstbijzijnde overeenkomst in dat verkleinde palet).

Het extraheren van frames uit een videobestand in een browser kan niet gebruikmaken van een eenvoudige "lees het volgende frame"-API, omdat browsers zo'n API niet aanbieden voor willekeurige videobestanden. In plaats daarvan gebruikt deze tool de standaard oplossing: het stelt de currentTime van het video-element in op een specifiek tijdstip, wacht op de seeked-gebeurtenis van de browser om te bevestigen dat precies dat frame daadwerkelijk is gedecodeerd en weergegeven, en tekent vervolgens dat ene videoframe op een canvas en leest de pixels terug uit. Dit één keer per uitvoerframe doen, op gelijk verdeelde tijdstippen die worden bepaald door de gekozen framesnelheid, is langzamer dan realtime afspelen, maar garandeert dat elk geëxtraheerd frame nauwkeurig is in plaats van een schatting op basis van beste inspanning.

Framesnelheid en GIF-bestandsgrootte wisselen op een manier tegen elkaar in die videocompressie niet doet: omdat elk afzonderlijk frame een bijna-complete afbeelding is (in tegenstelling tot de inter-frame-voorspelling van video, die alleen opslaat wat is veranderd), verdubbelt het verdubbelen van de framesnelheid ongeveer de bestandsgrootte — wat de reden is waarom deze tool het praktische bereik bewust beperkt tot een bescheiden framesnelheid en u de pixelafmetingen laat verkleinen — een GIF van 360px breed op 10 fps is dramatisch kleiner dan hetzelfde fragment op 640px en 20 fps, vaak een factor tien of meer.

Goede Instellingen Kiezen voor het Resultaat

  • Korte fragmenten (2-5 seconden) op 8-12 fps leveren redelijk grote, vloeiend ogende GIF's op; langere fragmenten of hogere framesnelheden laten de bestandsgrootte snel groeien door de hierboven beschreven beperking van het palet per frame.
  • Content met grote effen kleurvlakken (schermopnamen, eenvoudige animaties, cartoons) comprimeert veel beter als GIF dan fotografische of zeer gedetailleerde beelden, omdat het kwantiseren van 256 kleuren uit een eenvoudig palet veel minder verlies oplevert dan het kwantiseren van 256 uit een volledig fotografisch verloop.
  • Alles gebeurt lokaal: het videobestand wordt rechtstreeks gelezen door het video-element van uw browser en verlaat nooit uw apparaat, en de codering draait volledig in JavaScript.
  • De frame-extractiestap (zoeken + wachten + tekenen) is inherent langzamer dan realtime video-afspelen, dus een langer fragment of een hogere framesnelheid zal merkbaar meer verwerkingstijd kosten voordat de GIF klaar is, evenredig met het totale aantal opgevraagde frames.

Veelgestelde vragen

Waarom ziet een GIF er lager in kwaliteit uit dan de bronvideo?

GIF gebruikt sinds de creatie van het formaat in 1987 een 8-bit, 256-kleurenpalet, en die limiet is nooit veranderd. Elk frame wordt gekwantiseerd naar de 256 best passende kleuren, wat verklaart waarom fotografische inhoud vaak zichtbare bandvorming vertoont die de originele video, met miljoenen kleuren, niet vertoont.

Waarom maakt een hogere framesnelheid het bestand zo veel groter?

In tegenstelling tot videocompressie, die vooral opslaat wat er tussen frames is veranderd, slaat een GIF elk frame op als een bijna-complete afbeelding met een eigen palet. Het verdubbelen van de framesnelheid verdubbelt ongeveer het aantal opgeslagen volledige frames, dus de bestandsgrootte schaalt bijna lineair met het aantal frames in plaats van te worden afgevlakt zoals videocodecs dat doen.

Waarom duurt het maken van de GIF merkbaar langer voor een langer fragment?

Browsers bieden geen manier om videoframes rechtstreeks uit te lezen, dus deze tool zoekt de video naar elk exact tijdstip, wacht tot de browser bevestigt dat dat frame is gedecodeerd, en legt het dan vast — één zoek-en-wacht-cyclus per uitvoerframe. Meer opgevraagde frames betekent meer van deze cycli, wat oploopt tot echte verwerkingstijd in plaats van directe conversie.

Wordt mijn videobestand ergens geüpload?

Nee. De video wordt rechtstreeks geladen in een HTML-video-element in uw browser en elke verwerkingsstap — frame-extractie, kleurkwantisatie en GIF-codering — draait lokaal in JavaScript. Er wordt niets naar een server verzonden.

Welk soort bronvideo comprimeert het best naar een GIF?

Content met grote effen kleurvlakken — schermopnamen, eenvoudige animaties, cartoons — comprimeert veel beter dan fotografische of zeer gedetailleerde beelden, omdat een eenvoudig kleurenpalet veel minder detail verliest wanneer het wordt teruggebracht naar 256 kleuren dan een volledig fotografisch verloop.

Reacties

Nog geen reacties — schrijf de eerste!

Vergelijkbare tools