Animerte gifs er allestedsnærværende på sosiale medier nettsteder, budbringere og mer. De er vanligvis korte og rett til poenget. Har du noen gang ønsket å dele et kort klipp av en interessant del av en video? Du kan opprette et animert gif fra en videofil som du kan dele via flere sosiale nettsteder og / eller chat-applikasjoner.

Denne artikkelen er en diskusjon om hvordan du lager et animert gif av en bunte av en video på Linux ved hjelp av kommandolinjeverktøy.

Setup

For å lage et animert gif fra en video, krever vi to verktøy. Den første ville bli brukt til å snipe eller kutte bare den delen av videoen vi er interessert i, og samtidig ta stillbilder og generere de enkelte gifbildene. Det andre verktøyet vil kombinere disse genererte gifsene i det siste animerte gif.

Verktøy 1 er ffmpeg, som ifølge sin egen definisjon er i stand til å dekode, kode, omkode, mux, demux, strømme, filtrere og spille stort sett alt som mennesker og maskiner har opprettet . Dessverre, for grunner utenfor denne artikkelen, er ffmpeg ikke tilgjengelig på Ubuntu-repositoriene for Ubuntu-versjoner mellom 11.10 og 14.10. Heldigvis er ffmpeg planlagt å gå tilbake til de offisielle Ubuntu-depotene fra Ubuntu 15.04 for å bli utgitt i april 2015.

For å installere ffmpeg i Ubuntu-versjoner der den ikke er i de offisielle arkivene, kan du enten laste ned de statiske byggene herfra, klone kildekoden ved hjelp av git,

 git klon git: //source.ffmpeg.org/ffmpeg.git ffmpeg 

eller legg til Jon Svenrinssons PPA ved å bruke følgende kommandoer:

 sudo apt-add-repository av: jon-severinsson / ffmpeg sudo apt-oppdatering sudo apt-get install ffmpeg 

Det andre verktøyet er imagemagick som gjør at brukerne kan manipulere bilder på en rekke måter. Imagemagick er tilgjengelig via de offisielle Ubuntu installasjonskanaler og kan installeres med følgende kommando:

 sudo apt-get install imagemagick 

Snipping av videoen

Animerte gifs er bedre som korte klipp. Et animert gif er en sekvens av forskjellige gifbilder som vises etter hverandre. Hvis hvert gif er 1 MB, og animasjonen din har 100 bilder, vil det animerte gifet være 100 MB. Du vil definitivt ikke konvertere en to timers film til et animert gif. Det første vi ville gjøre er å ta snapshots av videoen mellom et valgt start- og stopppunkt og lagre disse øyeblikksbildene som gifbilder.

Først opprett en katalog der de genererte gifsene ville bli lagret.

 mkdir ffmpeg_dir 

Kjør deretter kommandoen, erstatt "video.mp4" med ønsket videofil:

 ffmpeg -ss 00:00:02 -i video.mp4-til 5 -r 5 -vf skala = 400: -1 ffmpeg_dir / out% 04d.gif 

I kommandoen ovenfor er alternativene og deres beskrivelser:

  • ss - start opptak på posisjon. Posisjon kan enten være et nummer i sekunder eller en absolutt posisjon i videoen uttrykt i "hh: mm: ss [.xxx]" (med millisekunder valgfritt)
  • i - input video.mp4
  • to - stoppe opptaket på stillingen. Posisjon kan også være et nummer i sekunder (som betyr opptak for gitt antall sekunder), eller det kan være en absolutt posisjon i videoen.
  • vf - filter graf. Vi bruker den til å skille de genererte bildene til ønsket størrelse (skala = bredde: høyde). Vi angav -1 for høyde, noe som indikerer at aspektforholdet skal opprettholdes, mens bredden skal være 400 piksler. De genererte bildene kan forvrides ved å angi vilkårlig bredde og høydeverdier
  • r - bildefrekvens (bilder per sekund). Høyere verdi betyr at flere bilder vil bli tatt, noe som vil resultere i en jevnere animasjon, men et større animert gif.

Mappen "ffmpeg_dir" skal nå inneholde gifbilder. Totalt antall bilder avhenger av lengden på ønsket klipp og bildefrekvensen.

Opprette animasjonen

For å slå sammen gifsene i et gigantisk animert gif, bruker vi et imagemagick-verktøy kalt convert .

 konvertere -delay 1x5 -loop 0 ffmpeg_dir / out * .gif ffmpeg_dir / animation.gif 

  • delay - angir hvor lenge tiden skal gå i pause mellom bilder (dvs. animasjonshastigheten). 1 × 5 indikerer 5 bilder per sekund.
  • loop - angir antall iterasjoner som kreves. 0 betyr uendelig.

Konklusjon

På dette tidspunktet bør du ha en skreddersydd animasjon, klar til å dele med reddit, google +, facebook, bbm og mer. Eksperimenter med rammeprisen på ffmpeg (-r) og konverter (-delay) for å oppnå den jevneste animasjonen ved den minste totale filstørrelsen. Nå kan du lage animerte gifbilder av utdrag av favorittvideoene dine.