Animerede gifs er allestedsnærværende på sociale medier websites, messengers og mere. De er normalt korte og lige til det punkt. Har du nogensinde ønsket at dele et kort klip af en interessant del af en video? Du kan oprette et animeret gif fra en videofil, som du kan dele via flere sociale websteder og / eller chat applikationer.

Denne artikel er en diskussion om, hvordan man opretter et animeret gif af en uddrag af en video på Linux ved hjælp af kommandolinjeværktøjer.

Opsætning

For at oprette et animeret gif fra en video kræver vi to værktøjer. Den første ville blive brugt til at snappe eller skære bare den del af den video, vi er interesseret i, og samtidig tage snapshots og generere de enkelte gif billeder. Det andet værktøj vil kombinere disse genererede gifs til det endelige animerede gif.

Værktøj 1 er ffmpeg, som ifølge sin egen definition er i stand til at afkode, kode, kryptere, mux, demux, streame, filtrere og spille stort set alt hvad mennesker og maskiner har skabt . Desværre er ffmpeg af grunde uden for denne artikels anvendelsesområde desværre ikke tilgængelig på de officielle Ubuntu-lagre for Ubuntu-versioner mellem kl. 11.10 og 14.10. Heldigvis er ffmpeg planlagt at vende tilbage til den officielle Ubuntu-depot fra Ubuntu 15.04, der udgives i april 2015.

For at installere ffmpeg i Ubuntu versioner, hvor den ikke er i de officielle arkiver, kan du enten downloade de statiske bygninger herfra, klone kildekoden ved hjælp af git,

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

eller tilføj Jon Svenrinssons PPA ved hjælp af følgende kommandoer:

 sudo apt-add-repository ppa: jon-severinsson / ffmpeg sudo apt-opdatering sudo apt-get install ffmpeg 

Det andet værktøj er imagemagick, som gør det muligt for brugerne at manipulere billeder på en række måder. Imagemagick er tilgængelig via de officielle Ubuntu installationskanaler og kan installeres med følgende kommando:

 sudo apt-get install imagemagick 

Snipping videoen

Animerede gifs er bedre som korte klip. Et animeret gif er en sekvens af forskellige gifbilleder, der vises efter hinanden. Hvis hver gif er 1 MB, og din animation har 100 billeder, vil dit animerede gif være 100 MB. Du vil helt sikkert ikke konvertere en to timers film til et animeret gif. Det første, vi ville gøre, er at tage snapshots af videoen mellem et valgt start- og stoppunkt og gemme disse snapshots som gifbilleder.

Opret først en mappe, hvor de genererede gifs ville blive gemt.

 mkdir ffmpeg_dir 

Kør derefter kommandoen, og erstat "video.mp4" med den ønskede 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 mulighederne og deres beskrivelser:

  • ss - start optagelse på position. Position kan enten være et tal i sekunder eller en absolut position i videoen udtrykt i "hh: mm: ss [.xxx]" (med millisekunder valgfrit)
  • i - input video.mp4
  • to - stop optagelse på position. Position kan også være et tal i sekunder (hvilket betyder rekord for det givne antal sekunder), eller det kan være en absolut position i videoen.
  • vf - filter graf. Vi bruger det til at skale de genererede billeder til vores ønskede størrelse (skala = bredde: højde). Vi angav -1 for højde, hvilket indikerer at billedforholdet skal opretholdes, mens bredden skal være 400 pixels. De genererede billeder kan forvrænges ved at angive vilkårlig bredde og højdeværdier
  • r - billedhastighed (rammer per sekund). Højere værdi betyder flere billeder vil blive fanget, hvilket ville resultere i en glattere animation, men et større animeret gif.

Mappen "ffmpeg_dir" skal nu indeholde gifbilleder. Det samlede antal billeder afhænger af længden af ​​dit ønskede klip og billedhastigheden.

Oprettelse af animationen

For at fusionere gifs i et kæmpe animeret gif bruger vi et imagemagick værktøj kaldet convert .

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

  • delay - angiver hvor lang tid der skal gå i pause mellem billeder (dvs. animationshastigheden). 1 × 5 angiver 5 billeder pr. Sekund.
  • loop - angiver antallet af iterationer, der kræves. 0 betyder uendelig.

Konklusion

På dette tidspunkt skal du have en brugerdefineret bygget animation, klar til at dele med reddit, google +, facebook, bbm og meget mere. Eksperiment med billedfrekvensen på ffmpeg (-r) og konverter (-delay) for at opnå den bedst mulige animation ved den mindste samlede filstørrelse. Nu kan du oprette animerede gifbilleder af uddrag af dine yndlingsvideoer.