APNG Speed Changer

Decodes an uploaded APNG's frames and delays, divides every frame's delay by a speed multiplier you choose (2x plays twice as fast, 0.5x plays at half speed), and re-encodes a new, valid APNG with the retimed frames, entirely in your browser. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

This tool changes how fast or slow an existing Animated PNG plays, without touching its frames or requiring you to re-author the animation.

It builds on this category's shared APNG decoder and encoder, treating speed change as a pure retiming transform on already-decoded frame data.

What Is APNG Speed Changer?

An APNG retiming tool that decodes an uploaded animation's frames and delays, divides every delay by a multiplier you choose, and re-encodes a new, fully valid APNG with the adjusted timing.

It supports any multiplier from 0.1x (much slower) to 10x (much faster), applied uniformly to every frame.

How APNG Speed Changer Works

The uploaded file's bytes are decoded into an ordered list of frames, each with its own millisecond delay, using this category's shared decoder.

Each frame's delay is divided by the chosen speed multiplier (delay / speed), and the rescaled frame list is handed to this category's shared encoder, along with the original loop count, to produce the new file's bytes.

When To Use APNG Speed Changer

Use it to make a sluggish animation feel snappier, or to slow down a fast animation so its individual steps are easier to see.

It's also useful for quickly trying out a few different playback speeds on the same source animation without re-exporting from an animation tool each time.

Features

Advantages

  • Applies a precise, uniform speed change across every frame in one step rather than manually recalculating each delay.
  • Reuses this category's already-tested decode/encode logic, so the retimed file is just as valid as the original.
  • Runs entirely client-side; the uploaded file is never sent anywhere.

Limitations

  • The multiplier applies uniformly to all frames; there's no way to speed up only part of the animation with this tool alone.
  • Extremely fast multipliers can push per-frame delays below what some viewers render reliably, since very short delays get clamped by many decoders.

Examples

Double the speed of a walk cycle

Input

An 8-frame APNG with 100ms delays each, speed 2x

Output

A new 8-frame APNG with 50ms delays each

Dividing each 100ms delay by the 2x multiplier halves it to 50ms, playing twice as fast.

Slow down a fast blink

Input

A 2-frame APNG with 40ms delays each, speed 0.25x

Output

A new 2-frame APNG with 160ms delays each

Dividing by a multiplier below 1 (0.25x) increases each delay, here quadrupling it.

Best Practices & Notes

Best Practices

  • Preview the retimed result with the APNG Player tool to confirm the new pace feels right before publishing.
  • Apply modest multipliers (0.5x-2x) for most UI use cases — very extreme speeds can make an animation hard to follow or feel unnaturally choppy.

Developer Notes

The retiming math itself is a single division per frame's delayMs; the real decode/re-encode work is delegated to this category's shared decodeApng/createApng functions, keeping this tool's own lib file focused purely on the speed transform and its input validation (rejecting multipliers outside the 0.1x-10x range).

APNG Speed Changer Use Cases

  • Speeding up a slow-feeling loading spinner or status animation
  • Slowing down a fast animation to study its individual frames more closely
  • Trying several playback speeds on the same source animation before settling on one

Common Mistakes

  • Expecting the speed multiplier to add or remove frames — it only rescales each existing frame's delay.
  • Using an extremely high multiplier and being surprised some viewers clamp the resulting very short delays rather than honoring them exactly.

Tips

  • Combine with the APNG Reverser tool to both retime and reverse an animation in two quick steps.
  • If you need an exact target duration rather than a relative speed, calculate the multiplier as (original total duration / desired total duration) first.

References

Frequently Asked Questions