Geanimeerde gifs zijn alomtegenwoordig op websites van sociale media, messengers en meer. Ze zijn meestal kort en recht op het punt. Heb je ooit een korte clip van een interessant deel van een video willen delen? U kunt een geanimeerde gif maken van een videobestand dat u kunt delen via meerdere sociale sites en / of chattoepassingen.

Dit artikel is een discussie over hoe je een geanimeerd GIF van een fragment van een video op Linux kunt maken met behulp van opdrachtregelprogramma's.

Opstelling

Om een ​​geanimeerd GIF van een video te maken, hebben we twee tools nodig. De eerste zou worden gebruikt om alleen het deel van de video waarin we geïnteresseerd zijn te knippen of knippen en tegelijkertijd snapshots te maken en de afzonderlijke GIF-afbeeldingen te genereren. Het tweede hulpmiddel zou deze gegenereerde gifs combineren in het uiteindelijke geanimeerde gif.

Tool 1 is ffmpeg, dat volgens zijn eigen definitie in staat is om vrijwel alles wat mens en machine hebben gecreëerd te decoderen, coderen, transcoderen, muxeren, demuxen, streamen, filteren en spelen . Helaas, om redenen die buiten het bestek van dit artikel vallen, is ffmpeg tussen 11.10 en 14.10 niet beschikbaar op de officiële Ubuntu-repositories voor Ubuntu-versies. Gelukkig staat ffmpeg gepland om terug te keren naar de officiële Ubuntu-repositories van Ubuntu 15.04 om in april 2015 te worden uitgebracht.

Om ffmpeg in Ubuntu-versies te installeren waar het niet in de officiële repository's staat, kun je de static builds hier downloaden, de broncode klonen met behulp van git,

 git clone git: //source.ffmpeg.org/ffmpeg.git ffmpeg 

of voeg Jon Svenrinsson's PPA toe met behulp van de volgende opdrachten:

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

Het tweede hulpmiddel is imagemagick waarmee gebruikers afbeeldingen op verschillende manieren kunnen manipuleren. Imagemagick is beschikbaar via de officiële Ubuntu-installatiekanalen en kan worden geïnstalleerd met de volgende opdracht:

 sudo apt-get install imagemagick 

De video verwijderen

Geanimeerde gifs zijn beter als korte clips. Een geanimeerd GIF is een opeenvolging van verschillende GIF-afbeeldingen die na elkaar worden weergegeven. Als elk gif 1 MB is en uw animatie 100 afbeeldingen heeft, is uw geanimeerde gif 100 MB. Je wilt absoluut geen twee uur durende film omzetten in een geanimeerde gif. Het eerste wat we zouden doen, is om snapshots van de video te maken tussen een gekozen begin- en eindpunt en deze snapshots op te slaan als GIF-afbeeldingen.

Maak eerst een map waarin de gegenereerde gifs worden opgeslagen.

 mkdir ffmpeg_dir 

Voer vervolgens de opdracht uit en vervang "video.mp4" door het gewenste videobestand:

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

In de bovenstaande opdracht zijn de opties en hun beschrijvingen:

  • ss - begin met opnemen op positie. Positie kan een getal in seconden zijn of een absolute positie in de video uitgedrukt in "uu: mm: ss [.xxx]" (met milliseconden optioneel)
  • i - de input video.mp4
  • to - stoppen met opnemen op positie. Positie kan ook een getal in seconden zijn (dit betekent een record voor het opgegeven aantal seconden), of het kan een absolute positie in de video zijn.
  • vf - filtergrafiek. We gebruiken het om de gegenereerde afbeeldingen naar onze gewenste grootte te schalen (schaal = breedte: hoogte). We hebben -1 opgegeven voor de hoogte, wat aangeeft dat de beeldverhouding moet worden gehandhaafd, terwijl de breedte 400 pixels zou moeten zijn. De gegenereerde afbeeldingen kunnen worden vervormd door willekeurige breedte- en hoogtewaarden op te geven
  • r - framesnelheid (frames per seconde). Hogere waarde betekent dat er meer foto's worden gemaakt, wat zou resulteren in een vloeiender animatie maar een groter geanimeerd GIF.

De map "ffmpeg_dir" zou nu gif-afbeeldingen moeten bevatten. Het totale aantal afbeeldingen hangt af van de lengte van de gewenste clip en de framesnelheid.

De animatie maken

Om de gifs samen te voegen tot een gigantische geanimeerde gif, gebruiken we een imagemagick tool genaamd convert .

 convert -vertraging 1x5 -loop 0 ffmpeg_dir / out * .gif ffmpeg_dir / animation.gif 

  • delay - bepaalt de lengte van de pauzetijd tussen de beelden (dus de animatiesnelheid). 1 × 5 geeft 5 frames per seconde aan.
  • loop - geeft het aantal benodigde iteraties aan. 0 betekent oneindig.

Conclusie

Op dit punt zou je een op maat gemaakte animatie moeten hebben, klaar om te delen met reddit, google +, facebook, bbm en meer. Experimenteer met de framesnelheid op ffmpeg (-r) en converteer (-vertraging) om de vloeiendste animatie te bereiken met de kleinste totale bestandsgrootte. Nu kunt u geanimeerde GIF-afbeeldingen van fragmenten van uw favoriete video's maken.