PRODUCT CREATIVE / PRODUCTION AND HANDOFF
Why Is My Product GIF Running at the Wrong Speed After I Set Delay?
ImageMagick's GIF delay values are not automatically measured in seconds. The -delay setting uses ticks and ticks per second, with 100 ticks per second as the default. Therefore, 20 ticks at that rate means 0.2 seconds per frame, not 20 seconds. Check the timebase and individual frame delays before changing animation speed.
Convert Delay Values Into Actual Durations
ImageMagick expresses delay using a ticks-by-ticks-per-second relationship. The default timebase is 100 ticks per second.
A delay of 20 ticks therefore represents 20 divided by 100 seconds, or 0.2 seconds. For a hypothetical animation containing 20 frames with that delay on every frame, the nominal total duration is four seconds.
This arithmetic describes the specified timing, not a measured playback result. Actual playback behavior may vary between viewing environments.
Decision branch: If the animation runs faster than expected, first check whether a tick value was mistakenly interpreted as seconds. If its total duration seems correct but individual scenes feel rushed, inspect per-frame delays.
Distinguish -delay From -set Delay
ImageMagick's -delay option is normally placed before reading images when assigning a delay setting to subsequently read frames. Its position in the command matters because command-line settings affect the images they apply to.
The -set option can modify delay properties on images already present in the current in-memory sequence. This supports a different workflow from specifying a global delay before loading frame files.
For an animation requiring identical timing throughout, a common delay may be appropriate. For one containing a deliberate pause on the final product name, applying one uniform delay can remove the intended emphasis.
Decision branch: Use an appropriate shared setting when every frame needs the same duration. Inspect and modify individual frame timing when different animation moments require different durations.
Illustrative Exercise: Two Timing Requirements
Illustrative exercise — hypothetical inputs and calculations, not executed software tests. Input A is a 20-frame rotating product demonstration requiring equal frame durations. Input B is a product reveal with a final brand-name frame intended to remain visible longer.
For Input A, assign a nominal delay of 20 ticks at 100 ticks per second to each frame. The calculated total is four seconds. Record the delay assigned to every frame rather than inferring it from the frame count.
For Input B, compare the regular animation frames with the closing frame. Specify the longer closing delay deliberately instead of changing every frame to the same value.
Decision branch: If all frames must be uniform, verify identical timing metadata. If the final message needs additional reading time, preserve its distinct delay and calculate the complete sequence duration accordingly.
Verify Timing Before Animation Delivery
Inspect the stored delay and ticks-per-second information for each frame. Frame count alone does not determine animation speed, especially when delays differ.
Check the full loop, including the final frame's duration and the return to the opening image. A long closing hold can be intentional rather than evidence of a stalled animation.
If writing commands containing angle-bracket timing notation, quote the argument appropriately so the shell does not interpret those characters as redirection operators.
Finally, review the exported GIF in its intended viewing environment. ImageMagick timing metadata does not guarantee identical playback timing in every browser or viewer.
Illustrative Exercise — Per-Frame Delay and Nominal Animation Duration
These are illustrative exercise rows. Save a copy and record your own observations; the example is not an executed acceptance test.
| Hypothetical animation | Frame timing requirement | Ticks and timebase | Nominal duration calculation | Decision branch | Verification |
|---|---|---|---|---|---|
| A: 20-frame rotating product | All frames equally timed | 20 ticks per frame at 100 ticks/second | 20 × 20/100 = 4 seconds | Assign and verify uniform frame delays | Check each frame's timing and complete loop |
| B: Product reveal with closing brand name | Final frame held longer than preceding frames | Regular frames use 20/100 seconds; closing frame uses a separately chosen delay | Sum each frame's specified duration | Preserve distinct closing-frame timing | Check brand-name reading time and loop transition |
Sources and further reading
Recorded source-review dates are listed individually below. An undated source does not inherit the article’s publication date. Software and platform rules can change; check the current original before acting.
- ImageMagick 7: -delay · Reviewed
- ImageMagick 7: -set · Reviewed
Frequently asked questions
Does a delay value of 20 mean each GIF frame lasts 20 seconds?
No. At the default 100 ticks per second, 20 ticks equals 0.2 seconds. Interpret the value together with its ticks-per-second setting.
Can I calculate GIF duration by dividing the frame count by a single FPS value?
Only when frame durations are uniform and that rate accurately represents them. For variable-delay GIFs, calculate the total by summing the individual frame durations.
PREPARE ASSETS FOR YOUR NEXT STEP
Create supporting product assets in Itemlume.
Create new product creative assets in the workspace, then continue in your chosen tools. Third-party software procedures described in this guide take place in those applications; this workspace link does not imply an integration. Check current capabilities, account access and credit quotes.
Explore asset creation tools Check pricing and credits