||WebM is a documented, non-propriety, royal free open source format developed and maintained by Google in collaboration with the Alliance for Open Media. WebM itself is a constrained version of the Matroska IETF specification. Matroska is based on EBML which is also standardized through IETF. As these are new-ish formats, all the specifications continue to evolve through formal processes and transparent peer review.
- The WebM specification is available on the WebM Project website
- Matroska format specification is standardized through IETF. Draft version 04 is available as of this writing in August 2020
- EBML format specification is standardized through IETF. Draft version 17 is available as of this writing in August 2020.
The WebM Project lists a wide variety of tools for creating and publishing content in the WebM format including free and open source as well as commercial options. This includes FFmpeg, a popular open source "cross-platform solution to record, convert and stream audio and video" which has strong support for Matroska as well as FFV1.
Viewing options for WebM includes native support by Mozilla Firefox, Opera and Chrome while Internet Explorer 9+ requires the WebM for Internet Explorer plugin. According to Wikipedia, Safari for macOS which relied on QuickTime to play web media until Safari 12, still does not have native support for WebM. As of 2019 QuickTime does not natively support WebM, but does with a suitable third-party plug-in. In 2011, the Google WebM Project Team released plugins for Internet Explorer and Safari to allow playback of WebM files through the standard HTML5video tag. As of June 2012, Internet Explorer 9 and later supported the plugin for Windows Vista and later.
Other players with native support include VLC media player, MPlayer, K-Multimedia Player and JRiver Media Center.
WebM is supported on popular video sites including YouTube (a subsidiary of Google).
| Licensing and patents
WebM carries a Creative Commons Attribution 3.0 Unported License from Google which states that "Google hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer implementations of the WebM Specifications, where such license applies only to those patent claims, both currently owned by Google and acquired in the future, licensable by Google that are necessarily infringed by implementation of the WebM Specifications."
In addition, Google lists the Additional IP Rights Grant (Patents) for "the use of WebM codecs distributed by Google as part of the WebM Project."
||Depends upon included encodings, some of which will depend upon algorithms and tools to read and require sophistication to build tools.
|Technical protection considerations
||Encryption is supported in Matroska in a generic way "to allow people to implement whatever form of encryption is best for them" according to the IETF draft speficiation from October 2019. In Matroska, encryption data is contained by the ContentEncryption element. According to WebM project, there is an effort to develop a more structured effort to support AES encryption through a W3C proposal (last updated December 2019 as of this writing). This project includes defining new elements specifically for Matroska and WebM including adding a master element named ContentEncAESSettings as a sub-element of the existing ContentEncryption element, which contains elements representing the features of AES. "ContentEncAESSettings contains one sub element. AESSettingsCipherMode conveys the block cipher mode used with the AES encryption. AESSettingsCipherMode contains one value, CTR. With these new elements, clients should be able to decode frames encoded with AES." In addition, WebM supports the existing Matroska elements: ContentEncryption,
and AESSettingsCipherMode. Comments welcome.