Java, UX, HTML, CSS, WEB-design

Улучшите производительность анимированных GIF-файлов с помощью HTML5-видео

[ad_1]

  • Айо Исайя

  • 0 Комментарии

Улучшите производительность анимированных GIF-файлов с помощью HTML5-видео

  • 10 минут чтения

  • Перформанс, Видео, Медиа, Техники

Краткое резюме ↬

Анимированные GIF-файлы популярны в Интернете по уважительной причине. Они обеспечивают большее взаимодействие, чем обычное изображение, но остаются более удобоваримыми по сравнению с обычным видео. Однако GIF-файлы являются ужасным форматом для хранения видео и часто имеют огромный размер, что приводит к медленной загрузке страницы и высокому использованию данных. С видео в формате HTML5 вы можете уменьшить размер содержимого GIF до 98 %, сохранив при этом уникальные качества формата GIF в браузере.

Мы обратили внимание на то, что эта статья представляет собой перефразированную версию статьи, опубликованной на сайте Google Web Fundamentals и написанной нашим другом Джереми Вагнером. Оригинал можно найти здесь, и мы рекомендуем его вам.

Я хотел бы лично извиниться перед Джереми за то, что не идентифицировал это как копию его работы. Признание и признание работы людей в нашем сообществе — это то, о чем я и вся команда очень заботимся. Мне жаль, что мы не смогли поступить правильно на этот раз.

— Рэйчел Эндрю, от имени редакции.

У анимированных GIF-файлов много интересного; их легко создать, и они достаточно хорошо работают буквально во всех браузерах. Но формат GIF изначально не предназначался для анимации. Первоначальный дизайн формата GIF должен был обеспечить способ сжатия нескольких изображений в одном файле с использованием алгоритма сжатия без потерь (называемого сжатием LZW), что означало, что их можно было загрузить за достаточно короткий промежуток времени даже при медленном соединении.

Позже были добавлены базовые возможности анимации, которые позволяли рисовать различные изображения (кадры) в файле с временными задержками. По умолчанию серия кадров, составляющих анимацию, отображалась только один раз, останавливаясь после показа последнего кадра. Netscape Navigator 2.0 был первым браузером, в котором была добавлена ​​возможность зацикливания анимированных GIF-файлов, что привело к появлению анимированных GIF-файлов, какими мы их знаем сегодня.

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

Даже если вы попытаетесь настроить качество и длину GIF с помощью такого инструмента, как Gifsicle, может быть сложно сократить его до разумного размера. Это причина, по которой веб-сайты с большим количеством GIF, такие как Giphy, Imgur и им подобные, не используют фактический формат GIF, а скорее конвертируют его в видео HTML5 и вместо этого предоставляют его пользователям. Как обнаружила команда инженеров Pinterest, преобразование анимированных GIF-файлов в видео может сократить время загрузки и улучшить плавность воспроизведения, что сделает работу пользователя более приятной.

Следовательно, мы собираемся рассмотреть некоторые методы, которые позволяют нам использовать HTML5-видео в качестве замены анимированным GIF-файлам. Мы узнаем, как конвертировать анимированные GIF-файлы в видеофайлы, и узнаем, как правильно вставлять эти видеофайлы в Интернет, чтобы они действовали так же, как GIF. Наконец, мы рассмотрим несколько потенциальных недостатков, которые вам нужно обдумать, прежде чем использовать это решение.

Преобразование анимированных GIF-файлов в видео

Первый шаг — преобразовать файлы GIF в формат видео. MP4 является наиболее широко поддерживаемым форматом в браузерах, почти 94% всех браузеров поддерживают его, так что это безопасное значение по умолчанию.

Таблица поддержки на сайте caniuse.com, показывающая поддержку браузером видеоформата MP4.

94% всех браузеров поддерживают формат MP4 (большой предварительный просмотр)

Другим вариантом является формат WebM, который предлагает видео высокого качества, часто сравнимого с MP4, но обычно с уменьшенным размером файла. Однако в настоящее время поддержка браузеров не так широко распространена, поэтому вы не можете просто заменить файлы MP4 их эквивалентами WebM.

Таблица поддержки на caniuse.com, показывающая поддержку браузером видеоформата WebM.

Internet Explorer и Safari — известные браузеры без поддержки WebM (большой предварительный просмотр)

Однако, поскольку <video> тег поддерживает несколько <source> файлы, мы можем показывать видео WebM в браузерах, которые их поддерживают, а в остальных случаях возвращаться к MP4.

Давайте продолжим и конвертируем анимированный GIF в MP4 и WebM. Есть несколько онлайн-инструментов, которые могут помочь вам в этом, но многие из них используют ffmpeg под капотом, поэтому мы пропустим посредника и просто воспользуемся вместо него. ffmpeg это бесплатный инструмент командной строки с открытым исходным кодом, предназначенный для обработки видео и аудио файлов. Его также можно использовать для преобразования анимированного GIF в видеоформаты.

Чтобы узнать, есть ли у вас ffmpeg на вашем компьютере, запустите терминал и запустите ffmpeg команда. Это должно отображать некоторую диагностическую информацию, в противном случае вам нужно будет установить ее. Инструкции по установке для Windows, macOS и Linux можно найти на этой странице. Поскольку мы будем конвертировать в WebM, вам нужно убедиться, что все ffmpeg сборка, которую вы устанавливаете, скомпилирована с помощью libvpx.

Чтобы следовать командам, включенным в эту статью, вы можете использовать любой анимированный GIF-файл, лежащий на вашем компьютере, или взять этот, размер которого составляет чуть более 28 МБ. Давайте начнем с преобразования GIF в MP4 в следующем разделе.

Конвертировать GIF в MP4

Откройте экземпляр терминала и перейдите в каталог, где находится тестовый gif, затем выполните приведенную ниже команду, чтобы преобразовать его в видеофайл MP4:

ffmpeg -i animated.gif video.mp4

Это должно вывести новый видеофайл в текущем каталоге через несколько секунд в зависимости от размера конвертируемого GIF-файла. То -i флаг указывает путь к входному файлу GIF, после чего указывается выходной файл (в данном случае video.mp4). Выполнение этой команды на моем 28-мегабайтном GIF-файле создает файл MP4 размером всего 536 КБ, снижение на 98% в размере файла с примерно таким же визуальным качеством.

Но мы можем пойти еще дальше. ffmpeg имеет так много опций, которые вы можете использовать, чтобы еще больше отрегулировать видеовыход. Один из способов — использовать метод кодирования, известный как коэффициент постоянной скорости (CRF), чтобы еще больше сократить размер вывода MP4. Вот команда, которую вам нужно запустить:

ffmpeg -i animated.gif -b:v 0 -crf 25 video.mp4

Как видите, в приведенной выше команде есть пара новых флагов по сравнению с предыдущей. -b:v обычно используется для ограничения выходного битрейта, но при использовании режима CRF он должен быть установлен на 0. -crf флаг управляет качеством вывода видео. Он принимает значение от 0 до 51; чем ниже значение, тем выше качество видео и размер файла.

Выполнение вышеуказанной команды для тестового GIF-файла урезает вывод видео до 386 КБ без заметной разницы в качестве. Если вы хотите еще больше обрезать размер, вы можете увеличить значение CRF. Просто имейте в виду, что более высокие значения снизят качество видеофайла.

Конвертировать GIF в WebM

Вы можете преобразовать свой GIF-файл в WebM, выполнив следующую команду в терминале:

ffmpeg -i animated.gif -c vp9 -b:v 0 -crf 41 video.webm

Эта команда почти такая же, как и предыдущая, за исключением нового -c флаг, который используется для указания кодека, который следует использовать для этого преобразования. Мы используем vp9 кодек, который приходит на смену vp8 кодек.

Кроме того, в этом случае я установил значение CRF на 41, поскольку значения CRF не обязательно дают одинаковое качество для разных видеоформатов. Это конкретное значение приводит к тому, что файл WebM на 16 КБ меньше, чем MP4, с примерно таким же визуальным качеством.

Теперь, когда мы знаем, как конвертировать анимированные GIF-файлы в видеофайлы, давайте посмотрим, как мы можем имитировать их поведение в браузере с помощью HTML5. <video> тег.

Замените анимированные GIF-файлы видео в браузере

Сделать видео похожим на GIF на веб-странице не так просто, как поместить файл в <img> тег, но это не так уж и сложно. Основные качества анимированных GIF-файлов, о которых следует помнить, следующие:

  • Они играют автоматически
  • Они постоянно зацикливаются
  • они молчат

Хотя вы получаете эти качества по умолчанию с файлами GIF, мы можем заставить видеофайл действовать точно так же, используя несколько атрибутов. Вот как вы будете вставлять видеофайл, чтобы он вел себя как GIF:

<video autoplay loop muted playsinline src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.mp4"></video>

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

Чтобы указать более одного источника для видео, вы можете использовать <source> элемент внутри <video> тег такой:

<video autoplay loop muted playsinline>
    <source src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.webm" type="video/webm">
    <source src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.mp4" type="video/mp4">
</video>

Это говорит браузеру выбирать из предоставленных видеофайлов в зависимости от поддерживаемого формата. В этом случае видео WebM будет загружено и воспроизведено, если оно поддерживается, в противном случае вместо него будет использоваться файл MP4.

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

<video autoplay loop muted playsinline>
    <source src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.webm" type="video/webm">
    <source src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.mp4" type="video/mp4">

    Your browser does not support HTML5 video.       
    <a href="http://www.smashingmagazine.com/animated.gif">Click here to view original GIF</a>
</video>

Или вы можете просто добавить файл GIF прямо в <img> тег:

<video autoplay loop muted playsinline>
    <source src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.webm" type="video/webm">
    <source src="https://www.smashingmagazine.com/2018/11/gif-to-video/video.mp4" type="video/mp4">
    <img src="animated.gif">
</video>

Теперь, когда мы рассмотрели, как эмулировать анимированные GIF-файлы в браузере с видео HTML5, давайте рассмотрим несколько потенциальных недостатков этого в следующем разделе.

Потенциальные недостатки

Есть несколько недостатков, которые необходимо учитывать, прежде чем использовать HTML5-видео в качестве замены GIF. Это явно не так удобно, как просто загрузить GIF на страницу и смотреть, как он просто работает везде. Сначала вам нужно закодировать его, и может быть сложно реализовать автоматизированное решение, которое хорошо работает во всех сценариях.

Безопаснее всего было бы конвертировать каждый GIF вручную и проверять результат вывода, чтобы обеспечить хороший баланс между визуальным качеством и размером файла. Но в больших проектах это может быть непрактично. В этом случае может быть лучше обратиться к такому сервису, как Cloudinary, который сделает за вас тяжелую работу.

Еще одна проблема заключается в том, что в отличие от изображений браузеры не загружают видеоконтент заранее. Поскольку видеофайлы могут быть любой длины, они часто пропускаются до тех пор, пока основной поток не будет готов проанализировать их содержимое. Это может задержать загрузку видеофайла на несколько сотен миллисекунд.

Кроме того, существует довольно много ограничений на автоматическое воспроизведение видео, особенно на мобильных устройствах. То muted Атрибут действительно необходим для автоматического воспроизведения видео в Chrome для Android и iOS Safari, даже если видео не содержит звуковой дорожки, а если автовоспроизведение запрещено, пользователь увидит только пустое место там, где должно было быть видео. Примером может служить режим экономии трафика в Chrome для Android, в котором автовоспроизведение видео не будет работать, даже если вы все настроили правильно.

Чтобы учесть любой из этих сценариев, вам следует рассмотреть возможность установки изображения-заполнителя для видео с помощью poster атрибут, чтобы область видео по-прежнему заполнялась значимым контентом, если видео по какой-либо причине не воспроизводится автоматически. Также рассмотрите возможность использования атрибута управления, который позволяет пользователю инициировать воспроизведение, даже если автовоспроизведение видео запрещено.

Заворачивать

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

Есть сайты, которые уже делают это:

  • Twitter конвертирует анимированные GIF-файлы в файлы MP4 при загрузке
  • Производительность GIF была улучшена на Pinterest путем преобразования их в видео.
  • Imgur, веб-сайт с большим количеством GIF, преобразует все загрузки GIF в видео HTML5.

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

Сокрушительная редакция
(ра, дм)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Улучшите производительность анимированных GIF-файлов с помощью HTML5-видео

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Краткое описание по статье Улучшите производительность анимированных GIF-файлов с помощью HTML5-видео

Название: Улучшите производительность анимированных GIF-файлов с помощью HTML5-видео . Краткое описание: [ad_1] ⭐ Айо Иса . Дата публикации: 26.01.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»