Gifcurry: Создаем идеальные GIF для кода и мемов без лишних хлопот

13 Aug, 2021

Репозиторий давно не обновлялся

Последнее обновление было 4 года назад.

1,440
🔱 58
👥 34

Gifcurry

Знакомая ситуация: вы запилили крутую фичу в интерфейсе, оформили pull request и хотите наглядно показать, как она работает. Скриншоты статичны, а полноценное видео — слишком громоздко. Идеальным решением была бы GIF-анимация, но ее создание часто превращается в квест с кучей вкладок в браузере или освоением монструозных видеоредакторов. Что, если я скажу, что есть инструмент, который решает эту проблему элегантно и безболезненно?

Сегодня в нашем обзоре — Gifcurry, опенсорсный видеоредактор, созданный специально для ценителей GIF. Написанный на Haskell (что для многих уже знак качества), он берет на себя всю грязную работу по конвертации видео, оставляя вам только творчество.

Инструмент на любой вкус: GUI, CLI и библиотека

Одна из сильных сторон Gifcurry — его гибкость. Автор позаботился о разных категориях пользователей, предложив сразу три способа взаимодействия с инструментом.

Для визуалов: удобный GUI

Не любите консоль? Не проблема. Gifcurry встречает вас простым и понятным графическим интерфейсом. Загрузили видео, выбрали нужный фрагмент, подрезали края, добавили текст — и готово. Ничего лишнего, все интуитивно понятно.

Реклама

Gifcurry GUI

Для автоматизаторов: мощный CLI

А вот если вы, как и я, любите, чтобы все работало по командам из терминала, то вас порадует наличие CLI. Это открывает простор для автоматизации. Например, можно встроить создание GIF прямо в ваш сборочный скрипт или CI/CD пайплайн для генерации демо-материалов на лету. Все параметры — от времени обрезки до настроек текста — доступны через флаги.

gifcurry_cli \
  -i ~/Videos/video.webm \
  -o ~/tmp/test \
  -s 150 \
  -e 151 \
  -t ~/tmp/text-overlays.yaml \
  -w 800 \
  -f 15 \
  -c 100 \
  -d
  -L 0.1 \
  -R 0.1 \
  -T 0.1 \
  -B 0.1 \
  -m

Для разработчиков: гибкая библиотека

Ну а для Haskell-программистов автор приготовил вишенку на торте — возможность использовать Gifcurry как библиотеку в своих проектах. Это дает полный контроль над процессом и позволяет интегрировать функциональность создания GIF в любое Haskell-приложение.

Что умеет этот "швейцарский нож"?

Gifcurry — это не просто обертка над FFmpeg. Это полноценный инструмент для редактирования, который позволяет:

  • Вырезать точный фрагмент: Укажите время начала и конца с точностью до секунды.
  • Обрезать кадр (кроп): Убрать лишние элементы по краям — будь то панель задач или ненужные отступы.
  • Оптимизировать размер: Настроить ширину, FPS и количество цветов, чтобы получить GIF оптимального качества и веса.
  • Добавить дизеринг (dithering): Улучшить качество цветовых переходов, если это необходимо.

Мастер мемов и субтитров

Одна из самых крутых фич — работа с текстом. Хотите создать следующий вирусный мем или просто добавить поясняющую надпись на демо? Легко! Gifcurry позволяет накладывать текст, меняя шрифт, размер, цвет, положение, поворот и даже время его появления в кадре. А для сложных сценариев можно подготовить целый YAML-файл с описанием текстовых блоков.

text: This is an example.
  fontFamily:   Sans
  fontStyle:    Oblique
  fontSize:     800
  origin:       NorthWest
  startTime:    5.000
  endTime:      8.000
  outlineSize:  7
  outlineColor: rgba(1,100,10,1.0)
  fillColor:    rgba(255,255,0,0.0)
text: This is another example.
  fontFamily:   Serif
  origin:       Center
  startTime:    5.000
  endTime:      8.000
  outlineSize:  7
  outlineColor: rgb(1,11,100)
  fillColor:    rgba(255,0,0,0.0)

Зачем это нужно, если есть FFmpeg?

Скептик спросит: «Зачем мне это, если есть всемогущий FFmpeg и ImageMagick?». Ответ прост: Gifcurry скрывает всю их сложность. Вам не нужно гуглить километровые команды с десятком флагов, чтобы обрезать видео и наложить текст. Инструмент предоставляет простой и понятный интерфейс (будь то GUI или CLI-параметры) для решения конкретной задачи — быстрого создания качественных GIF.

Кстати, еще один приятный бонус: Gifcurry — не еще одно приложение на Electron. Он написан на Haskell, работает нативно и потребляет минимум ресурсов. Можете забыть про "скачивание дополнительной оперативной памяти" — этот инструмент легок как перышко.

Где это пригодится на практике?

Список из README отлично иллюстрирует пользу инструмента, вот несколько моих любимых кейсов:

  • Pull Request мечты: Как я уже говорил, это киллер-фича для разработчиков. Вместо тысячи слов — одна гифка, наглядно демонстрирующая изменения в UI.
  • Живой README.md: Хотите, чтобы ваш проект на GitHub выделялся? Добавьте в ридми анимированные примеры использования. Это сразу повышает привлекательность и понятность.
  • Корпоративный чат: Создавайте кастомные анимированные эмодзи для Slack или Discord, чтобы сделать общение в команде веселее и эффективнее.
  • Презентации и статьи: Анимированная иллюстрация в докладе или технической статье всегда привлекает больше внимания, чем статичная картинка.

Gifcurry — это классический пример отличного Unix-way инструмента: он делает одну вещь, но делает ее хорошо. Он избавляет от рутины и головной боли, связанной с созданием GIF, и позволяет сосредоточиться на содержании.

Неважно, кто вы — разработчик, дизайнер, менеджер или просто любитель мемов — если вам периодически нужно превращать видео в GIF, этот проект однозначно заслуживает места в вашем тулбоксе. Настоятельно рекомендую попробовать!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.