Animerade gifs är allestädes närvarande på sociala medier webbplatser, budbärare och mer. De är vanligtvis korta och raka till punkten. Har du någonsin velat dela ett kort klipp av en intressant del av en video? Du kan skapa ett animerat gif från en videofil som du kan dela via flera sociala webbplatser och / eller chattprogram.

Denna artikel är en diskussion om hur man skapar ett animerat gif av ett fragment av en video på Linux med hjälp av kommandoradsverktyg.

Inrätta

För att skapa ett animerat gif från en video behöver vi två verktyg. Den första skulle användas för att snipa eller klippa bara den del av videon vi är intresserade av och samtidigt ta ögonblicksbilder och skapa de enskilda gifbilderna. Det andra verktyget skulle kombinera dessa genererade gifs till den sista animerade giften.

Verktyg 1 är ffmpeg, som enligt sin egen definition kan avkoda, koda, transcode, mux, demux, strömma, filtrera och spela ganska mycket vad människor och maskiner har skapat . Tyvärr, för orsaker utanför denna artikels räckvidd är ffmpeg inte tillgängligt på de officiella Ubuntu-repositorierna för Ubuntu-versioner mellan 11.10 och 14.10. Tack och lov är ffmpeg planerad att återvända till officiella Ubuntu-repositories från Ubuntu 15.04 som kommer att släppas i april 2015.

För att installera ffmpeg i Ubuntu-versioner där det inte finns i de officiella arkiverna kan du antingen hämta de statiska byggnaderna härifrån, klona källkoden med git,

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

eller lägg till Jon Svenrinssons PPA med följande kommandon:

 sudo apt-add-repository ppa: jon-severinsson / ffmpeg sudo apt-uppdatera sudo apt-get installera ffmpeg 

Det andra verktyget är imagemagick som gör det möjligt för användare att manipulera bilder på olika sätt. Imagemagick är tillgängligt via de officiella Ubuntu-installationskanalerna och kan installeras med följande kommando:

 sudo apt-get install imagemagick 

Snipping videoen

Animerade gifs är bättre som korta klipp. En animerad gif är en sekvens av olika gifbilder som visas efter varandra. Om varje gif är 1 MB, och din animering har 100 bilder, skulle ditt animerade gif vara 100 MB. Du vill definitivt inte konvertera en två timmars film till en animerad gif. Det första vi skulle göra är att ta ögonblicksbilder av videon mellan en vald start- och stopppunkt och spara dessa ögonblicksbilder som gifbilder.

Skapa först en katalog där de genererade gifsna skulle sparas.

 mkdir ffmpeg_dir 

Kör sedan kommandot, ersätt "video.mp4" med din önskade videofil:

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

I kommandot ovan är alternativen och deras beskrivningar:

  • ss - börja spela in på position. Positionen kan antingen vara ett tal i sekunder eller en absolut position i videon uttryckt i "hh: mm: ss [.xxx]" (med millisekunder valfritt)
  • i - ingången video.mp4
  • to - stoppa inspelningen på plats. Position kan också vara ett tal i sekunder (vilket betyder inspelning för det angivna antalet sekunder), eller det kan vara en absolut position i videon.
  • vf - vf . Vi använder den för att skala de genererade bilderna till önskad storlek (skala = bredd: höjd). Vi angav -1 för höjd, vilket indikerar att bildförhållandet bör bibehållas, medan bredden ska vara 400 pixlar. De genererade bilderna kan snedvrida genom att ange godtyckliga bredd- och höjdvärden
  • r - bildhastighet (bildrutor per sekund). Högre värde betyder att fler bilder kommer att fångas, vilket skulle resultera i en mjukare animation men en större animerad gif.

Mappen "ffmpeg_dir" ska nu innehålla gifbilder. Det totala antalet bilder beror på längden på det önskade klippet och bildhastigheten.

Skapa animationen

För att sammanfoga gifs till ett jätte animerat gif använder vi ett imagemagick-verktyg som heter convert .

 konvertera -dela 1x5 -loop 0 ffmpeg_dir / out * .gif ffmpeg_dir / animation.gif 

  • delay - anger hur länge tiden ska pausa mellan bilder (dvs. animationshastigheten). 1 × 5 anger 5 bilder per sekund.
  • loop - anger hur många iterationer som krävs. 0 betyder oändlig.

Slutsats

Vid denna tidpunkt bör du ha en anpassad byggd animering, redo att dela med reddit, google +, facebook, bbm och mer. Experimentera med bildfrekvensen på ffmpeg (-r) och konvertera (-delay) för att uppnå en jämnaste animering med den minsta totala filstorleken. Nu kan du skapa animerade gifbilder av utdrag av dina favoritvideor.