Open the tool

Home/Guides/Why does this paper animator export WebM instead of MP4 or GIF?

Why does this paper animator export WebM instead of MP4 or GIF?

Because the animation is encoded inside your own browser, and WebM is the only animation container a browser can write for free. MP4 and GIF are not offered here — not as a paywall and not as a coming-soon badge, but because the encoder for them is not part of what the page has. A still comes out as PNG; motion comes out as WebM. If you need MP4 or GIF, the file has to be converted after the download.

A browser can write WebM. It has no free encoder for MP4 or GIF.

Everything on this page happens in your tab. The image is decoded locally, the torn-paper pass runs on your machine, and nothing is uploaded — there is no render queue because there is no renderer on the other end. That design decision has a second consequence that is easy to miss until you look at the export panel: the formats you can download are exactly the formats a browser can encode by itself.

WebM is one of them. A browser can take frames off a canvas and hand you a WebM file with no help from anyone — the recorder is built in. That is why the animation button says WebM and nothing else.

MP4 is not. Neither is MOV, and neither is GIF. To write an MP4 you need a video encoder the browser does not ship for free; to write a GIF you need a palette quantiser and a second pass over the whole clip. A page that keeps your file on your own device cannot quietly borrow either one — the only way to offer them would be to send your frames somewhere and encode them on a machine that does have the encoder. That is the trade: keep the file local, and the export list narrows to what the browser can do alone.

The page states this boundary in its own words rather than leaving you to discover it. Under the export buttons it says: "Export formats are exactly what the browser can encode." And in the list of what the page cannot do: "MP4 / MOV / GIF export. The browser ships no free encoder for those; only WebM is produced."

One thing this page does not do is guess. It asks the browser which WebM codec strings it supports before it starts, and if none of them are available it prints that the animation cannot be exported here — instead of starting a recording that will produce nothing. If your browser happens to offer some other container through its own recorder, this page still only ever requests WebM.

How the WebM is actually built, frame by frame

The recording does not sample your screen and it does not depend on how smoothly the preview happens to be running. The canvas is put into a manual capture mode, and a frame reaches the encoder only when the page asks for one — one request per rendered frame. That is a small detail with a large effect: the frame count in the file is the frame count the page decided on, rather than whatever the browser's animation callback managed to deliver while it was busy.

The codec is picked in a deliberate order: VP8 first, then VP9, then bare WebM. VP8 leads on purpose. Software encoding is expensive, and the encoder is running on the same processor that has to keep drawing frames — VP8 costs far less per frame than VP9, so on an ordinary laptop it is the difference between a clip that finishes and a clip that stalls. The recording is written at 8 Mbps.

Two waits around the recording are there for the same reason. Before the recorder starts, the page paints one real frame and pushes it through, because a capture stream that has never been painted can be started and stopped without the encoder ever emitting anything — which is how you end up with a file of a few hundred bytes that is all header and no picture. After the start there is a short pause to let the encoder spin up, and before the stop another short pause, because stopping the instant after the last frame can cut the recording off with nothing written.

And if the result is still empty, the page says so. A file under two kilobytes is reported as a failed export and nothing is saved — it is not offered to you as a download with a success message attached.

The practical shape of all this: the animation button changes to a recording state, the status line counts frames as they go, and when it finishes you get the file size in megabytes, the frame count, the rate it actually reached and the real time it took.

It records at the frame rate your machine can hold, and tells you which one that was

You can ask for 24, 30 or 60 frames per second. What you get is the fastest of those three that your machine can genuinely sustain, and the page prints the number it reached rather than the number you clicked.

Here is why it works that way. The recorder timestamps frames by the wall clock. A clip only plays back at the speed you intended if the frames were really emitted one frame-interval apart. On a machine that cannot render that fast, a recording that insists on the requested rate stretches into slow motion — the file plays back longer and slower than the motion you previewed. So before the timed part of the recording begins, the page measures the cost of a frame with the encoder already running, takes the median of three attempts, and derives the rate it can hold from that. The clip is then recorded at that rate: fewer frames, correct duration, and both stated plainly.

The status line is the honest part. It reports something in the shape of 30 frames @ 10 fps, recorded in 3.3s. If the rate it reached is below the one you asked for, it says so on the same line and adds what a frame actually cost on your machine — so a slow laptop reads as a slow laptop, not as a tool that quietly lied about your settings.

The frame count follows from the same two numbers you set: duration (1 to 10 seconds) multiplied by the frame rate is how many frames the animation has. That is also why exporting takes about as long as the clip itself — the encoding is happening while the frames are being drawn, on your own processor, one after another.

What to do with the WebM afterwards

WebM plays natively in the browsers that produce it, and most editors will take it as an import. For a platform that insists on MP4, run the file through a converter, or drop it into your editor and export from there — the animation is already baked, so nothing is lost in that last step. The same goes for a GIF: convert it if a GIF is genuinely what the destination wants, and be aware that a GIF will lose the colour depth and pick up a larger file for the same clip.

If what you actually need is a still, do not export video at all. The still button rasterises the canvas straight to a PNG, which is the right format for a thumbnail, a slide or a layered composite — it keeps a transparent background where the paper does not cover the frame.

Green screen work is a separate matter and it does not need a special export. The paper tone control sets a flat background behind the piece; key that colour out in your editor and the paper animation drops onto anything. The clip arrives as an ordinary WebM either way.

The short version

PNG for a still, WebM for motion. No watermark, no credit, no account, no upload, and nothing counted. If the format you need is MP4 or GIF, this page will not produce it — and no combination of settings will change that, because the limit is what the browser can encode, not what the tool has been configured to allow. Convert after the download, or pick a tool that renders on a server and accept that your file leaves your machine to get there.

Questions people actually ask

Can this paper animator export MP4?

No. MP4 is not produced here. The export list is a still PNG and an animated WebM, and MP4 is not offered because a browser ships no free encoder for it — a page that never sends your file to a server has nothing else to encode it with.

Can it export a GIF?

No. GIF is not on the export list either, for the same reason. If you need a GIF, convert the WebM afterwards; expect the colour range to drop and the file to grow for the same clip.

Why not just add an MP4 encoder?

Because that would mean a server. Encoding MP4 in the browser is not something the browser gives you for free, so the honest options are to keep the whole pass local and offer WebM, or to upload your frames and render them elsewhere. This tool took the first option, which is also why there is no render queue and no account.

Why did I ask for 30 fps and get 10?

Because the page records at the rate your machine can hold rather than the rate you clicked, and it says so on the status line. The recorder timestamps frames by the wall clock, so pretending to a rate the machine cannot reach would stretch the clip into slow motion. Fewer frames at the correct duration is the better trade.

Does the exported animation have sound?

No. There is no audio pipeline on this page — the recording is video only. Add sound in your editor after the export.

Is the WebM watermarked or limited?

No watermark and no limit. Exports are unmarked, nothing is metered, and no account is involved.

Try it on your own photo Drop an image in, tune the tear, then download a still PNG or a WebM clip. Free, no account, and nothing is uploaded.
Open PaperRip