all tutorials
watch on youtube ↗

Shotcut tutorial · companion page

How to Create Your Own Animated GIF Memes on Shotcut in 4 Minutes

The trick is not a filter. It is an export preset almost nobody scrolls far enough to find: GIF Animation sits second in the Stock list in the Export panel, and it turns a trimmed, captioned clip straight into a looping GIF file. Two filters do everything else.

Ben Espanto 4:48 runtime uploaded 26 Nov 2020 9,837 views 150 likes

Reading in another language? Use the translate picker in the header, or your browser’s own translate command — the Shotcut filter, control and value names are marked to stay in English so they still match what is on your screen.

0:00
runtime
0
filters
0
video track
0
memes exported
0
seconds to encode
what you are building

An export format, not an effect

Most Shotcut tutorials are about a filter. This one is about a destination. The editing is deliberately thin — reframe, caption, trim — because the payload is the preset you pick in the Export panel at the end.

01

A square video mode you make yourself

Shotcut ships no square preset. SettingsVideo ModeCustom opens a dialog where you type 1080 × 1080 and save it under a name. Every meme in the video comes out of that one mode.

02

Reframing, because nothing is square

A widescreen clip letterboxes in a square frame and a vertical clip pillarboxes. Size, Position & Rotate is the single filter that fixes both — zoom in past 100 % and the bars are gone.

03

The caption is a filter, not a clip

Text: Simple stacks on the same clip. It opens holding #timecode# as a placeholder, which is why the first preview shows a running timecode instead of your words.

04

GIF Animation is a stock preset

No plugin, no command line, no third-party converter. The preset is already in the Stock branch of the Presets list — second from the top, surrounded by video codecs, which is exactly why it gets missed.

read off the screen

Nineteen stops through the build

This video carries no chapter markers, so the stops below are not Ben’s — they were derived here by reading the recording frame by frame — one frame every ten seconds, plus a second pass on a five-second offset wherever a panel needed reading — and each card is anchored to the frame it came from. That sampling is still coarse: where a step happens between two frames, the card says so rather than filling the gap. Click any screencap or timestamp to play from that exact second, right here in the card.

0:00
STOP 01

Two source clips waiting in the Playlist

Nothing is built yet. The Playlist holds the two clips this tutorial turns into memes: production ID_4586615.mp4, duration 00:00:10:13, and video.mp4, duration 00:00:03:15. The timeline is empty and the title bar reads Untitled* throughout, so the project is never saved on camera.

0:10
STOP 02

The build this was recorded on

HelpAbout Shotcut puts the build on screen: Shotcut version 20.10.31, copyright 2011–2020 Meltytech, LLC. Every panel name and value on this page belongs to that release.

0:20
STOP 03

A custom video mode, opened at the project default

SettingsVideo ModeCustom opens Add Custom Video Mode pre-filled with the mode already in use: 1920 × 1080, aspect 16 : 9, 23.976024 frames per second, Progressive, ITU-R BT.709. The Resolution field is selected, ready to be overtyped.

0:30
STOP 04

Saved as SQUARE, 1080 by 1080

The same dialog, now named SQUARE with Resolution 1080 × 1080 and Aspect ratio 1 : 1. Frames/sec stays at 23.976024, Scan mode at Progressive, Colorspace at ITU-R BT.709. Naming it saves it as a reusable preset — the dialog's own note says leaving Name blank would make it project-specific instead. This one mode carries both worked examples.

0:50
STOP 05

Square frame, widescreen clip, black bars

The clip is on V1 and the square frame letterboxes it immediately. Size, Position & Rotate has been added and still holds its opening state: Position 0, 236, Size 1080 × 608, Zoom 100.0 % — the widescreen source fitted to the square width and centred, with black above and below.

1:00
STOP 06

Zoomed to 180 percent so the subject fills the square

Zooming in is how the letterboxing goes away. Zoom 180.0 % drives Size to 1944 × 1094 and Position to −432, −4. Size mode is Fill, Horizontal fit Center, Vertical fit Middle, Rotation 0.0 °. These are the values held for the rest of example one.

1:30
STOP 07

Cut down to under seven seconds

The player total now reads 00:00:06:19 where the source was 00:00:10:13. A meme has to be short, and every frame is going into the palette-limited GIF file. The exact edit — where the cut points landed, and whether it was a split or a drag on the clip edge — happens between the ten-second frames and is not visible in any of them.

1:40
STOP 08

Text: Simple arrives holding a timecode

Text: Simple is added on top of Size, Position & Rotate and opens with its factory default in the Text box: #timecode#, which is why the preview reads 00:00:03:02. Everything else is default too — Font Verdana with Use font size unchecked, Outline black at Thickness 3, no background, Padding 0, Position 0, 0, Size 1080 × 1080, Horizontal fit Center, Vertical fit Bottom.

1:55
STOP 09

Verdana, Regular, 72

The font button opens a standard chooser. Font Verdana, Font style Regular, Size 72. The size list visible behind it runs 28, 36, 48, 72, and the Sample pane previews it. Nothing in EffectsStrikeout and Underline — is ticked.

2:00
STOP 10

The caption goes in, the outline comes off

The placeholder is replaced with the actual caption, “You’re funny”. The Font button now reads Verdana 72 with Use font size ticked, and Thickness has been taken from 3 down to 0 — the caption is plain white with no black rim. The text box is still the full frame, Position 0, 0 and Size 1080 × 1080, pinned Center / Bottom.

2:20
STOP 11

GIF Animation, second in the Stock list

This is the part that makes the tutorial. The Export panel's Presets tree has a Stock branch, and GIF Animation is the second entry in it, directly under Default and above H.264 Baseline Profile. It is easy to miss because everything around it is a video codec. From is set to Timeline and Use hardware encoder is unticked.

2:30
STOP 12

Saved as gif (*.gif) straight to the Desktop

Export File opens the Windows save dialog. File name funny, Save as type gif (*.gif), location Desktop. The extension is not typed — choosing the preset is what sets the file type here.

2:35
STOP 13

Encoding, watched in the Jobs panel

The Jobs panel takes over: C:\Users\dasro\Desktop\funny.gif at 40%, elapsed 00:00:14. It finishes at 00:00:26 with a green tick — twenty-six seconds of encoding for under seven seconds of animation.

2:50
STOP 14

The finished square GIF, playing

The exported GIF played back outside Shotcut. Square, captioned, looping — the first meme is finished at 2:50, well inside the four minutes the title claims.

3:20
STOP 15

Example two: a vertical clip into the same square

The second run uses video.mp4, a tall vertical clip, and the SQUARE mode is still the project video mode — so the same filter does the same job from the opposite direction. Zoom 99.0 %, Size 1069 × 1900, Position 6, −410, Size mode Fill, Horizontal fit Center, Vertical fit Middle. Pulling the tall clip up by 410 pixels is what keeps the hands in frame.

3:45
STOP 16

A second caption, same filter, same defaults

Happy Birthday!” goes into a fresh Text: Simple, which opens at the same factory state as before — Verdana with Use font size unchecked, Thickness 3, Position 0, 0, Size 1080 × 1080. The filter does not remember what you did last time.

4:00
STOP 17

Font size 648, and the box dragged in

The finished second caption. The Font button reads Verdana 648 with Use font size ticked, and Thickness is back to 0. This time the text box itself is dragged in rather than left full-frame: Position 79, 111, Size 921 × 859, still Center / Bottom. The font chooser is not opened on screen for this one, so 648 is read off the button rather than picked from a list in view.

4:15
STOP 18

Exported again — and the first file's size shows up

The same route a second time: GIF Animation, Export File, File name birthday, Save as type gif (*.gif). The useful accident is in the file listing behind the field — funny, GIF File, 90,149 KB, modified 11/25/2020 5:30 PM. That is roughly 88 MB for under seven seconds. It is the one hard number the video gives you about what this export costs.

4:20
STOP 19

The vertical-source meme, finished

Second GIF done at 4:20. Same square frame, same two filters, a completely different source shape — which is the point of doing the second example at all.

build it yourself

Nine steps, twice over

Every number below was read off the screen in the video. Where the video never shows a value, this page says so rather than supplying a sensible-sounding one.

STEP 01

Make a square video mode and save it

Shotcut has no square preset, so you build one. SettingsVideo ModeCustom opens Add Custom Video Mode pre-filled with whatever mode you are already in. Overtype Resolution to 1080 × 1080 and Aspect ratio to 1 : 1. Give it a Name and it becomes a reusable preset; leave the name blank and it applies to this project only.

resolution 1080 × 1080 aspect ratio 1 : 1 frames/sec 23.976024 scan mode Progressive colorspace ITU-R BT.709

The mode shown before the change is 1920 × 1080 at 16 : 9, and SettingsVideo Mode has HD 1080p 23.98 fps marked as current. Only the resolution and aspect ratio are touched.

STEP 02

Drop one clip on V1 and leave it there

There is one video track in this whole tutorial. No stacking, no second track, no track renaming — the timeline shows Output and V1 and nothing else, in both worked examples.

STEP 03

Reframe with Size, Position & Rotate

A square frame will letterbox a widescreen clip and pillarbox a vertical one. Add Size, Position & Rotate and push Zoom until the bars disappear, then drag the subject where you want it. The two examples in the video pull in opposite directions and land on different numbers — there is no correct value, only a correctly filled frame.

example 1 zoom 180.0 % example 1 size 1944 × 1094 example 2 zoom 99.0 % example 2 size 1069 × 1900

Size mode is Fill and Rotation stays at 0.0 ° in both. Only Zoom and Position are actually worked.

STEP 04

Cut it short before you think about exporting

A meme is a couple of seconds. Example one is trimmed from 00:00:10:13 down to 00:00:06:19; example two runs its source video.mp4 at 00:00:03:15. Length is the single biggest lever on the size of the finished file, and this format has no mercy.

The trimming itself falls between the sampled frames — the before and after are both on screen, the edit action is not.

STEP 05

Add Text: Simple and clear the placeholder

With the clip still selected, add Text: Simple on top of the reframing filter. It opens with #timecode# already in the Text box, so your first preview shows a running timecode. Select it and type your caption over it.

The Insert field row above the text box — # (Hash sign), Timecode, Frame #, File date — is what puts those placeholders in. You are removing one, not breaking anything.

STEP 06

Tick Use font size, pick a size, zero the outline

The default is Verdana with Use font size unchecked and a black Outline at Thickness 3. Both examples do the same two things: tick Use font size and choose a point size, then take Thickness to 0 for flat white text. The font colour swatch is left white and no Background is enabled.

example 1 Verdana 72 example 2 Verdana 648 outline thickness 0 padding 0

The chooser is opened on camera only for the first caption — Verdana, Regular, 72. The second caption’s 648 is read off the font button, not seen being selected.

STEP 07

Place the caption box

Both captions sit Horizontal fit Center and Vertical fit Bottom. Example one leaves the box at full frame; example two drags the on-screen rectangle in, which is what the Position and Size fields are reporting.

example 1 box 0, 0 · 1080 × 1080 example 2 box 79, 111 · 921 × 859
STEP 08

Export with the GIF Animation preset

This is the whole tutorial in one click. Open Export, and in the Presets tree expand Stock. GIF Animation is the second entry, directly under Default and above H.264 Baseline Profile. Select it, leave From on Timeline, click Export File, and the save dialog comes up already set to gif (*.gif).

preset Stock → GIF Animation from Timeline save as type gif (*.gif) hardware encoder unticked

The Advanced button sits right next to Export File and is never pressed in this video. No codec, frame-rate, loop-count or palette field is ever shown — the GIF inherits the project video mode, 1080 × 1080 at 23.976024 frames per second, and everything else is whatever the stock preset carries.

STEP 09

Know what it costs

Encoding takes 00:00:26 in the Jobs panel for under seven seconds of animation. And when the save dialog is reopened for the second meme, the first one is sitting in the Desktop listing behind it: funny, GIF File, 90,149 KB. Roughly 88 MB. That is the trade-off this format asks for, and it is the reason the trimming step is not optional.

encode time 00:00:26 file size 90,149 KB source length 00:00:06:19

No quality or compression control is offered on the preset path, so length and frame size are the only two levers you have on that number.

settings reference

Every verified value in one place

Read directly off the frames. Rows are highlighted where they are the point of the tutorial — the square mode, the preset, what was deliberately left untouched, and what it all weighed.

Project, filters and the export path
SettingValueWhere it lives
Shotcut version20.10.31HelpAbout Shotcut
Project video modeSQUARE — 1080 × 1080, 1 : 1SettingsVideo ModeCustom
Frames/sec23.976024Add Custom Video Mode
Scan modeProgressiveAdd Custom Video Mode
ColorspaceITU-R BT.709Add Custom Video Mode
Mode before the change1920 × 1080, 16 : 9 (HD 1080p 23.98 fps)Video Mode menu
Track stackV1 only — one video track, not renamedTimeline
Filter 1Size, Position & RotateThe clip, in both examples
Filter 2Text: SimpleStacked after the reframe
Export presetStock → GIF AnimationExport panel, second under Default
Export sourceFrom: TimelineExport panel
Use hardware encoderUntickedExport panel
Advanced export optionsNever openedThe Advanced button is not pressed in the video
Codec / loop count / paletteNever shownWould live behind Advanced; no field is displayed
Save as typegif (*.gif)Windows Export File dialog
Output resolutionInherited from the video mode — 1080 × 1080No export override is shown
Output frame rateInherited from the video mode — 23.976024 fpsNo export override is shown
Encode time00:00:26Jobs panel
Finished file size90,149 KBDesktop listing in the second Export File dialog
The two worked examples, side by side
SettingExample 1 — widescreen sourceExample 2 — vertical source
Source clipproduction ID_4586615.mp4video.mp4
Source duration00:00:10:1300:00:03:15
Source shapeWidescreen — letterboxes in the squareVertical — pillarboxes in the square
Timeline length used00:00:06:1900:00:03:15
Zoom180.0 %99.0 %
Size1944 × 10941069 × 1900
Position−432, −46, −410
Size modeFillFill
Horizontal / Vertical fitCenter / MiddleCenter / Middle
Rotation0.0 °0.0 °
CaptionYou’re funnyHappy Birthday!
FontVerdana 72Verdana 648
Use font sizeTickedTicked
Outline thickness0 (from a default of 3)0 (from a default of 3)
Padding00
Text box position0, 079, 111
Text box size1080 × 1080921 × 859
Text alignmentCenter / BottomCenter / Bottom
Exported asfunny.gif — Desktopbirthday.gif — Desktop

The title promises four minutes and the recording supports it: the first finished meme is exported and playing back at 2:50, the second at 4:20, and the remaining time is the outro. Nothing is cut away or sped up — the build really is that short, because the work is choosing one preset.

on-screen text

Nobody speaks, and nothing is written down either

There is no narration in this tutorial. The audio is an unbroken music bed and the teaching is done purely by watching the screen — which is why this page reads the pixels for every value rather than quoting anyone. Four separate checks agree, and they are worth stating because a silent video is easy to mistake for a broken transcript:

01

The machine transcript is hallucinated

Whisper returned nine segments across 4:48. Eight of them are the same sentence — “Thank you so much for watching this video and I’ll see you in the next one” — landing at almost exactly thirty-second intervals. That is the classic pattern a speech model produces when it is fed music, and not one word of it is in the video. None of it is reproduced below.

02

The waveform is a continuous music bed

volumedetect reports a mean of −9.3 dB and a peak of −1.2 dB — loud and level throughout. silencedetect at −35 dB finds exactly two silences in the whole file: half a second at the very start, and the final 10.2 s tail after the music stops. There is not one speech-shaped gap anywhere in between.

03

No captions are burned into the picture

The frames were read at ten-second intervals and again on a five-second offset. No instructional overlay, callout or subtitle appears at any point. The only words rendered into the video are the end cards, and they are reproduced in full below.

04

No caption track was ever uploaded

The video’s own metadata settles it. The subtitles field — where a manually authored caption track would sit — is empty. Some of Ben’s other silent tutorials do carry one, and on those the uploaded captions are the lesson. This one has none, so there is genuinely nothing to transcribe.

+ every word on screen, in full 5 end-card lines · 4:48
4:36

If this video has inspired you in any way, I’d LOVE for you to subscribe

4:36

It goes a long way to help my channel!

4:36

SUBSCRIBE NOW

4:36

bentacular

4:36

LINKS ABOUT GEAR USED IN THE VIDEO ARE IN THE DESCRIPTION

All five lines belong to the same end card, which comes up at 4:36 and holds to the end of the video. Up to that point not a single word is written on screen. Every setting on this page was read out of the interface itself — there was no other source available, and that is the honest reason the values here are pixel-read rather than quoted.