Как создать анимированный GIF в Linux
Будь то Facebook, Google Plus, Twitter или любые другие социальные или профессиональные сети, каждый публикует свои статусы в формате GIF. Потому что в настоящее время сообщения в формате GIF привлекают больше посетителей, чем обычные изображения и видео. Анимированные GIF-файлы предназначены не только для публикации забавных постов и мемов в сети, вы также можете продуктивно использовать их для демонстрации продукта или программного обеспечения, которое вы разработали, своей аудитории.
Создать GIF-файлы не так уж и сложно. Все, что нам нужно, — это рабочий стол Linux с установленными FFmpeg и ImageMagick. Этот метод будет работать во всех других дистрибутивах, если в них установлены FFmpeg и ImageMagick. Как вы, наверное, знаете, FFmpeg — это конвертер аудио и видео с открытым исходным кодом. Используя FFmpeg, мы можем легко транслировать, конвертировать и записывать аудио- и видеофайлы. ImageMagick — это программное обеспечение с открытым исходным кодом, которое можно использовать для создания, редактирования и объединения растровых изображений.
В этом кратком уроке я покажу вам, как создавать анимированные изображения GIF на рабочем столе Ubuntu 16.04 LTS.
Сначала давайте посмотрим, как создавать изображения GIF из видео.
Как я уже сказал, нам нужно установить FFmpeg и ImageMagick для создания GIF-файлов.
FFmpeg и ImageMagick доступны в официальных репозиториях Ubuntu. Чтобы установить их, выполните следующую команду:
sudo apt-get install ffmpeg imagemagick
Я собираюсь преобразовать два видеофайла в формат GIF с помощью FFmpeg и объединить их в один файл с помощью ImageMagick. Давайте посмотрим, как я это сделал.
Сначала конвертируйте свое первое видео в формат GIF с помощью команды:
ffmpeg -ss 00:00:20 -i sample.mp4 -to 10 -r 10 -vf scale=200:-1 cutekid_cry.gif
Здесь,
- -ss: указывает начальную точку GIF.
- -i : входной файл
- sample.mp4: имя моего видеофайла.
- -to : конечная позиция файла GIF.
- -r : частота кадров. Вы можете увеличить значение, чтобы получить более качественный GIF-файл.
- -vf : граф фильтра. Масштабировать изображение GIF до нужного размера.
Пример вывода:
ffmpeg version N-79139-gde1a0d4 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab
libavutil 55. 19.100 / 55. 19.100
libavcodec 57. 30.100 / 57. 30.100
libavformat 57. 29.101 / 57. 29.101
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 40.102 / 6. 40.102
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2015-11-11 07:35:15
Duration: 00:02:35.76, start: 0.000000, bitrate: 1491 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 1296 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 192 kb/s (default)
Metadata:
creation_time : 2015-11-11 07:35:16
handler_name : IsoMedia File Produced by Google, 5-11-2011
Output #0, gif, to 'cutekid_cry.gif':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
encoder : Lavf57.29.101
Stream #0:0(und): Video: gif, bgr8, 500x281 [SAR 1124:1125 DAR 16:9], q=2-31, 200 kb/s, 100 fps, 100 tbn, 100 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc57.30.100 gif
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> gif (native))
Press [q] to stop, [?] for help
frame= 240 fps=110 q=-0.0 Lsize= 9572kB time=00:00:10.00 bitrate=7841.4kbits/s speed=4.57x
video:9569kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.027768%
Вот и все. Мы успешно создали GIF-файл из видео.
Рекомендуем прочитать:
- Gifski – кроссплатформенный высококачественный кодировщик GIF
Объедините несколько GIF-файлов в один
Вы можете комбинировать изображения GIF. Просто создайте столько GIF-файлов, сколько хотите, как показано выше, и сохраните их в одной папке.
Затем выполните следующую команду, чтобы объединить их все:
convert -delay 120 -loop 0 *.gif cutekids_crying.gif
Создать GIF из списка изображений
Мы видим, как создать GIF-изображение из видео. Теперь мы увидим, как создать GIF из списка изображений.
Перейдите в папку, в которой вы сохранили все изображения, и запустите следующую команду из терминала, чтобы создать файл GIF.
convert -delay 120 -loop 0 *.jpg linux.gif
Здесь,
- -delay 120: скорость анимации GIF.
- -loop 0: бесконечные циклы анимации.
Вот и все. Ваш GIF готов.
Надеюсь это поможет.