Статья
Почему GIF такие тяжёлые
Трёхсекундная анимированная GIF регулярно весит больше, чем целая минута видео MP4 с тем же самым клипом, что удивляет любого, кто привык считать видео более тяжёлым форматом. GIF никогда не задумывался как эффективный способ хранить движение; это формат изображений 1987 года, который просто умеет показывать последовательность кадров, и каждое решение в его основе появилось за десятилетия до современного сжатия видео.
GIF это последовательность изображений, а не видеопоток
Graphics Interchange Format, представленный CompuServe в 1987 году и пересмотренный как GIF89a в 1989-м, хранит анимацию как серию отдельных кадров-изображений, воспроизводимых по порядку, каждый из которых сжат сам по себе как отдельная неподвижная картинка. Настоящий видеокодек вроде H.264 вместо этого кодирует большинство кадров как разницу с предыдущим кадром, поскольку соседние кадры видео обычно очень похожи, храня только то, что изменилось. У GIF нет подобного механизма: даже в основном статичная сцена заново хранит большую часть каждого отдельного кадра.

256 цветов, нужны они источнику или нет
GIF ограничивает каждый кадр палитрой максимум в 256 цветов, выбранных из гораздо более широкого диапазона, который на самом деле содержит фото или видео. Запись экрана или видеоклип с плавными градиентами и освещением сплющивается до этой ограниченной палитры, внося заметные полосы и дизеринг, и файлу всё равно приходится хранить полный кадр этих урезанных по цвету данных на каждом отдельном кадре, без какого-либо межкадрового сжатия, на которое можно опереться.

Почему формат так и не получил современную замену
Зацикленная анимация GIF и универсальная поддержка, любой браузер и мессенджер может проиграть её без плагина, удерживали его в постоянном использовании ещё долго после появления лучших вариантов, так же как MP3 продолжал использоваться после выхода более эффективных аудиокодеков. WebP и APNG оба поддерживают анимацию с настоящим межкадровым сжатием и намного большим числом цветов, давая заметно меньшие файлы для того же содержимого, но ни один из них не достиг уровня универсальной поддержки GIF на каждой платформе и в каждом контексте обмена, поэтому GIF остаётся выбором по умолчанию для короткой зацикленной анимации, даже будучи наименее эффективным способом её хранения.
MP4 того же клипа обычно намного меньше
Конвертация того же короткого клипа в MP4 с H.264 сохраняет межкадровое сжатие видеокодека и полный цветовой диапазон, поэтому файл обычно получается в разы меньше эквивалентного GIF для идентичного содержимого и длительности. Компромисс в том, что MP4 требует видеоплеер вместо отображения прямо как картинка везде, где это делает GIF, хотя большинство современных мессенджеров и социальных платформ уже автоматически воспроизводят короткий MP4 так же, как это делали бы с GIF.
Конвертация между GIF и видео без загрузки чего-либо
Наш инструмент GIF в видео перекодирует анимированный GIF в компактный MP4, а video-to-gif делает обратное, когда нужен именно настоящий GIF для контекста, которому он конкретно нужен, оба целиком в браузере с помощью ffmpeg, скомпилированного в WebAssembly. Конвертация существующего тяжёлого GIF в MP4 сначала, с возвратом к GIF только для тех немногих контекстов, которые действительно требуют этот формат, обычно самый быстрый способ уменьшить размер файла распространяемой анимации, не теряя зацикленность.
Инструменты из этой статьи
Частые вопросы
Почему короткая GIF весит больше, чем намного более длинное видео MP4?
GIF заново хранит большую часть каждого кадра независимо без межкадрового сжатия, ограничиваясь 256 цветами, тогда как MP4 кодирует большинство кадров как просто разницу с предыдущим и сохраняет намного больше деталей цвета. Накладные расходы формата GIF на кадр накапливаются быстро даже для клипа в разы короче видео.
Можно ли уменьшить GIF без конвертации в видео?
Да, до определённого предела: снижение частоты кадров, уменьшение пиксельных размеров или укорачивание клипа всё это напрямую уменьшает размер GIF, поскольку меньше или меньшего размера кадры означают меньше данных для хранения. Ничто из этого не меняет фундаментальное отсутствие межкадрового сжатия в формате, поэтому конвертация в MP4 обычно экономит гораздо больше, чем обрезка GIF.
Будет ли MP4 автоматически зацикливаться так же, как GIF?
Большинство мессенджеров и социальных платформ автоматически воспроизводят и зацикливают короткий MP4 прямо в ленте, так же как они обрабатывают GIF, так что визуальный результат для зрителя обычно одинаков. Контекст, показывающий сырой тег изображения без поддержки видеоплеера, некоторые почтовые клиенты и старый форумный софт, всё ещё требует настоящий файл GIF.