Rule-of-thirds grid on a review copy of a video: drawgrid
Burn a thirds grid onto a review copy of a clip with Sume's drawgrid filter: one line of graph, $0.02, free check. Never ship the gridded file.

To check composition on a finished clip, burn a rule-of-thirds grid into a review copy with Sume's video filter: drawgrid=w=iw/3:h=ih/3:t=3:c=white@0.6. That draws white lines, 3 pixels thick at 60 percent opacity, at one third and two thirds of the width and height. It costs $0.02 per encode, the check is free, and the file it returns is a review copy only.
The use case is judging where a subject sits in a generated clip, such as a short from grok-imagine-video-1.5 animated from a still you composed with Nano Banana 2.1, before you decide how to crop it for 9:16 or 4:5.
What does the filter draw?
drawgrid is on the video-filter allowlist. w and h set the cell size, so dividing the input width and height by 3 gives a three-by-three grid whatever the resolution. t is the line thickness in pixels and c is the colour with an alpha suffix. The grid also marks the left and top edges, because lines start at zero.
The graph has one filter, so there are no labels and no splits. As always, the graph has no spaces inside a filter and no quotes.
How do I use the result?
Submit the filter job, wait for it with the jobs endpoints, then open the new MP4. For a faster look at one moment, ask video frames for a single still at the time you care about from the gridded file; stills are durable image artifacts.
Keep the original. The grid is burned into the pixels, so a gridded file must never reach a timeline, a caption job or a publish step.
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": "drawgrid=w=iw/3:h=ih/3:t=3:c=white@0.6"
}'Which grid variants are worth trying?
The last row passes zero for the height, which tells the filter to skip horizontal lines. I checked the zero behaviour with a local ffmpeg build, not through the hosted encoder, so run the free check on your own source first.
| Review need | Graph |
|---|---|
| Thirds, bold | drawgrid=w=iw/3:h=ih/3:t=3:c=white@0.6 |
| Thirds, faint | drawgrid=w=iw/3:h=ih/3:t=1:c=white@0.35 |
| Quarters | drawgrid=w=iw/4:h=ih/4:t=2:c=yellow@0.5 |
| Vertical centre third only | drawgrid=w=iw/3:h=0:t=2:c=white@0.6 |
Does it change the clip otherwise?
The output keeps the geometry, frame rate and audio of the source unless the program changes them. A draw-only graph changes none of those, so durations match and you can compare the two files side by side. The source must be a Sume-hosted clip of 300 seconds or less.
Sources
Related posts
More in Media tools
- Straighten a tilted video by API: rotate, then crop by angle
Level a crooked horizon with Sume video filter: rotate in radians, crop out the corners with a factor per angle (0.97 at 1 degree), scale back. $0.02.
- Sume media import failed: source_not_found vs source_not_video
A Sume media import fails with source_not_found for private, deleted or region-locked posts and source_not_video for photos and carousels. Don't retry either.
- Timeline failed with source_not_found: read source_slot to find it
A failed Sume Timeline job names the dead input by slot, like video[3] or soundtrack, plus host and 404 or 410. Replace it with a media.sume.com asset URL.
- Which Sume media routes need a flag, and which are on prod?
Remix media, reference ingest and the trending-videos rebuild are flag-gated; video inspect, frames, trim, detach, filter and timeline are on dest and prod.
Written by Sume