πŸ”€

Reverse a GIF or re-order its frames

Play a GIF backwards, make a boomerang, or move frames into a new order β€” safely, even when the GIF is frame-optimized.

Updated 2026-10-26T00:00:00.000Z

Changing the frame order of an optimized GIF normally breaks it, because frames are stored as changes on top of the frame before. GIFmeta replays the GIF in the new order and rebuilds exactly the frames that need it, so every frame looks the same as in the original.

With the desktop app

  • Move a frame: drag its β Ώ handle in the frame list, use the ⬆ / ⬇ buttons, or press Alt + ↑/↓.
  • Boomerang: duplicate frames with D and drag the copies to the end in reverse order.
  • Press β–Ά Play to check, then πŸ’Ύ Save.

With the command line

--order takes every frame number exactly once, in the new order:

# a 5-frame GIF backwards
gifmeta mod input.gif --order 4,3,2,1,0 -o reversed.gif

# any length: build the list with seq (frame count from `gifmeta info`)
gifmeta mod input.gif --order "$(seq 39 -1 0 | paste -sd, -)" -o reversed.gif

Delays travel with their frame: if frame 4 was shown for 1 second, it still is β€” now first.

--order can’t be combined with --delete, --insert or --duplicate in the same command; run two commands (the desktop app does this for you).

Boomerang (forward, then backward)

Re-ordering can’t list a frame twice, so first make copies, then order them:

gifmeta mod input.gif --duplicate 1,2,3 -o tmp.gif          # 0 1 1' 2 2' 3 3' 4
gifmeta mod tmp.gif --order 0,1,3,5,7,6,4,2 -o boomerang.gif  # 0 1 2 3 4 3' 2' 1'