HTML страница, встроенная в анимированный GIF / Хабр
Началось с того, что я случайно наткнулся на станицу https://lcamtuf.coredump.cx/squirrel/
Это демка представляет собой файл, который будучи сохраненным с расширением .jpg или .jpeg открывается как графический файл, а с расширением .htm или .html как веб-страница. Такого рода трюки для JPEG не новы. Насколько я понял, HTML размещается в секции комментария .jpeg файла. Браузер проглатывает бинарные данные заголовка как мусор, потом рендерит найденный HTML. Немного CSS хитрости чтобы спрятать бинарный мусор от глаз пользователя и вуаля.
Я вооружился редактором Hex Fiend для Mac и довольно быстро смог заменить HTML и изображение на свои.
Страница https://lcamtuf.coredump.cx/squirrel/ открытая Hex FiendЯ был весьма доволен собой, но мне хотелось продолжить двигаться в этом увлекательном направлении ненормального программирования.
Мне пришла в голову мысль, что можно попробовать провернуть такое с .gif файлом. Я погуглил, оказалось что такого с .gif файлом никто не делал. Некоторое время я бился с Hex Fiend пока не достиг первых успехов. Стало ясно, что затея реализуема.
Я решил сразу взяться за что-то весомое, и решил что буду использовать анимированный GIF.
По моей просьбе жена снабдила меня занятным видео, которое я на скорую руку обработал и получил следующее:
Из него я сохранил анимированный GIF:
The movie: Time TravelПросто дописываем HTML в конец .gif файлаБинарный мусор попадая в браузер открывает большое количество тегов <s>,<u> и <i> поэтому, если вы захотите повторить мои упражнения, я советую их с запасом позакрывать в самом начале, как видно на скриншоте выше, или в исходниках моего файла, ссылку на который я дам в конце поста.
Верстая веб-страницу, я все больше входил в азарт и мне показалось отличной идеей интегрировать мое исходное видео MPEG4 в HTML с помощью base64 и поставить его на бэкграунд. Вот что у меня получилось.
Я не силен в HTML, поэтому страница корректно отображается только в настольных браузерах. Большинству мобильных устройств не хватает памяти, а если хватает, то видео на бэкграунде не воспроизводится.
Я сделал еще одну версию.
У меня она корректно отображается под Mac OS в Safari и Google Chrome. В Firefox не отображается видео на бэкграунде, зато на моем iPhone 8 во всех трех браузерах: Safari, Chrome и Firefox страница отображается корректно. Если среди читателей найдется эксперт по верстке, я буду очень признателен за помощь в допиливании этой демки.
Пожалуйста, дайте ей время загрузиться и отрендриться! Моему древнему Хакинтошу при загрузке этой страницы приходится очень несладко. Впрочем, на современном оборудовании работает достаточно гладко.
Видео, которое вы видите на заднем плане, это MPEG4-видео встроенное в HTML-страницу, встроенную в анимированное GIF изображение
Если сохранить данную страницу с расширением .html она будет открываться как веб-страница, а если сохранить в файл с расширением .gif — как анимированный GIF.
Было бы очень круто, если бы при сохранении с расширением . mp4 она открывалась как видео-файл, но это к сожалению невозможно.
Конвертировать GIF в HTML Онлайн
Конвертировать GIF в HTML ОнлайнКонвертируйте ваши GIF изображения в HTML формат онлайн бесплатно с помощью современного браузера, такого как Chrome, Opera или Firefox.
При поддержке aspose.com и aspose.cloud
* Загружая файлы или используя наш сервис, вы соглашаетесь с нашими Условиями предоставления услуг и Политикой конфиденциальностиСохранить как
Попробуйте другие конверсии:
JPG JPEG JP2 J2K JPEG2000 BMP DIB TIFF TIF PNG APNG TGA EMF EMZ WMF WMZ WEBP SVG SVGZ DICOM DCM DJVU DNG ODG OTG EPS CDR CMX BASE64
Поделиться в Facebook
Поделиться в Twitter
Поделиться в LinkedIn
Другие приложения
Cloud API
GitHub
Оставить отзыв
Добавить в закладки
Нажмите Ctrl + D, чтобы добавить эту страницу в избранное, или Esc чтобы отменить действие
Aspose.Imaging Конвертация
Бесплатно конвертируйте GIF в файлы HTML онлайн. Мощный бесплатный онлайн-конвертер GIF в HTML прост и не требует установки настольного программного обеспечения. Все конвертации вы можете сделать онлайн с любой платформы: Windows, Linux, macOS и Android. Мы не требуем регистрации. Этот инструмент абсолютно бесплатный.
Что касается специальных возможностей, вы можете использовать наши онлайн-инструменты преобразования GIF в HTML для обработки файлов GIF в любой операционной системе. Независимо от того, используете ли вы MacBook, компьютер с Windows или даже портативное мобильное устройство, для вашего удобства конвертер GIF в HTML всегда доступен онлайн.
Конвертация — это бесплатное приложение, основанное на Aspose.Imaging, профессиональном .NET / Java API, предлагающее расширенные функции обработки изображений на месте и готовое для использования на стороне клиента и сервера.
Требуется облачное решение? Aspose.Imaging Cloud предоставляет SDK для популярных языков программирования, таких как C#, Python, PHP, Java, Android, Node. js, Ruby, которые созданы на основе Cloud REST API и постоянно развиваются.
Интегрируйте функцию конверсии GIF в HTML5 Canvas в свои собственные проекты
Этот бесплатный инструмент для конверсии основан на Aspose.Imaging for .NET, быстром API для обработки изображений, включая, помимо прочего, конверсию изображений.
Вы можете использовать его в своих приложениях и интегрировать преобразование изображений в свои проекты C # .NET. Aspose.Imaging for .NET подходит в следующих сценариях:
- Высокопроизводительное преобразование документов с помощью собственных API
- Интегрируйте преобразование документов в свой собственный проект/решение
- 100% приватные локальные API-интерфейсы. Ваши файлы обрабатываются на ваших собственных серверах
- Кроссплатформенное развертывание
Пожалуйста, посетите страницу https://products.aspose.com/imaging/net/conversion/gif-to-html чтобы попробовать Aspose.Imaging for . NET в своих приложениях.
Для Java-разработчиков мы предлагаем собственный Aspose.Imaging for Java API для использования в ваших Java-приложениях. Пожалуйста, посетите страницу https://products.aspose.com/imaging/java/conversion/gif-to-html чтобы попробовать.
Как конвертировать GIF изображения с помощью Aspose.Imaging Конвертация
- Щелкните внутри области перетаскивания файла, чтобы загрузить GIF файл изображения, или перетащите GIF файл.
- Вы можете загрузить не более 10 изображений за раз.
- Ваши файлы GIF будут загружены и преобразованы в формат HTML
- Ссылка для скачивания HTML файлов будет доступна сразу после конвертирования
- Вы также можете отправить ссылку на HTML файл на свой адрес электронной почты.
- Обратите внимание, что файл будет удален с наших серверов через 24 часа, и ссылки на скачивание перестанут работать по истечении этого периода времени.
Часто задаваемые вопросы
❓ Как конвертировать GIF файл?
Во-первых, вам нужно добавить файл для конвертации: перетащите GIF файл или щелкните внутри белой области, чтобы выбрать файл. Затем нажмите кнопку «Конвертировать». После завершения GIF конвертации можно загрузить файл результатов.
🛡️ Безопасно ли конвертировать изображения с помощью бесплатного приложения Aspose.Imaging Conversion?
Конечно! Ссылка для загрузки файлов результатов будет доступна сразу после конвертирования. Мы удаляем загруженные файлы через 24 часа, и ссылки на скачивание перестанут работать по истечении этого периода времени. Никто не имеет доступа к вашим файлам. Конвертирование файлов абсолютно безопасно.
Когда пользователь загружает свои файлы из сторонних сервисов, они обрабатываются таким же образом.
Единственное исключение из вышеуказанных политик возможно, когда пользователь решает поделиться своими файлами через форум, запросив бесплатную поддержку, в этом случае только наши разработчики имеют доступ к ним для анализа и решения проблемы.
💻 Можно ли конвертировать GIF на Linux, Mac OS или Android?
Да, вы можете использовать бесплатный конвертер Aspose на любой операционной системе, которая имеет веб-браузер. Наш GIF конвертер работает онлайн и не требует установки программного обеспечения.
🌐 Какой браузер следует использовать для преобразования GIF изображений?
Для конвертирования GIF в HTML вы можете использовать любой современный браузер, например, Google Chrome, Firefox, Opera, Safari.
❓ Могу ли я использовать полученное изображение в коммерческих целях?
Несмотря на то, что наши приложения бесплатны, вы не ограничены в коммерческом использовании полученных изображений, избегая при этом нарушения прав третьих лиц на исходные изображения. Например, вы можете создать NFT (не взаимозаменяемый токен) из своего изображения и попытаться продать его на торговых площадках NFT.
Error explanation placeholder
Email:
Сделайте этот форум закрытым, чтобы он был доступен только вам и нашим разработчикам
Вы успешно сообщили об ошибке, Вы получите уведомление по электронной почте, когда ошибка будет исправлена Click this link to visit the forums.
Как анимировать GIF-файлы в HTML-документе?
спросил
Изменено 1 год, 10 месяцев назад
Просмотрено 249 тысяч раз
У меня есть следующий тег
в статическом HTML-документе.
После того, как я установил его атрибут src
так, чтобы он указывал на файл .gif
(т. е. foo.gif
), GIF отображается как статическое (или неподвижное) изображение. Как анимировать GIF?
- HTML
- GIF
- анимированный GIF
3
По умолчанию браузер всегда воспроизводит анимированные GIF-файлы, и вы не можете изменить это поведение.
Ваш код выглядит нормально.
Можете ли вы проверить, анимирован ли этот фрагмент для вас?
Если ДА , то что-то не так с вашей гифкой, если НЕТ что-то не так с вашим браузером.
1
Согласен с ответом Юрия Ткаченко.
Я хочу отметить это.
Это довольно специфичный сценарий. НО бывает.
Когда вы копируете GIF-файл до его полной загрузки на каком-либо сайте, таком как изображения Google. он просто дает адрес изображения предварительного просмотра этого gif. Что явно не гифка.
Итак, убедитесь, что он заканчивается .gif Extension
Try
и переключите src на ваш источник. Если всплывает alt, попробуйте другой URL. Если это не работает, перезагрузите компьютер или переключите браузер.
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Улучшение производительности анимированных GIF-файлов с помощью HTML5-видео — Smashing Magazine
- 10 мин чтения
- Производительность, Видео, СМИ, Techniques
- Поделиться в Twitter, LinkedIn
Об авторе
Айо Исайя — разработчик программного обеспечения, проявляющий большой интерес к веб-технологиям, безопасности и производительности.
Я хотел бы лично извиниться перед Джереми за то, что не идентифицировал это как копию его работы. Признание и признание работы людей в нашем сообществе — это то, о чем я и вся команда очень заботимся. Мне жаль, что в этот раз мы не смогли поступить правильно.
— Рэйчел Эндрю, от имени редакции
Анимированные 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% всех браузеров пользуются поддержкой, так что это безопасное значение по умолчанию.
94% всех браузеров поддерживают формат MP4 (большой предварительный просмотр)Другим вариантом является формат WebM, который предлагает видео высокого качества, часто сравнимого с MP4, но обычно с уменьшенным размером файла. Однако в настоящее время поддержка браузеров не так широко распространена, поэтому вы не можете просто заменить файлы MP4 их эквивалентами WebM.
Internet Explorer и Safari — известные браузеры без поддержки WebM (большой предварительный просмотр)Однако, поскольку 9Тег 0011
Давайте продолжим и конвертируем анимированный GIF в MP4 и WebM. Есть несколько онлайн-инструментов, которые могут помочь вам в этом, но многие из них используют ffmpeg под капотом, поэтому мы пропустим посредника и просто используем его. ffmpeg
— это бесплатный инструмент командной строки с открытым исходным кодом, предназначенный для обработки видео- и аудиофайлов. Его также можно использовать для преобразования анимированного GIF в видеоформаты.
Чтобы узнать, есть ли на вашем компьютере ffmpeg
, запустите терминал и выполните команду ffmpeg
. Это должно отображать некоторую диагностическую информацию, в противном случае вам необходимо установить ее. Инструкции по установке для Windows, macOS и Linux можно найти на этой странице. Поскольку мы будем конвертировать в WebM, вам нужно убедиться, что любая сборка ffmpeg
, которую вы устанавливаете, скомпилирована с помощью libvpx.
Чтобы следовать командам, включенным в эту статью, вы можете использовать любой анимированный GIF-файл, лежащий на вашем компьютере, или взять этот, размер которого чуть больше 28 МБ. Давайте начнем с преобразования GIF в MP4 в следующем разделе.
Преобразование GIF в MP4
Откройте экземпляр терминала и перейдите в каталог, где находится тестовый gif, затем выполните приведенную ниже команду, чтобы преобразовать его в видеофайл MP4:
ffmpeg -i анимированный.gif video.mp4
Через несколько секунд в текущем каталоге должен появиться новый видеофайл, в зависимости от размера конвертируемого GIF-файла. Флаг -i
указывает путь к входному файлу GIF, после чего указывается выходной файл (в данном случае video. mp4). Выполнение этой команды на моем 28-мегабайтном GIF-файле создает файл MP4 размером всего 536 КБ, 98% уменьшение размера файла при примерно том же визуальном качестве.
Но мы можем пойти еще дальше. ffmpeg
имеет так много опций, которые вы можете использовать для еще большей регулировки вывода видео. Один из способов — использовать метод кодирования, известный как коэффициент постоянной скорости (CRF), чтобы еще больше сократить размер вывода MP4. Вот команда, которую вам нужно выполнить:
ffmpeg -i анимированный.gif -b:v 0 -crf 25 video.mp4
Как видите, в приведенной выше команде есть пара новых флагов по сравнению с предыдущей. -b:v
обычно используется для ограничения выходного битрейта, но при использовании режима CRF он должен быть установлен на 0. Флаг -crf
контролирует качество видео на выходе. Он принимает значение от 0 до 51; чем ниже значение, тем выше качество видео и размер файла.
Выполнение приведенной выше команды на тестовом GIF-файле урезает видеовыход до 386 КБ без заметной разницы в качестве. Если вы хотите еще больше обрезать размер, вы можете увеличить значение CRF. Просто имейте в виду, что более высокие значения снизят качество видеофайла.
Преобразование GIF в WebM
Вы можете преобразовать свой файл GIF в WebM, выполнив следующую команду в терминале:
ffmpeg -i анимированный.gif -c vp9 -b:v 0 -crf 41 video.webm
Это Команда почти такая же, как и предыдущая, за исключением нового флага -c
, который используется для указания кодека, который следует использовать для этого преобразования. Мы используем кодек vp9
, который приходит на смену кодеку vp8
.
Кроме того, в данном случае я скорректировал значение CRF до 41, поскольку значения CRF не обязательно дают одинаковое качество для разных видеоформатов. Это конкретное значение приводит к тому, что файл WebM на 16 КБ меньше, чем MP4, с примерно таким же визуальным качеством.
Теперь, когда мы знаем, как конвертировать анимированные GIF-файлы в видеофайлы, давайте посмотрим, как мы можем имитировать их поведение в браузере с помощью тега HTML5 .
Замена анимированных GIF-файлов видео в браузере
Сделать так, чтобы видео функционировало как GIF на веб-странице, не так просто, как поместить файл в тег
, но и не так уж сложно. Основные качества анимированных GIF-файлов, о которых следует помнить, следующие:
- Они воспроизводятся автоматически
- Они непрерывно зацикливаются
- Они молчат
Хотя вы получаете эти качества по умолчанию с файлами GIF, мы можем заставить видеофайл действовать точно так же, используя несколько атрибутов. Вот как вы встраиваете видеофайл, чтобы он вел себя как GIF:
Эта разметка указывает браузеру автоматически запускать видео, зацикливать его.
Чтобы указать более одного источника для видео, вы можете использовать элемент
в теге следующим образом:
Указывает браузеру выбирать из предоставленных видеофайлов в зависимости от поддерживаемого формата. В этом случае видео WebM будет загружено и воспроизведено, если оно поддерживается, в противном случае вместо него используется файл MP4.
Чтобы сделать это более надежным для старых браузеров, которые не поддерживают видео HTML5, вы можете добавить некоторый HTML-контент, ссылающийся на исходный файл GIF, в качестве запасного варианта.
<цикл автовоспроизведения видео с отключенным звуком playsinline> webm" type="video/webm">
Или вы можете просто добавить файл GIF прямо в
тег:
<автовоспроизведение видео с отключенным звуком playsinline>
Теперь, когда мы рассмотрели, как эмулировать анимированные GIF-файлы в браузере с видео HTML5, давайте рассмотрим несколько потенциальных недостатков этого в следующем разделе.
Потенциальные недостатки
Есть несколько недостатков, которые необходимо учитывать, прежде чем использовать HTML5-видео в качестве замены GIF. Это явно не так удобно, как просто загрузить гифку на страницу и смотреть, как она работает везде. Сначала вам нужно закодировать его, и может быть сложно реализовать автоматизированное решение, которое хорошо работает во всех сценариях.
Безопаснее всего конвертировать каждый GIF вручную и проверять результат вывода, чтобы обеспечить хороший баланс между качеством изображения и размером файла. Но в больших проектах это может быть непрактично. В этом случае может быть лучше обратиться к такому сервису, как Cloudinary, который сделает за вас тяжелую работу.
Другая проблема заключается в том, что, в отличие от изображений, браузеры не загружают предварительно видеоконтент. Поскольку видеофайлы могут быть любой длины, они часто пропускаются до тех пор, пока основной поток не будет готов проанализировать их содержимое. Это может задержать загрузку видеофайла на несколько сотен миллисекунд.
Кроме того, существует довольно много ограничений на автоматическое воспроизведение видео, особенно на мобильных устройствах. Атрибут muted
на самом деле требуется для автоматического воспроизведения видео в Chrome для Android и iOS Safari, даже если видео не содержит звуковой дорожки, а если автовоспроизведение запрещено, пользователь увидит только пустое место там, где должно было быть видео. . Примером может служить режим экономии трафика в Chrome для Android, в котором автовоспроизведение видео не будет работать, даже если вы все настроили правильно.
Для учета любого из этих сценариев следует рассмотреть возможность установки изображения-заполнителя для видео с помощью атрибута poster
, чтобы область видео по-прежнему заполнялась значимым содержимым, если видео по какой-либо причине не воспроизводится автоматически. Также рассмотрите возможность использования атрибута управления, который позволяет пользователю инициировать воспроизведение, даже если автовоспроизведение видео запрещено.
Резюме
Заменив анимированные GIF-файлы видео в формате HTML5, мы можем обеспечить потрясающие возможности, подобные GIF, без недостатков производительности и качества, связанных с файлами GIF. Отказ от анимированных GIF-файлов заслуживает серьезного рассмотрения, особенно если ваш сайт перегружен GIF-файлами.
Есть веб-сайты, которые уже делают это:
- Twitter конвертирует анимированные GIF-файлы в файлы MP4 при загрузке
- Производительность GIF была улучшена на Pinterest путем преобразования их в видео
Потратив время на преобразование GIF-файлов на вашем сайте в видео, вы значительно улучшите время загрузки страницы.