Convert MOV to WebM with VP9 and Vorbis (royalty-free, browser-ready)
WebM is the format to reach when the destination is a browser and you want to avoid H.264 licensing entirely. VP9 video and Vorbis audio play in every modern browser, the container is royalty-free, and quality at a given bitrate is excellent.
The command
ffmpeg -i input.mov -c:v libvpx-vp9 -c:a libvorbis output.webmWhat it does
FFmpeg decodes the MOV (typically ProRes or H.264 + AAC on macOS), re-encodes the video to VP9 via libvpx, re-encodes audio to Vorbis, and muxes both into the WebM container. Defaults are reasonable but conservative; for production you almost always want to set a target bitrate or CRF.
When to use it
Whenever the target is a browser and you want a fully open pipeline. WebM/VP9 is also a good archival format because it is patent-unencumbered. For a balance of quality and size, add -b:v 0 -crf 30 -b:a 128k for a constant-quality encode.
Video and audio requirements
VP9 is a software codec, so encoding is slow without hardware acceleration. Audio can stay Vorbis or be transcoded to Opus for better speech quality. VP9 supports 8-bit and 10-bit; specify -pix_fmt yuv420p10le for 10-bit HDR sources.
Things to avoid
- Expecting real-time encoding on a CPU. VP9 is roughly an order of magnitude slower than H.264; budget accordingly or use a GPU (NVENC VP9 exists on recent NVIDIA hardware).
- Leaving the default quality. The default CRF 32 is blocky; 24 to 28 is the sweet spot for delivery.
- Forgetting
-row-mt 1for multi-threaded encoding on large frames. Without it libvpx uses a single thread and encodes crawl. - Using WebM for iOS delivery. Safari supports it but not in all contexts, and AirDrop and many iOS video apps do not.