
#CREATE GIF FROM VIDEO MP4#
For example, if you specify an MP4 video first and the browser supports WebM, browsers will skip the WebM and use the MPEG-4 instead. īrowsers don't speculate about which is optimal, so the order of 's matters. Provide both WebM and MP4, so that if a browser doesn't support WebM, it can fall back to MP4.
#CREATE GIF FROM VIDEO FULL#
Ī element with these attributes plays automatically, loops endlessly, plays no audio, and plays inline (that is, not full screen), all the hallmark behaviors expected of animated GIFs! 🎉įinally, the element requires one or more child elements pointing to different video files that the browser can choose from, depending on the browser's format support. Luckily, you can recreate these behaviors using the element. They loop continuously (usually, but it is possible to prevent looping).In this example, the initial GIF is 3.7 MB, compared to the MP4 version, which is 551 KB, and the WebM version, which is only 341 KB! Replace the GIF img with a video #Īnimated GIFs have three key traits that a video needs to replicate: The cost savings between a GIF and a video can be pretty significant. To use FFmpeg to convert my-animation.gif to a WebM video, run the following command in your console: ffmpeg -i my-animation.gif -c vp9 -b:v 0 -crf 41 my-animation.webm Compare the difference # WebM videos are much smaller than MP4 videos, but not all browsers support WebM so it makes sense to generate both. While MP4 has been around since 1999, WebM is a relatively new file format initially released in 2010. If the input GIF has odd dimensions you can include a crop filter to avoid FFmpeg throwing a 'height/width not divisible by 2' error: ffmpeg -i my-animation.gif -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2" -b:v 0 -crf 25 -f mp4 -vcodec libx264 -pix_fmt yuv420p my-animation.mp4 Create WebM videos # The libx264 encoder only works with files that have even dimensions, like 320px by 240px. This tells FFmpeg to take my-animation.gif as the input, signified by the -i flag, and to convert it to a video called my-animation.mp4. To use FFmpeg to convert the GIF, my-animation.gif to an MP4 video, run the following command in your console: ffmpeg -i my-animation.gif -b:v 0 -crf 25 -f mp4 -vcodec libx264 -pix_fmt yuv420p my-animation.mp4 There are a number of ways to convert GIFs to video, FFmpeg is the tool used in this guide. If you have any GIFs that can be converted, you should see a suggestion to "Use video formats for animated content": Create MPEG videos # Then run Lighthouse and check the report. In DevTools, click on the Audits tab and check the Performance checkbox. Use Lighthouse to check your site for GIFs that can be converted to videos.

Thankfully, this is one of those areas of loading performance where you can do relatively little work to realize huge gains! By converting large GIFs to videos, you can save big on users' bandwidth. Have you ever seen an animated GIF on a service like Imgur or Gfycat, inspected it in your dev tools, only to find out that GIF was really a video? There's a good reason for that.

Effect on Largest Contentful Paint (LCP).
