Utilia

Video naar GIF

Zet een deel van een MP4-, MOV- of WebM-video in je browser om in een geanimeerde GIF, met een geoptimaliseerd kleurenpalet en een preview.

De GIF wordt gemaakt door FFmpeg, gecompileerd naar WebAssembly, in twee doorgangen (een kleurenpalet afgestemd op je clip, daarna de frames). De eerste keer wordt ongeveer 30 MB gedownload, die daarna in de cache van je browser blijft. Een browser is trager dan desktopsoftware: houd clips kort.

Zo maak je een GIF van een video

  1. Sleep een video naar het vak hierboven, of klik erop om een bestand te kiezen (tot 300 MB).
  2. De eerste 5 seconden zijn geselecteerd. Ga naar het gewenste moment en klik op Begin hier zetten en daarna op Einde hier zetten, of typ de tijden in seconden (12,5) of als minuten:seconden (0:12,5); een punt in plaats van een komma mag ook. Selectie afspelen speelt het gekozen deel opnieuw af.
  3. Kies de Frames per seconde en de Breedte. De regel naast de knop toont de lengte, het aantal frames, de afmetingen in pixels en een ruwe schatting van de bestandsgrootte.
  4. Klik op GIF maken. Er verschijnt een voortgangsbalk met een knop Annuleren.
  5. De geanimeerde GIF wordt als preview getoond. Bevalt hij, download hem dan; is hij te zwaar, pas dan de instellingen aan en maak hem opnieuw.

Hoe de omzetting werkt

Een GIF kan maar 256 kleuren per frame bevatten, terwijl een videoframe er miljoenen heeft. De kwaliteit van een GIF hangt vooral af van welke 256 kleuren gekozen worden. Deze tool gebruikt de methode met twee doorgangen van FFmpeg, die wordt aanbevolen voor mooie GIF’s:

  1. Paletdoorgang. FFmpeg leest het geselecteerde deel één keer en bouwt een palet van de 256 kleuren die juist deze clip het best weergeven (palettegen), waarbij de delen die bewegen extra gewicht krijgen.
  2. Coderingsdoorgang. Hij leest de clip opnieuw en zet elk frame om naar dat palet (paletteuse), met lichte error-diffusion-dithering om verlopen glad te maken. Alleen de gebieden die tussen frames veranderen worden opnieuw gedithered, wat flikkerende ruis voorkomt en het bestand kleiner houdt.

De frames worden ook herbemonsterd naar de gekozen framerate en verkleind met het Lanczos-filter, dat tekst en randen scherp houdt. Het resultaat speelt eindeloos in een lus, zoals de meeste GIF’s op internet.

Alles draait in je browser met FFmpeg, gecompileerd naar WebAssembly. De eerste keer wordt ongeveer 30 MB gedownload en in de cache van je browser bewaard. Je video wordt nooit geüpload.

De GIF klein houden

GIF is een oud en inefficiënt formaat: een GIF is vaak 5 tot 10 keer zwaarder dan dezelfde clip als MP4. De grootte groeit met breedte × hoogte × aantal frames, dus:

  • Kort de clip in. 2 tot 6 seconden is gebruikelijk voor een reactie of een demo.
  • Verlaag het aantal frames per seconde. 10 fps ziet er voor de meeste inhoud vloeiend genoeg uit en weegt de helft van 20 fps. Schermopnames zien er vaak prima uit op 5–8 fps.
  • Verklein de breedte. Van 640 px naar 480 px halveert het aantal pixels bijna. 480 px is een goede standaard voor chat en sociale media.

De schatting van de grootte gaat uit van ongeveer 0,3 byte per pixel per frame. Echte clips verschillen sterk: vlakke schermopnames comprimeren veel beter, korrelige camerabeelden veel slechter. Gaat de schatting boven 15 MB of heeft de clip meer dan 450 frames, dan toont de tool een waarschuwing. Boven 1.500 frames weigert hij, omdat de omzetting in een browser te lang zou duren en te veel geheugen zou gebruiken.

Beperkingen

Een browser is trager dan desktopsoftware: elke doorgang decodeert de video op één processorkern. Korte clips met een gemiddelde breedte zijn in seconden omgezet; lange clips in full hd kunnen minuten duren. Knip een lang fragment eerst uit met de tool Video knippen en zet daarna alleen dat deel om. Bestanden die je browser niet kan afspelen (AVI, sommige MKV’s) kunnen nog steeds worden omgezet, maar zonder preview: typ dan de begin- en eindtijd.

Veelgestelde vragen

Wordt mijn video geüpload?

Nee. De omzetting draait in je browser met FFmpeg, gecompileerd naar WebAssembly. Er wordt niets naar een server gestuurd.

Waarom is mijn GIF zo groot?

Omdat GIF slecht comprimeert: elk frame wordt bijna als een volledig beeld met 256 kleuren opgeslagen. Kort de selectie in, verlaag het aantal frames per seconde of verklein de breedte. De breedte halveren deelt de grootte door ongeveer vier.

Welke framerate kies ik?

10 fps is een goede balans tussen vloeiendheid en grootte. Gebruik 15–25 fps voor snelle bewegingen zoals sport of gaming, en 5–8 fps voor schermopnames of diavoorstellingen.

Waarom zijn er twee doorgangen?

De eerste doorgang zoekt de 256 kleuren die het best bij je clip passen; de tweede tekent elk frame daarmee. Eén algemeen palet geeft kleurbanden en verkeerde kleuren, en daarom zien GIF’s die op deze manier gemaakt zijn er veel schoner uit.

Is de schatting van de grootte nauwkeurig?

Het is een ruwe richtlijn, geen belofte. Ze gebruikt een gemiddelde verhouding, en de echte grootte hangt af van hoeveel het beeld beweegt en hoe gedetailleerd het is. De exacte grootte zie je na de omzetting.

Houdt de GIF het geluid?

Nee. Het GIF-formaat heeft geen audio. Wil je het geluid houden, knip dan de video in, of haal de audio er apart uit als MP3.