Loop Video & Boomerang Maker

Loop a clip several times or make a boomerang that plays forward then reversed, in your browser. The loop is a fast, lossless copy with no re-encode.

🌐 Español

Drop your file here (.mp4, .mov, .m4v, .webm)

🔒 Private by design: your files are processed locally in your browser and never uploaded to any server.

Two effects share this page because they are the same idea to a viewer and completely different jobs to a video encoder. Repeating a clip is copying. Bouncing a clip is redrawing it. That split explains almost everything about how the two modes behave, including why one has limits and the other does not.

Two ffmpeg strategies behind one button

Loop mode never re-encodes. The clip is handed to ffmpeg with a stream-loop option placed before the input, which replays the source a set number of extra times, and the output is written with a plain copy of both the video and the audio packets. No frame is decoded, no frame is redrawn, and no quality is lost no matter how many passes you ask for. It is also why even a long clip stays cheap to loop: the work is proportional to the bytes moved, not to the pixels decoded.

Boomerang mode cannot work that way. The reversed half has to exist before it can be written, so the clip is decoded, run through a filter graph that splits it into two streams, reverses the second and concatenates the two, and then encoded again with x264 at a constant rate factor of 20 on the fast preset, in a broadly compatible pixel format. That is a real re-encode with a real, if usually small, generational quality cost. If you want the full explanation of why that cost exists at all, the guide on re-encoding covers it.

The count is total plays, not extra repeats

Number of plays (loop mode) is how many times you will see the clip, end to end. Three means three. Under the hood ffmpeg counts additional replays rather than total plays, so the tool subtracts one before handing the number over: three plays becomes a request for two extra loops. Getting that conversion backwards is the classic way to end up with four passes when you asked for three, and it is the single most common bug in hand-written loop commands.

The field accepts two to twenty. Two is the floor because looping something once is just copying it.

Choosing an effect and exporting the clip

  1. Drop a file on the box or press Choose a file. MP4, MOV, M4V and WEBM are accepted, one at a time.
  2. Set Effect to Loop (repeat the clip end-to-end) or Boomerang (play forward, then reversed).
  3. For a loop, set Number of plays (loop mode). The boomerang ignores this field.
  4. Press Loop Video & Boomerang Maker and watch the progress percentage. A loop only moves bytes around, so it finishes quickly; a boomerang has to decode the clip and then encode twice its length with a single-threaded encoder, so expect a substantially longer wait.
  5. Download the result. A looped file arrives as your own file name with a -looped suffix and its original extension, and a boomerang arrives with a -boomerang suffix and an .mp4 extension. Process another clears the box for the next clip.

The thirty second and hundred megabyte boomerang ceiling

Reversing has no streaming form. To emit the first output frame the filter must already hold the last input frame, which means holding all of them at once. On a single-threaded WebAssembly build of ffmpeg with a bounded heap, a long or high-resolution clip will exhaust memory and take the tab with it.

Rather than let that happen, boomerang mode probes the input, reads its duration, and refuses anything over thirty seconds or over one hundred megabytes before any encoding starts. The size check runs first, and a file with no readable duration is judged on size alone. Loop mode has neither limit, because copying packets never needs the whole clip in memory.

One honest caveat about that refusal: the module composes a detailed explanation naming which limit you hit and by how much, but the shared file-tool shell replaces every error with one generic sentence and writes the real text to the browser console. So the clip stops instead of crashing, which is the point, but the on-screen message will not tell you whether it was the length or the size. If you hit it, trim the clip first, which is a stream copy on the same four formats and so does not re-encode either, then boomerang the shorter piece. For an MP4 that is under thirty seconds but still too heavy, compress it first instead; that page takes MP4 only.

No crossfade, and that is deliberate

There is no blend between loop passes here. Doing a crossfade properly means re-rendering the entire video and mixing the tail of each pass into the head of the next, which throws away the one thing loop mode is good at and is fragile on an in-browser encoder. A half-working crossfade that ships glitchy output would be worse than none.

If what you actually want is motion with no visible cut, the boomerang is the answer: the forward and reversed halves meet on the same frame, so the join is seamless by construction. The trade is that you get a bounce rather than a repeat, and no audio.

File names, containers and the size readout

Loop output keeps the source container and lowercases the extension, so a file named “My Clip.MOV” comes back as “My Clip-looped.mov”. The MP4 family also gets the fast-start flag so the result begins playing before it has fully downloaded. Boomerangs always land as “My Clip-boomerang.mp4”.

The first video tool you use in a session downloads the ffmpeg engine itself, which is a large one-time fetch from a public package CDN before any processing starts. Your footage is not part of that: the file is read from disk into the tab and never sent anywhere. Cancelling mid-run terminates the engine and empties the box, so there is no half-finished file left to download.

Looping pairs naturally with a few neighbors. Turn the looped clip into a GIF if the destination will not autoplay video, though that page accepts MP4 only. Change the speed before or after looping for a faster bounce. The rest of the clip-editing set is on the video tools hub.

See it in action

Screenshot of the Loop Video & Boomerang Maker tool with sysfenix-sample.webm (183 KB) loaded, Effect set to Loop (repeat the clip end-to-end), Number of plays (loop mode) set to 3
Loop Video & Boomerang Maker mid-process: sysfenix-sample.webm (183 KB) loaded, Effect set to Loop (repeat the clip end-to-end), Number of plays (loop mode) set to 3.
Screenshot of the Loop Video & Boomerang Maker result screen showing sysfenix-sample-looped.webm ready to download (549 KB, 200% larger)
The finished result: sysfenix-sample-looped.webm ready to download (549 KB, 200% larger). The download link is a local blob URL — the file never leaves your device.

Frequently asked questions

Does a looped file get bigger in proportion to the play count?

Roughly, yes. A stream copy writes the same packets out again for each pass, so three plays lands near three times the input size, give or take the container overhead. The shell's own summary line compares input to output and will report the result as larger rather than smaller, which is expected here and not a sign that something went wrong.

Can I loop a WEBM, or does everything come back as MP4?

Loop mode keeps whatever container you gave it, so a WEBM comes back as a WEBM and a MOV comes back as a MOV. Only the MP4 family gets the fast-start flag applied, since that flag moves an index that only exists in that family. Boomerang mode is the exception and always writes an MP4, because the reversed half has to be encoded fresh and H.264 in MP4 is the safest thing to hand to a phone or a social app.

What does the boomerang do to my soundtrack?

It removes it. Audio is dropped from the boomerang command outright, so the result is silent. Reversed audio is unpleasant and most boomerangs are muted where they end up anyway, and dropping it also keeps the filter graph from referencing an audio stream that a silent source would not have. Loop mode leaves the original audio alone and simply repeats it with the picture.

I want the clip backwards but not forwards first. Is that this tool?

No, that is the Reverse a Video page on this site. It runs the same reverse filter under the same length and size caps, but it plays the clip once in reverse rather than joining a forward pass to it, and unlike a boomerang it gives you a choice of reversing the audio, keeping it playing forwards or muting it.

Why does it read my file before telling me the clip is too long?

Because the length has to come from somewhere. Choosing boomerang runs a quick probe pass over the file first and reads the duration out of the engine's own report, and only then compares it against the limits. On a large file that probe is not instantaneous. If the engine reports no duration at all, which happens with some malformed containers, the size limit is enforced on its own.

What is the smallest and largest number of plays I can ask for?

Two and twenty. One play is a no-op, so the minimum is two, and anything you type below it is raised to two rather than rejected. Emptying the box is not the same as typing a low number, because a blank field counts as no value given and falls back to the three plays the page starts with. Values above twenty come back down to twenty.

Related tools