Mirror a video down the middle: a symmetry effect with hstack

Make a left-right symmetric video from one clip with a Sume video-filter graph: keep the left half, mirror it with hflip, join with hstack. $0.02, free check.

4 min readSume
All posts

To make a clip symmetric left to right, send Sume's video filter this graph: split[a][b];[b]hflip[c];[a]crop=w=iw/2:h=ih:x=0:y=0[l];[c]crop=w=iw/2:h=ih:x=iw/2:y=0[r];[l][r]hstack. It keeps the left half of the picture and joins it to a mirrored copy of itself. One encode costs $0.02 and the check is free.

The effect is a quick way to turn an abstract or landscape clip, for example an image-to-video render from a still made with Nano Banana 2.1, into a kaleidoscope-like background for a title or a lyric video.

Why is the second crop at x=iw/2?

A plain hflip mirrors the whole frame, so the left half of the flipped copy shows the original's right side. To mirror the left half you need the right half of the flipped copy, which is what crop=...:x=iw/2 takes. I checked it with a local ffmpeg build on a test pattern: a row of pixels across the output is equal on both sides of the centre line.

To mirror the right half onto the left instead, swap the two crop offsets: take x=iw/2 from the original and x=0 from the flipped copy, and put the flipped half first in hstack.

What changes in the output?

hstack joins two streams of equal height, so the output width is twice the cropped width. If the source width is even, the output has the source width. An odd width loses one pixel. The frame rate and audio follow the source.

Because the graph uses labels [l] and [r] between filters, it passes Sume's rule that labels are internal only. It starts with a filter and ends with a filter, as required.

curl -X POST https://api.sume.com/v1/video-filter/check \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
    "filtergraph": "split[a][b];[b]hflip[c];[a]crop=w=iw/2:h=ih:x=0:y=0[l];[c]crop=w=iw/2:h=ih:x=iw/2:y=0[r];[l][r]hstack"
  }'

Which mirror variants exist?

Top-to-bottom symmetry uses vflip, crops on the vertical axis and vstack. All four filters are on the allowlist.

Mirror variants using allowlisted filters (Sume video filter, read 2026-10-11)
GoalFilters
Mirror the whole cliphflip
Left half mirrored to the rightsplit, hflip, crop, crop, hstack
Top half mirrored to the bottomsame idea with vflip and vstack
Flip upside downvflip

Is mirrored footage a problem?

Mirroring flips any text in the picture, so use it on footage without lettering, and put captions on afterwards. A mirrored copy of a real person's clip is still that person's footage, so keep the disclosure rules that already apply to the original.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume