Как сделать GIF маленьким для отправки
Пятисекундная запись экрана превращается в GIF на 20 МБ и упирается в каждый лимит загрузки на своём пути. Мессенджеры ограничивают вложения на бесплатных тарифах, форумы часто пропускают лишь несколько мегабайт, а самые популярные почтовые сервисы отклоняют вложения больше 25 МБ. Для аватаров, слотов под эмодзи и картинок в подписи ограничения ещё строже.
Хорошая новость в том, что почти любой раздутый GIF содержит гораздо больше данных, чем способен заметить глаз. В этом руководстве разберём, откуда берётся вес, как предсказуемо его уменьшить и когда правильнее вообще не отправлять GIF.
Почему GIF такие огромные
Формат появился в 1987 году и создавался для небольшой графики, а не для видео. Каждый кадр хранится как отдельная картинка со сжатием LZW без потерь, которое хорошо справляется с однотонными участками и пасует перед любым шумом. Компенсации движения нет: видеокодек после первого кадра хранит говорящую голову на статичном фоне почти бесплатно, а GIF снова и снова платит за весь кадр целиком.
Кроме того, каждый кадр ограничен 256 цветами. Когда GIF делают из видео с камеры, кодировщик рассыпает по каждому кадру точки дизеринга, чтобы имитировать недостающие оттенки, — и именно эти точки LZW сжимает хуже всего.
Остаётся три рычага, и их эффект перемножается:
- Частота кадров. Переход с 30 на 12 fps убирает 60% кадров. Большинство GIF для чатов нормально смотрятся при 10–15 fps.
- Размеры. Объём зависит от количества пикселей, а не от ширины. При масштабе 75% остаётся 56% пикселей, при 50% — четверть.
- Палитра. Палитра из 64 или 128 цветов, подобранная под конкретную анимацию, сжимается гораздо лучше, чем 256.
Четвёртый рычаг — длительность, и он самый дешёвый: если отрезать скучную секунду в конце цикла, визуально вы ничего не потеряете.
Как ужать готовый GIF
Сжать GIF пересобирает анимацию с помощью FFmpeg, который работает прямо в браузере. Первый проход анализирует всю анимацию и строит одну оптимизированную палитру, второй перерисовывает каждый кадр под неё с упорядоченным дизерингом: он оставляет регулярный узор, который сжимается намного лучше случайного шума.
- Выберите уровень. По умолчанию стоит «Среднее».
- Перетащите один или несколько GIF. В каждой строке виден размер до и после.
- Если результат всё ещё слишком большой, удалите его, переключитесь на следующий уровень и перетащите оригинал заново.
Что делают уровни, в цифрах:
- «Лёгкое»: 15 fps, исходные размеры, до 256 цветов. Для демонстраций интерфейса, где каждый пиксель текста должен оставаться читаемым.
- «Среднее»: 12 fps, 75% ширины и высоты, до 128 цветов. Правильная первая попытка для GIF-реакций и записей, которыми делятся в чате.
- «Сильное»: 10 fps, половина ширины и высоты, до 64 цветов. Рассчитано на жёсткие лимиты: число кадров и пикселей вместе падает до малой доли от исходного.
Тайминг сохраняется на любом уровне. Трёхсекундный цикл по-прежнему длится три секунды, просто рисуется меньшим числом кадров. Принимаются файлы до 100 МБ, и ничего не покидает ваше устройство.
Какой уровень для какого контента
- Записи экрана и демонстрации интерфейса хорошо переносят сокращение цветов, но страдают от уменьшения размеров: мелкий текст превращается в кашу. Начните с «Лёгкого»; если не хватит, в следующий раз запишите область поменьше, а не переходите на «Сильное».
- Стикеры, логотипы и плоские иллюстрации с горсткой цветов при 64 цветах выглядят почти так же, поэтому «Сильное» обычно подходит.
- Фрагменты видео с камеры с телесными тонами, небом и градиентами при 64 цветах заметно расслаиваются на полосы. Безопасный потолок — «Среднее».
- Пиксель-арт масштабировать нельзя никогда. Используйте «Лёгкое».
Начните с видео, если оно сохранилось
Если GIF сделан из видео и исходник у вас остался, пересобрать его часто выгоднее, чем выжимать готовый GIF: вы с самого начала управляете настройками.
- Обрежьте клип до нужного момента инструментом Обрезать видео. Для цикла обычно хватает трёх секунд.
- Откройте Конвертировать видео в GIF и выберите ширину и частоту кадров. Для чата надёжный вариант — 320 или 480 px при 10 fps; 640 px берите только для записей экрана с текстом.
- Сконвертируйте. Если результат чуть превышает лимит, прогоните его через «Сжать GIF» на уровне «Среднее».
«Конвертировать видео в GIF» всегда отсчитывает максимальную длительность от 0:00, поэтому важно сначала обрезать видео: иначе вы получите первые секунды ролика, а не нужный фрагмент.
Решение получше, если площадка позволяет
Если площадка, куда вы публикуете, принимает видео, отправьте MP4. Те же пять секунд, которые в GIF весят 20 МБ, в H.264 часто занимают несколько сотен килобайт — в полном цвете и с полной частотой кадров. Большинство современных мессенджеров воспроизводят короткие беззвучные ролики прямо в ленте и по кругу, так что получатель видит практически то же самое. Некоторые мессенджеры даже незаметно конвертируют загруженные GIF в видео — именно по этой причине.
Сжать видео выдаёт MP4 в H.264; для чата хорошо подходит пресет «Среднее». Для беззвучного цикла звуковую дорожку всё равно хранить незачем.
GIF остаётся единственным вариантом там, где видео не разрешено или не запускается автоматически: в теле письма и подписях, в README-файлах на некоторых хостингах, на старых форумных движках, в слотах для своих эмодзи и аватаров, а также в инструментах документации, которые вырезают видео. Там используйте GIF, а везде остальное — видео.
Типичные ситуации
- Мессенджер отклоняет файл как слишком большой. Сначала попробуйте «Среднее». Если GIF сделан из записи экрана длиннее десяти секунд, укоротите исходник, а не переходите на «Сильное».
- Форум ограничивает вложения несколькими мегабайтами. «Сильное», а если и этого мало — пересоберите из исходного клипа в 320 px и 8–10 fps.
- Подпись в письме или рассылка. Держите анимацию в пределах нескольких сотен килобайт: маленькие размеры, мало кадров, «Сильное». Крупные анимированные картинки замедляют открытие писем, а некоторые почтовые клиенты показывают только первый кадр.
- GIF-реакция для группового чата. Ширины 320 px на экране телефона более чем достаточно. В двухсекундной реакции 10 fps никто не заметит.
Решение проблем
- Файл почти не уменьшился. Исходник уже был оптимизирован: маленький, с низкой частотой кадров или с небольшим числом цветов. Поднимитесь на уровень выше. Если оригинал идёт с частотой 10 fps или ниже, «Лёгкое» может даже добавить кадры, так что сразу переходите к «Среднему» или «Сильному».
- На градиентах появились полосы. Это палитра из 128 или 64 цветов. Вернитесь на уровень полегче или обрежьте небо либо мягкий фон.
- Проступила мелкая сетчатая текстура. Это узор упорядоченного дизеринга, сильнее всего заметный на плавных градиентах при «Сильном».
- В одной сцене странные цвета. Вся анимация использует одну палитру, поэтому короткой сцене в необычных цветах достаётся мало мест в палитре. Вырезать эту сцену поможет больше, чем любая настройка.
- Страница будто зависла. Движок FFmpeg загружается один раз при первом использовании, а дальше работает локально. Большой GIF может обрабатываться до минуты на ноутбуке и дольше на телефоне.
Чек-лист
- Принимает ли площадка MP4? Если да, отправьте сжатый MP4.
- Прежде всего сократите длительность до нужного фрагмента.
- Для чата ориентируйтесь на 320–480 px при 10–12 fps.
- Сжимайте на уровне «Среднее»; на «Сильное» переходите только при жёстких лимитах.
- Перед отправкой проверьте результат в реальном размере отображения.
Опубликовано 2026-10-08