WebM


WebM (file extension .webm
) is a video file format developed by Google, based upon the
Matroska (MKV) container format. WebM was originally designed to be used on webpages to save bandwidth, but it also has some benefits when it comes to video games and many other applications.
In Source and Source 2 games, WebM is being used in Counter-Strike: Global Offensive and Counter-Strike 2 as menu backgrounds. And in Team Fortress 2 (since 2024 engine update), aswell as Half-Life (25th anniversary), for Valve intro during startup.
The biggest benefit of WebM over Bink (or AVI) for games is that of file size; a WebM video will be significantly smaller than that of a similar-quality Bink file as WebM has better compression than Bink. For example, the installation size of Hunt Down the Freeman decreased by 5.7 GB when switching its FMV cutscenes from Bink to WebM[1]. Furthermore, WebM is much more common and easier to make than the Bink file format, as Bink requires the RAD Video Tools software that only takes AVI files (MP4 initially required QuickTime until the requirement was eventually removed as QuickTime for Windows is no longer supported by Apple), and may fail to convert MP4 to BIK (with "Unable to open file" error) on some systems.
WebM is supported in the following games, engines, and engine branches:
Video codecs | Audio codecs | ||||
---|---|---|---|---|---|
Implementation | VP8 | VP9 | AV1 | Vorbis | Opus |
![]() ![]() |
Yes | Yes | No | Yes** | Yes** |
![]() (since 25th anniversary update; intro video only) |
Yes | Yes | No | Yes* | Yes* |
![]() (since 2018 Panorama update) |
Yes | Yes | No | Yes*** | No |
![]() |
Yes | Yes | No | Yes | No |
![]() |
Yes | Yes | No | Yes | No |
WebM Video Services for ![]() (used by ![]() |
Yes | Yes | No | Yes | Yes |
- *Audio is read, but muted.
<moddir>/sound/ui/valve_sound.wav
is used instead. - **Audio is read, but muted. (only in
) If the video was unable to play due to incompatible codecs or other codecs issue, then part of the intro sounds (
sounds/ui/logo_startup.vsnd_c
, which is played separately) will not play or likely be played in lower volume. - ***Sometimes audio plays in slower speed and lower pitch.
- ****Support added in
since April 18, 2024/64-bit update. Later,
20th anniversary, and all remaining Source 2013 Multiplayer games (
,
and
) upgraded to Team Fortress 2 branch, which now adds WebM support, however, these upgraded games (aside from TF2), still only ships with Valve intro in Bink format. This meant that you will need to launch the game in 32-bit to play the intro, as 64-bit version now requires WebM, and these games (except TF2) does not ship with WebM version of Valve intro, causing the game to skip the intro.
To convert a 1080p MP4 file to a WebM that will reliably play in the the above games and have reasonable quality and encoding speed, use the following ffmpeg script:
- To increase audio quality, increase -ab.
- To increase video quality, reduce -crf. Lower values may be necessary for higher and lower resolutions to reduce macroblocking artefacts.
References
CollapseReferences | ||
---|---|---|
|