В этой лабораторной работе повысьте производительность, заменив анимированный GIF-файл видео.
Сначала измерьте
Сначала оцените эффективность веб-сайта:
- Для предварительного просмотра сайта нажмите View App . Затем нажмите Fullscreen
.
- Нажмите `Control+Shift+J` (или `Command+Option+J` на Mac), чтобы открыть DevTools.
- Нажмите на вкладку «Маяк» .
- Убедитесь, что в списке категорий установлен флажок «Производительность» .
- Нажмите кнопку «Сформировать отчет» .
Когда вы закончите, вы увидите, что Lighthouse отметил GIF как проблему в своем аудите «Использование видеоформатов для анимированного контента».
Получить FFmpeg
Существует несколько способов конвертировать GIF-файлы в видео; в этом руководстве используется FFmpeg . Он уже установлен в Glitch VM, и, если хотите, можете следовать этим инструкциям, чтобы установить его на локальном компьютере .
Откройте консоль.
Еще раз проверьте, что FFmpeg установлен и работает:
- Нажмите «Ремикс для редактирования», чтобы сделать проект редактируемым.
- Нажмите «Терминал» (примечание: если кнопка «Терминал» не отображается, возможно, вам придется использовать опцию «Полноэкранный режим»).
- В консоли выполните:
which ffmpeg
Вы должны получить путь к файлу:
/usr/bin/ffmpeg
Изменить GIF на видео
- В консоли запустите
cd images
, чтобы войти в каталог образов. - Запустите
ls
, чтобы увидеть содержимое.
Вы должны увидеть что-то вроде этого:
$ ls
cat-herd.gif
- В консоли выполните:
ffmpeg -i cat-herd.gif -b:v 0 -crf 25 -f mp4 -vcodec libx264 -pix_fmt yuv420p cat-herd.mp4
Это говорит FFmpeg взять входные данные , обозначенные флагом -i
, cat-herd.gif и преобразовать их в видео с именем cat-herd.mp4. Это должно занять секунду для выполнения. Когда команда завершится, вы сможете снова ввести ls
и увидеть два файла:
$ ls
cat-herd.gif cat-herd.mp4
Создавайте видео WebM
В то время как MP4 существует с 1999 года, WebM является относительным новичком, изначально выпущенным в 2010 году. Видео WebM могут быть намного меньше, чем видео MP4, поэтому имеет смысл генерировать оба. К счастью, элемент <video>
позволит вам добавлять несколько источников, поэтому если браузер не поддерживает WebM, он может вернуться к MP4.
- В консоли выполните:
ffmpeg -i cat-herd.gif -c vp9 -b:v 0 -crf 41 cat-herd.webm
- Чтобы проверить размеры файлов, выполните:
ls -lh
У вас должен быть один GIF и два видео:
$ ls -lh
total 4.5M
-rw-r--r-- 1 app app 3.7M May 26 00:02 cat-herd.gif
-rw-r--r-- 1 app app 551K May 31 17:45 cat-herd.mp4
-rw-r--r-- 1 app app 341K May 31 17:44 cat-herd.webm
Обратите внимание, что оригинальный GIF весит 3,7 МБ, тогда как версия MP4 весит 551 Кб, а версия WebM весит всего 341 Кб. Это огромная экономия!
Обновите HTML, чтобы воссоздать эффект GIF
Анимированные GIF-файлы обладают тремя ключевыми чертами, которые должны передаваться в видеороликах:
- Они воспроизводятся автоматически.
- Они зацикливаются непрерывно (обычно, но зацикливание можно предотвратить).
- Они молчат.
К счастью, вы можете воссоздать это поведение с помощью элемента <video>
.
- В файле
index.html
замените строку с<img>
на:
<img src="/images/cat-herd.gif" alt="Cowboys herding cats.">
<video autoplay loop muted playsinline></video>
Элемент <video>
, использующий эти атрибуты, будет воспроизводиться автоматически, бесконечно циклично, без звука и воспроизводиться в строке (то есть не на весь экран) — все поведение, ожидаемое от анимированных GIF-файлов! 🎉
Укажите ваши источники
Осталось только указать источники видео. Элемент <video>
требует один или несколько дочерних элементов <source>
, указывающих на различные видеофайлы, которые браузер может выбрать, в зависимости от поддержки формата. Обновите <video>
элементами <source>
, которые ссылаются на ваши видео cat-herd:
<video autoplay loop muted playsinline>
<source src="/images/cat-herd.webm" type="video/webm">
<source src="/images/cat-herd.mp4" type="video/mp4">
</video>
Предварительный просмотр
- Для предварительного просмотра сайта нажмите View App . Затем нажмите Fullscreen
.
Опыт должен выглядеть так же. Пока все хорошо.
Проверить с помощью Lighthouse
При открытом рабочем сайте:
- Нажмите `Control+Shift+J` (или `Command+Option+J` на Mac), чтобы открыть DevTools.
- Нажмите на вкладку «Маяк» .
- Убедитесь, что в списке категорий установлен флажок «Производительность» .
- Нажмите кнопку «Сформировать отчет» .
Вы должны увидеть, что аудит «Использование видеоформатов для анимированного контента» теперь проходит! Ура! 💪