Video · 59 tools · nothing uploads

WebM to MP4

Transcode a WebM to MP4. VP8/VP9/AV1 and Opus/Vorbis are not MP4-native codecs, so this decodes and re-encodes every frame through WebCodecs, in the browser only, rather than repackaging the bytes.

Input

Options

WebM to MP4 re-encodes a clip whose VP8, VP9, AV1, Opus or Vorbis streams have no home inside an MP4 container. Every frame decodes and a fresh, MP4 compatible codec gets encoded in its place, at a quality preset, medium by default. WebCodecs does the work, so this page needs a browser tab.

Questions

Does this repackage or re-encode?

Re-encode. VP8, VP9 and AV1 with Opus or Vorbis are not MP4-native codecs, so this decodes every frame and encodes it fresh into an MP4-storable codec through WebCodecs, rather than copying the compressed bytes.

What is lost?

One generation of re-encoding quality, at the low, medium or high preset chosen, medium by default. There is no lossless path from WebM to MP4 here.

Which engine handles this, and where can it run?

The mediabunny Conversion API drives WebCodecs decode and encode, so this is browser only. The command line and MCP refuse it and point to the web page, where the work runs in a Web Worker with nothing uploaded.

What size should I expect?

A real MP4 with a genuine mdat box holding sample data, not an empty shell. A two-second, 320 by 240 source converts to a similarly short MP4 whose exact size tracks the quality preset chosen.

What is the reverse page?

MP4 to WebM runs the opposite direction, the reverse pair of this one, with the same re-encode and quality trade-off in the other direction.

Related Video tools

n→nMOV to MP4Repackage a QuickTime MOV into MP4. Both are the same ISOBMFF box family carrying the same H.264/H.265 and AAC, so every packet is copied across with no decode and no re-encode.Runs on each file you dropn→nMKV to MP4Repackage a Matroska MKV into MP4 with no decode and no re-encode. A subtitle or attachment track MP4 has no room for is dropped and named, the video and audio packets are copied across untouched.Runs on each file you dropn→nTS to MP4Repackage an MPEG transport stream (.ts) into MP4. TS repeats its stream tables throughout the file for channel-hopping and has no seek index; MP4 gets one, so the same packets seek instantly once copied across.Runs on each file you dropn→n3GP to MP4Repackage an old 3GP mobile video into MP4. 3GP is already an ISOBMFF variant carrying H.264/AAC or the older H.263/AMR, so a modern player that refuses the 3GP extension plays the identical packets once they sit in an MP4 box.Runs on each file you dropn→nMP4 to WebMTranscode an MP4 to WebM. H.264/AAC and VP8-VP9/Opus are unrelated codec families, so every frame is decoded and re-encoded rather than copied, in the browser only, through WebCodecs.Runs on each file you dropn→nMP4 to GIFTurn an MP4 clip into an animated GIF. WebCodecs decodes the frames and this tool builds the GIF89a bytes itself: one shared 256-colour palette across every sampled frame, no dithering. Browser only.Runs on each file you dropn→nMOV to GIFTurn a QuickTime MOV screen recording or clip into an animated GIF. WebCodecs decodes the frames and this tool builds the GIF89a bytes itself, one shared palette across every sampled frame. Browser only.Runs on each file you dropn→nGIF to MP4Turn an animated GIF into an MP4. This parses the GIF89a bytes itself, including disposal method and transparency compositing, then encodes the composited frames through WebCodecs. Browser only; transparent pixels become opaque black, MP4 has no alpha channel.Runs on each file you drop