Изряване на сцена от филм и конвертиране до GIF-анимация

Малко се позабавлявах да изрязвам gif-чета от AVI-филм.
Необходими инструменти:
ffmpeg за Windows
Faststone Image Viewer
GifSicle за Windows
bash за Windows

Избираме си сцена от филм и виждаме времето на сцената, плюс-минус 1-2 секунди. Аз си избрах Mr. Brooks с бай Кевин Костнър. Плейването можем да го направим с всеки плеър. В случая използвам GOM-player:
AVI to Gif animation
Изрязваме сцената до jpeg, като използваме ffmpeg, но преди това влизаме в Bash, за да използваме брояч на файловете:
AVI to Gif animation
Ето и командата към ffmpeg:

ffmpeg -i "Mr.Brooks.2007.BRRip.XviD.AC3-SANTi.avi" -qscale 0 -r 23 -ss 00:02:01 -t 3 -f image2 foo-%03d.jpg

Изпълнението на горната команда ще извлече по 23 кадъра в секунда от AVI-файла и ще ги конвертира до jpg-картинки. Отваряме с FastStone директорията и изтриваме всички ненужни файлове. След това обработваме останалите файлове в Bach-режим, като си настройваме колко да се отреже от картината, намаляме размера и конвертираме всички файлове до GIF-картинки:
AVI to Gif animation

AVI to Gif animation

Предварително си записваме региона от сцената, който ни интересува. В случая режа регион 424x384px, като започвам от координати x=72, y=0:
004_01

AVI to Gif animation

AVI to Gif animation

AVI to Gif animation

AVI to Gif animation

След това използваме GifSicle, за да съединим всички GIF-файлове в един общ анимиран файл. Трябва да зададем delay (-d) мили секунди за всеки кадър, командата да цикли за всички GIF-ове последователно (-l *.gif), и името на изходния файл (-o Kostner.gif):

gifsicle -d 4 -l *.gif -o Kostner.gif

В резултат получаваме една прилична анимация, с която да се бъзикаме със съфорумците :):
AVI to Gif animation

А ето и още няколко рязаници от “Z-та световна война” с на Брат Пит бат му:
AVI to Gif animation

AVI to Gif animation

AVI to Gif animation

Ето и кратко видео, което показва подробно стъпките за правене на AVI to GIF animation:
[flv:https://blog.nediko.info/examples/avi_to_gif/Kostner_tutorial.flv examples/avi_to_gif/001.jpg 480 397]
Ако сървара не иска да пусне видеото, може да се изтегли и от тук:
Avi to GIF movie tutorial

==================

Update: 09.12.2016

Има и много по-прост начин за правене на подобни GIF-чета, като се използва само ffmpeg:

ffmpeg -i video.mkv -ss 416 -t 2 -filter:v "crop=500:360:240:30, scale=320:-1" -loop 0 -final_delay -1 out.gif

, където:
-ss 416 – старт на отрязъка. В случая 416-та секунда от видеото.
-t 2 – продължителност на отрязъка. В случая 2 секунди.
crop=500:360:240:30 – изрязва прозорец от горния ляв ъгъл с размери ШxВ: 500x360px. Започва да реже по X и Y: 240px по X и 30px по Y.
scale=320:-1 – преоразмерява видеото на ширина, като запазва съотношението по височина.
-loop 0 и -final_delay -1 – са за да стане видеото на непрекъсната GIF-анимация.

Един пример на анимация, която направих по този начин:

ffmpeg animate gif

Share and Enjoy !

Shares

Leave a Reply

Your email address will not be published. Required fields are marked *

*