Почему новые форматы мультимедиа лучше старых
И почему GIF должен умереть.
И начну я, собственно, с...
Данный формат был создан аж в 1987 году. Это чтобы вы понимали, почему настолько древний формат не подходит для использования в 21 веке.
GIF - мусор, потому что:
Такие ограничения были нормальными много лет назад, но сейчас они уже никуда не годятся.
Да, ограничение на количество цветов можно обойти путём долгого пердолинга с палитрами. Но зачем это делать, если есть более эффективные форматы?
На всякий случай стоит пояснить, что MP4 - это контейнер (как и MKV), а H.264 и H.265 (а также VP8, VP9 и прочие) - это кодеки, которые хранятся в этом контейнере.
Так вот. Если посмотреть, какие версии браузеров поддерживают MP4, то можно увидеть, что Chrome начал поддерживать его в 2010, Firefox - в 2015, а Safari аж в 2008. Но это на десктопе. На мобильных устройствах поддержка появилась позже.
Видеокодеки лучше GIF тем, что:
Подробнее про второй пункт.
У видеокодеков есть следующие типы кадров: I, P и B. У MPEG-1 были ещё D-кадры, использующиеся для генерации превью, но в более поздних кодеках их нет.

I-кадры - это обычные кадры. Просто картинка. А вот P-кадры - это, если совсем просто, куски, образованные между P-кадрами. Кодировщик вычисляет, насколько велика разница между P-кадрами (т.е. чтобы это была одна сцена, например), и какие части в кадре двигаются. Вычисляются векторы движений.
Т.е., к примеру, если вы подвигаете рукой на фоне статичной стены - то видео не будет хранить все кадры. Кодировщик поймёт, что что-то в видео не меняется, и несколько кадров будут сохранены лишь в виде вашей руки.
B-кадры - это просто результат интерполяции между кадрами.
Сжатие без потерь - это когда информацию можно восстановить в той же точности, что и до сжатия. Например, вы что-то сжимаете архиватором, потом достаёте это что-то из архива, и это что-то оказывается точно таким же, как и до сжатия.
Сжатие с потерями - это когда информацию восстановить в точности невозможно.
JPEG, например, с его шакализацией - это сжатие с потерями. Все видеокодеки - это сжатие с потерями. GIF, PNG - это сжатие без потерь. Я не буду в этом посте касаться аудио.
Тут стоит пояснить, что GIF - это такой формат Шрёдингера. С одной стороны, у него ограничение 256 цветов на кадр, с другой - никаких других оптимизаций, которые влияют на качество кадра, нет. Ограничение на количество цветов - это не сжатие.

Откуда берутся эти квадраты? Всё просто. Когда кодировщик проходится по изображению, то он его делит на участки, вычисляя, в каких из них разница по цветам минимальная. Это делается, чтобы не хранить всё изображение "как есть". Скажем, если 50% изображения занимает один цвет, то можно сэкономить занимаемое место за счёт этих 50%.
Квадраты появляются, когда увеличивается разница цветов, которой можно пожертвовать. Т.е. всё сводится к тому, что в одном участке хранится один цвет. Ну это если совсем грубо, на самом деле там всё несколько сложнее.
Так вот. Добавим это к тому, что в видео не хранятся все кадры "как есть". И в итоге выходит, что шакальное видео занимает гораздо меньше места, чем шакальная гифка, ибо шакализация в GIF ни на что не влияет!
Время шло, количество контента росло с какой-то немыслимой скоростью. Веб-страницы в среднем весят больше, чем размер оригинального Doom. Прямиком из ада появились Vine, а затем и TikTok. Встал вопрос хранения всего этого добра на серверах, ведь место не резиновое.
Стала заметна устарелость старых форматов. JPEG шакальный, и не поддерживает прозрачность, а PNG слишком тяжёлый. GIF слишком ограничен и тоже тяжёлый.
Именно поэтому появились все эти WEBP и прочие вещи, которые вы так ненавидите. Ведь их использование позволяет:
Новые форматы гораздо эффективнее старых. При сопоставимом качестве они занимают гораздо меньше места. Новые кодеки при том же битрейте (bit rate, количество бит в секунду) позволяют хранить видео более высокого качества. Когда в последний раз вы видели фильм в формате AVI?
И если WEBP и WEBM уже стали популярными, то вот небольшие пояснения про другие форматы.
JPEG XL - это такой ультимативный формат для статических изображений. Поддерживает вплоть до 4099 каналов (а не только 4 (красный, зелёный, синий, альфа)), возможность использования сжатия как с потерями, так и без потерь, поддержка HDR. Подходит как для фото, так и для других типов изображений. Обеспечивает более высокое качество при том же размере файла, чем JPEG.

AV1 - видеокодек нового поколения. Кодирование проходит очень долго и требует очень много ресурсов, зато размер итогового видео гораздо меньше даже чем у WEBM (VP9), вплоть до 30%. Сейчас уже появляются видеокарты с аппаратной поддержкой кодирования и декодирования AV1, а также специализированные платы.
AVIF - формат изображений на основе кодека AV1.
Также есть H.265. Он эффективнее H.264, но проприетарный (впрочем, H.264 тоже, но что там конкретно по лицензиям - я не помню), и требует отчислений за использование. Into the trash it goes.
Если JPEG XL и AVIF такие эффективные, то почему до сих пор нет поддержки в браузерах? Можете поблагодарить Google. Ведь у них уже есть свой формат (WEBP). Однако в последнее время ситуация меняется, и поддержка AVIF уже есть во всех основных браузерах, а поддержка JPEG XL появится в Firefox.
Установите сторонний просмотрщик изображений. Нет, ну правда. Вас никто за это не будет ругать.
Всегда так было, и всегда так будет, что сторонние приложения умели куда больше стандартных. Они поддерживают больше форматов. А ждать, пока в вашу шиндошс завезут поддержку современных форматов - это какой-то аутизм.
Вот мои рекомендации: nomacs для изображений, и VLC (или MPV, если хочется попердолиться) для видео. Говорят, что VLC плохо воспроизводит аниме, и MPV справляется с ним лучше.
Я сам обычно ставлю nomacs вместо стандартного просмотрщика в Windows. Что самое забавное, при большем количестве поддерживаемых форматов, он открывается гораздо быстрее. Да, разница в трёх сотнях миллисекунд, но всё равно приятнее.
Я надеюсь, что из поста вы усвоили, что:
Если вы - владелец какого-либо сайта, то добавьте поддержку WEBM и MP4. В идеале - сделайте конвертацию GIF в эти форматы (но это займёт больше ресурсов).
С новыми форматами вы сможете добавить к своему тексту анимированное превью, и оно не будет жрать ресурсы. А когда таких постов десятки, и у них превью в GIF, по 10 МБ каждое - ну вы же понимаете, насколько это плохо?
GIF больше не заслуживает того, чтобы жить дальше.