WebM is an open media file format designed for the web. WebM files consist of video streams compressed with the VP8 video codec and audio streams compressed with the Vorbis audio codec. The WebM file structure is based on the Matroska media container.
VP8 is a highly efficient video compression technology that was developed by On2 Technologies. Google acquired On2 in February, 2010. For more information, see the “VP8 Video Codec” section below.
Vorbis is an open-source audio compression technology. It is an independent project of the Xiph Foundation. For more information about Vorbis, please visit www.vorbis.org.
We decided to define WebM files in this way because we wanted to do what’s best for users. Users just want video to work, they don’t want to worry about supported codecs, file formats, and so on. After much discussion with browser makers, tool developers and others, we reached a consensus that a narrowly defined format would cause the least confusion for users. If a user has a .webm file, he or she can be confident that it will play in any browser or media player that supports WebM.
A key factor in the web’s success is that its core technologies such as HTML, HTTP, and TCP/IP are open and freely implementable. Though video is also now core to the web experience, there is unfortunately no open and free video format that is on par with the leading commercial choices. To that end, we started the WebM project, a broadly-backed community effort to develop an open web media format.
WebM was built for the web. By testing hundreds of thousands of videos with widely varying characteristics, we found that the VP8 video codec delivers high-quality video while efficiently adapting to varying processing and bandwidth conditions across a broad range of devices. VP8’s highly efficient bandwidth usage and lower storage requirements can help publishers recognize immediate cost savings. Also, the relative simplicity of VP8 makes it easy to integrate into existing environments and requires comparatively little manual tuning in the encoder to produce high-quality results.
To play WebM files, all you need is a supported web browser or media player.
YouTube is supporting WebM in addition to its existing formats as part of its HTML5 experiment. For instructions, see our Users page.
Creating WebM files is easy. You can use any of the supported software products on our Tools page.
Download our VP8 SDK, which includes scripts that are preconfigured to get the best out of VP8. The kit includes links to the same files used in our own testing. You can test VP8 decoding speed using FFmpeg and tools in the Chromium source tree (for example, media_bench).
Also, playback performance and rendering is not yet fully optimized in the browsers that support WebM but improvements are forthcoming. The computational efficiencies of the VP8 codec are more accurately measured today using codec-level development tools in the SDKs.
Visit our Tools page for a list of open source and commercial products that support creating WebM files. A DirectShow filter and QuickTime component are available at our downloads page.
There are open-source libraries such as the Kaltura HTML5 Media Library, Open Standard Media (OSM) Player, Projekktor, Modernizr and others that make accommodating multiple video formats in a single page very easy.
Today, encoding VP8 in “best quality” mode is the slowest configuration. Using “good quality” mode with the speed parameter set between 0 and 5 will provide a range of speeds. We believe that we can make substantial VP8 speed improvements, especially with your help. We increased overall VP8 decoder performance by ~28% in our October 2010 “Aylesbury” release and are focusing on encoder speed improvements for our next named release.
The VP8 and WebM specifications as released on May 19th, 2010 are final. We believe that the code and tools can evolve and improve for many years without requiring changes to the core specifications. We’ll maintain a separate branch of the code, however, for bold new ideas that could alter the specifications. If there are significant improvements that warrant a revision we might adopt them, but only after careful consideration and after discussing suggested changes with the WebM community.
The VP8 and WebM specifications as released on May 19th, 2010 are final and we encourage everyone to use them for developing applications. Google, Mozilla and Opera have added WebM support to their browsers, and all videos that are 720p or larger uploaded to YouTube after May 19th will be be encoded in WebM as part of its HTML5 experiment. We encourage the community to help us complete the work items on our roadmap.
The code, specifications and development guidelines are available on our Code page.
You only need to be a programmer if you want to build WebM support into a software application or contribute improvements to the VP8 or Vorbis source code. To play WebM files, all you need is a supported browser or media player. To create WebM content you can use the software listed on our Tools page. Also, YouTube is supporting WebM as part of its HTML5 experiment.
WebM is an open-source project sponsored by Google. We hope you’ll get involved!
WebM is a new format and will likely evolve over time. We will try to keep the bitstream constant and provide re-encoding tools as appropriate.
WebM is a format for delivering video content over the web. It is defined as one or more VP8 video streams and one or more Vorbis audio streams within a WebM file container as specified on the WebM project web site. That said, the VP8 video codec performs exceptionally well in realtime, low-latency environments such as videoconferencing, and there are companies using VP8 independently in those applications. We have a sample of such an application called “udpsample” here: http://www.webmproject.org/code/#udpsample_udp_sample_code
Yes.
The performance of VP8 is very good in software, and we’re working closely with many video card and silicon vendors to add VP8 hardware acceleration to their chips.
Yes, the license gives you the freedom to use VP8 in virtually any way you like. It should be noted, however, that when VP8 is used in a container other than WebM it will not play in browsers that support WebM.
VP8 is an an open-source technology and developers are free to use it in any application, but the only applications that will play VP8 video inside WebM files are those that support WebM.
VP8 uses 14 bits for width and height, so the maximum resolution is 16384x16384 pixels. VP8 places no constraints on framerate or datarate.
WebM decoding speed and browser rendering performance have improved significantly since our first release in May, 2010. Members of the WebM community and our partners are working hard on further performance improvements.
WebM isn’t something you install on its own. It’s deployed within application software such as web browsers, media players and media plug-ins. We maintain an up-to-date list of products that support WebM playback.
A video is encoded in VP8 if it has the file extension .webm. If you don’t have access to the file extension, reading the file properties (for example, using Get Info on Mac OS) will reveal a MIME type of video/webm. If you are playing WebM video from YouTube, a “WebM” icon will appear in the player toolbar.
Since WebM is a subset of Matroska, it has fewer allowed stream types and features than Matroska.
A distinct name gives us a way to easily refer to the subset, and gives users a way to associate a piece of content with a client having known-good support. Google Chrome, for example, may or may not be able to decode filename.mkv, but it will absolutely play filename.webm — provided filename.webm conforms to the WebM guidelines.
Stay tuned! The WebM community is working with hardware manufacturers to bring WebM support to a wide range of devices.
There are none in the market today but we’re working with hardware manufacturers to bring WebM support to a wide range of devices.
WebM support in Android is expected in the Gingerbread release (currently planned for Q4, 2010). We expect many other Google products to adopt WebM and VP8 as they prioritize it with their other product requirements. Keep an eye on the WebM blog for announcements.
Some video codecs require content distributors and manufacturers to pay patent royalties to use the intellectual property within the codec. WebM and the codecs it supports (VP8 video and Vorbis audio) require no royalty payments of any kind. You can do whatever you want with the WebM code without owing money to anybody. For more information, see the License page.
Like most BSD licenses, this license allows you to use the VP8 code with a minimum of restrictions on your use. You can use the code in proprietary software as well as open source software. We also offer a patent grant, whose details are discussed below.
The patent grant applies to both hardware and software implementations of VP8. Google encourages the WebM community to create hardware implementations of VP8 (for an example, see our blog).
No, the license does not require you to release source if you make changes. However, we would love to see any changes you make and possibly incorporate them, so if you want to participate please visit the Code page and submit some patches.
The Apache license is very similar in effect to this license in that it offers a permissive copyright license and a patent grant. The Apache license is however deemed incompatible with a number of projects that might use VP8.
One of the goals of having this code licensed as liberally as possible is to encourage adoption by as many users as possible. This includes both proprietary and free software. Using the GPL license would not be a good match for this goal.
No. As the copyright license is simply a BSD license, and the patent grant is fully separate from it, it is not a new license. When we first released VP8, we had a clause in the patent grant that called this into question. We’ve since fixed that by decoupling the patent grant from the copyright license. We are confident that this new regime is broadly compatible with permissive and copyleft licenses.
It’s up to you, but you may be better off under the new regime.
Yes, you still have the right to redistribute and you still have a patent license for Google’s patents that cover the code that Google released.
You still have the right to redistribute but no patent license for the changes (if there are any patents covering it). We can’t give patent licenses for changes people make after we distribute the code, as we have no way to predict what those changes will be. Other common licenses take the same approach, including the Apache license.
Yes, you still have the right to redistribute and you still have a patent license for Google’s patents that cover the code that Google released.
Yes, he still has the right to redistribute and he still has a patent license for Google’s patents that cover the code that Google released.