VP9 Vs. H.264: Which Video Codec Should You Use?

The current video marketing landscape requires you to understand and manage several critical factors to ensure a great user experience, and that your content gets the attention it deserves.

One such factor is properly understanding the codecs you use for your video compression. A video codec compresses raw video files to manageable sizes for efficient storage and transmission and then decompresses them for playback. As the demand for video marketing continuously increases, understanding which codec is best for which scenario becomes increasingly critical.

There are a number of video codec formats available that have their own advantages and drawbacks. But this blog post will be all about the VP9 and the H.264 codec. Let’s understand these in detail, and compare them head-to-head to know which one you should use, and where.

What is H.264?

The H.264 format, also known as AVC or Advanced Video Coding, is a part of the MPEG4-Part 10 specification. It is a proprietary video codec standard that was developed by the ITU-T Video Coding Experts Group (VCEG) together with the ISO/IEC Moving Picture Experts Group (MPEG) and officially released in 2003.

This codec uses block-based prediction, and the image is divided into smaller blocks, typically 4x4, 8x8, or 16x16 pixels. It then applies spatial prediction – and other inter-frame compression techniques like entropy coding and motion vector estimation to predict the current frame based on previously encoded frames.

The H.264 codec is a near-universally compatible video codec format with several use cases – from Blu-rays to Twitch, to Netflix. It also has support for resolutions up to 4K, lossless encoding, efficient handling of both low and high-bitrate video streams, and multiple profiles to accommodate different applications and device capabilities. But as H.264 is a proprietary codec, you'll require licensing fees for commercial usage.

To convert a video file to an H.264 encoded video file using FFmpeg, use the following command:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4

The command uses FFmpeg (a collection of libraries and programs for handling audio, video, and other multimedia files and streams) to convert the input.mp4 video to an H.264-encoded .mp4 file with a balance of quality and file size (crf 23), and audio encoded using the AAC codec. The -crf parameter sets the quality of the output file, with lower numbers indicating higher quality.

What is VP9?

VP9 is the successor of the earlier VP8 codec. It is an open-source codec developed by Google and officially released in 2013. The aim of building VP9 was to provide a high-quality video streaming experience without using too much bandwidth.

Similar to H.264, VP9 also uses a block-based prediction scheme, but with a larger block size of up to 64x64 pixels. It also uses multiple prediction modes and more complex motion estimation. And according to Google, these techniques can help reduce bitrates by up to 50% compared to H.264, reducing file sizes significantly.

It is important to mention that VP9 is an open-source and royalty-free codec, serving as the premiere cost-effective solution for developers and video marketers alike. Another key advantage that positions VP9 as the preferred codec for media streaming platforms like YouTube is its capability for parallel processing, a feature it shares with the H.265 codec.

Let’s take a quick example of VP9 encoding using FFmpeg.To convert a file called input.mp4 to a VP9-encoded video, use can use the following command:

ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 1M -c:a libopus output.webm

The command here uses FFmpeg to convert the input.mp4 video to a VP9-encoded .webm file with a video bitrate of 1 megabit per second and audio encoded using the Opus codec.

What are the Key Differences Between VP9 vs. H.264?

Both of the two codecs are extremely capable and widely used. Let’s discuss the differences that need your attention when choosing one codec over the other, one by one.

1. Compression Efficiency

Compression efficiency is a measure of how effectively a codec can reduce the size of video data without degrading the quality beyond an acceptable level. It's an important aspect of video encoding, as it directly impacts the storage, transmission costs, and playback quality of video content.

VP9 is a clear winner as it provides better compression efficiency than the H.264 Codec. It employs a larger Superblock structure of 64x64 pixels, which can then be split into smaller blocks for more detailed and efficient compression. It provides flexibility with four different transform sizes - 32x32, 16x16, 8x8, and 4x4, allowing it to adapt to various video content complexities. When encoding a video frame, VP9 separates it into three parts: an uncompressed header, a compressed header, and the compressed frame data.

Source: Doom9's Forum

The H.264 codec takes a different approach and uses a structure called Macroblock. Macroblock is a block of 16x16 pixels. These Macroblocks can further be divided into smaller partitions for detailed motion estimation and compensation.

Due to the larger block size and other factors like more advanced intra-prediction modes and better motion compensation methods, the VP9 codec provides better compression efficiency than the H.264 codec.

2. Device and Platform Compatibility

The H.264 codec is much older than VP9. The AVC or H.264 codec was released in 2003. Because of a more prominent presence in the market, the adoption and compatibility are much higher than the newer VP9 format. It also provides an outstanding balance between compression efficiency and computational complexity and support for different resolutions. Because of such a sweet blend, many popular media players, streaming services, and hardware devices support the codec.

VP9, while being a much more efficient codec, was released in 2013. Lacking in maturity compared to H.264, some old hardware devices, applications, and media players do not support it. Even Apple started supporting VP9 on all its platforms only recently.

3. Encoding Performance

H.264 codecs are faster at encoding jobs than VP9 codecs. The encoding for VP9 takes more computational time compared to H.264 because of its advanced algorithms for optimizing video quality and compression. On the other hand, H.264's encoding process is more straightforward, leading to quicker encoding times.

H.264 is a very well-optimized encoder. It uses a great mix of quality and speed for videos. While VP9 undoubtedly produces much smaller files for the same visual fidelity, the tradeoff is that its encoders are significantly slower than H.264.

Souce: Gnome.org

According to a test by Ronald S. Bultje, where he compared the encoding speed between H.265, H.264, and VP9, he found out VP9 and H.265 are almost 10 to 20x slower to encode than H.264, as you can understand from the graph above. The x264 codec was used for H.264, x265 for H.265, and libvpx was the VP9 codec.

4. Output Video Quality

Output video quality, also known as perceived visual quality, is the viewer's subjective experience of the video's appearance. When assessing the output video quality between VP9 and H.264, you’ll often notice the use of metrics like PSNR (Peak Signal-to-Noise Ratio) and SSIM (Structural Similarity Index), which aim to quantify the similarity between the original and the compressed video. Usually, VP9 can deliver better video quality than H.264 at the same bitrate due to its better compression efficiency. This advantage becomes increasingly noticeable at higher resolutions and bitrates.

But please keep in mind that the perceived video quality doesn't solely depend on the codec but also on factors like the quality of the original source, the encoding settings, the display device, and even individual viewer perception.

5. Licensing

The two codec types that are being discussed in this blog offer two completely different licensing strategies. H.264 is a proprietary solution that requires licensing fees, to both manufacturer hardware supporting it, as well as for software solutions. According to NAB Amplify, H.264 can cost you about $0.10 to $0.20 per device.

On the other hand, VP9 is an open-source and completely royalty-free solution.

So, if you don’t want to spend money on royalty charges for codecs, VP9 is a winner. But comparing how large your user base is and how compatible you want to be with other devices, the royalty fee can be worth the investment.

VP9 or H.264: Which should you choose, and when?

The choice for a specific codec format, be it VP9 or H.264, often hinges on the use case. Both codecs have their own strengths and weaknesses depending on various scenarios. Understanding these differences is crucial for making an informed choice based on your requirements, such as the need for high-quality streaming, device compatibility, encoding speed, and cost considerations.

Let's dive into a comparative analysis of VP9 and H.264 across several use cases:

Particulars VP9 H.264
Web-based video Choose VP9. With superior compression efficiency, VP9 is excellent for web-based video content that isn’t time or latency sensitive. It reduces bandwidth usage, which is essential for platforms like YouTube and Netflix. While H.264 provides decent quality, it uses more bandwidth compared to VP9, leading to potential buffering issues in areas with slower internet speeds.
Low Latency Media Due to slower encoding times, VP9 may introduce more latency, which could be a problem in real-time applications like video conferencing and broadcasting. H.264 is better for video or live streaming. Its faster encoding speed makes it more suited for live streaming, video conferencing, or broadcasting, where low latency is crucial.
Archival Purposes VP9 stands out for its lower storage requirements. Thanks to its superior compression efficiency, VP9 can achieve equivalent video quality to H.264 but at significantly smaller file sizes, resulting in substantial storage space savings when used for archival purposes. H.264 encoded videos demand more storage space to achieve the same level of quality. However, due to its widespread acceptance and compatibility, H.264 can still be a dependable choice for archival needs.
High-resolution video (4K or 8K) VP9 excels at high-resolution video content. Its superior color depth (supports 10-bit color space on the original spec) is better suited for accurate representations of Ultra HD video, and its superior compression efficiency allows 4K or even 8K streaming with reduced bandwidth, offering excellent video quality. While H.264 can handle high-resolution streaming, it does so at significantly larger file sizes and bandwidth requirements. This can lead to buffering for end-users, especially in bandwidth-starved scenarios.
Mobile devices While most modern mobile devices support VP9 hardware decoding, some older devices or low-end models may lack this capability. In such cases, software decoding is used, leading to higher CPU usage and disproportionately high battery drain during video playback. H.264 is a widely adopted and older codec, which means pretty much all mobile devices made in the last decade (or more) have dedicated hardware support for H.264 decoding. This leads to efficient video playback with lower CPU usage and less impact on battery life.
Cost Considerations As an open-source and royalty-free codec, VP9 doesn't require licensing fees, which can be a financial advantage for many budget-restricted, or non-profit use cases. H.264 is a patent owned by a consortium that most notably includes MPEG LA, which controls its licensing fees and royalties – for its use in both hardware and software.
Legacy/Low-power devices VP9 is not ideal for legacy or low-power devices, as it requires more computational power for decoding and is not universally supported by older devices. H.264 is much better suited because it is universally supported, and requires less computational power for decoding, which makes it ideal for legacy and low-power devices like surveillance systems, consumer TVs, and set-top boxes.

The key takeaway from the comparison between VP9 and H.264 video codecs is that the choice depends on your specific use case. VP9 offers superior compression efficiency, but its slower encoding times could introduce latency, making it less ideal for real-time applications like video conferencing.

On the other hand, H.264, with its faster encoding and wide device compatibility, excels in real-time/low-latency use cases like live streaming, video conferencing, and broadcasts. It also boasts broader device compatibility, making it a safer choice regardless of platform. However, H.264 uses more bandwidth and storage, which could lead to buffering issues in slower internet conditions or higher costs for storage.

ImageKit for Video Optimization

ImageKit is a real-time image and video optimization, transformation, and digital asset management tool that helps developers and marketers deliver high-quality video experiences to the end-users on the web. ImageKit provides a number of tools that can help you, as a developer or a marketer, to provide the best possible video experience to your users, backed by a global CDN – AWS CloudFront – out of the box.

Some of its most significant features are:

Video Format Conversion

As soon as a video file is uploaded, ImageKit automatically converts it to the most efficient format compatible with the viewer's device. This includes support for both VP9 and H.264 codecs, along with many others, ensuring the best balance between compatibility and compression efficiency.

With just one setting enabled from the ImageKit dashboard, you’ll deliver a source video in a format that is dynamically chosen to be the one best supported by your user – with no extra work on your part.

The video URL remains the same, but the video that is delivered is different. For example, you upload a single video as MP4, but it gets delivered as MP4 on devices/browsers that support H.264 better than VP9, and as WEBM on devices/browsers that perhaps have better hardware acceleration support for VP9 than H.264 – like Firefox Mobile.

Source: ImageKit docs - Automatic video format conversion

Video Optimization

ImageKit can also optimize your videos and reduce the size without visual differences.

This is yet another Dashboard toggle. Just toggle the Optimize video quality before delivery button, choose your Default quality, and you are good to go.

It intelligently – and automatically – adjusts various parameters, including bitrate and resolution, to ensure that your video is delivered in the smallest possible size without compromising on quality. This leads to faster load times, less buffering, and an overall better viewing experience.

Real-time Video Transformation

You can also perform real-time video transformation using ImageKit’s URL-based API, to deliver customized videos to your users. Whether you need to adjust the aspect ratio, add watermarks, or perform cropping, rotation, or scaling, ImageKit makes it easy and straightforward.

Adaptive Bitrate Streaming

Finally, ImageKit's support for Adaptive Bitrate Streaming or ABR is worth highlighting. ABR optimizes video viewing across different types of devices and connection speeds, ensuring minimal buffering, faster start times, and an excellent viewer experience irrespective of network conditions.

ImageKit supports the two most widely used ABR protocols – Apple HLS and MPEG-DASH. Requesting the protocol is as simple as passing another URL parameter. For example, to get an Apple HLS manifest, the requested URL format would be:

https://ik.imagekit.io/your_account_name/your-video.mp4/ik-master.m3u8?tr=sr-480_720_1080

And for a MPEG-DASH manifest, the URL would be:

https://ik.imagekit.io/your_account_name/your-video.mp4/ik-master.mpd?tr=sr-480_720_1080

For both cases, the manifest will be created with three variants at 480p, 720, and the source 1080p. This URL can be added to wherever you want, may it be a website or an app.

Conclusion

This post was a deep dive into the two popularly used video codec formats — VP9 and H.264. You learned the definitions of them, the different capabilities they provide, and the key differences between them. You also checked when to choose which codec from a tabular comparison.

Video marketing demand is growing significantly. And as a developer or a video creator, it is crucial for you to understand which codec suits you the best. But to reduce the amount of stress understanding and comparing which codec to choose, a cloud-based, developer-friendly solution like ImageKit – that comes with best practices implemented as defaults – is a safe bet.

If you are someone serious about providing the best possible video viewing experience to your users, try ImageKit. Sign up to ImageKit today, enjoy a generous free tier for up to 20GB of media storage, and explore the possibilities.