---
title: "How to add a diagonal wipe with Claude (tested prompt and ffmpeg command)"
description: "A slanted edge at 45 degrees travels from the top-left corner to the bottom-right, leaving clip B behind it. Install one skill and ask Claude Code, or run the ffmpeg command we tested yourself."
url: https://www.recharm.com/effects/diagonal-wipe
---

# How to add a diagonal wipe with Claude

A slanted edge at 45 degrees travels from the top-left corner to the bottom-right, leaving clip B behind it.

Made by the command on this page, from our own test clips.

## Get this effect

1. ### Switch to Code in your [Claude Desktop App](https://claude.com/download)

2. ### Install the skill (once)

   ```
   Install the Recharm video effects skill: download https://recharm-growth-staging.s3.us-east-2.amazonaws.com/website/downloads/recharm-video-effects.zip and unzip it into ~/.claude/skills
   ```

3. ### Ask for the effect

   ```
   Join clipA.mp4 and clipB.mp4 with a diagonal wipe
   Length of the transition in seconds: 0.6
   ```

## Several videos, several effects, one ask

Put your clips in the folder, mention them with @, and ask for everything at once. Claude runs one tested script after another on each clip, then joins them.

Put a sale badge on **@clip1.mp4**, give **@clip2.mp4** a VHS look, then join them with a diagonal wipe.

## Settings you can change

Ask Claude to change any of these, or edit them at the top of the command.

| Setting | Default | What it does                         |
| ------- | ------- | ------------------------------------ |
| `D`     | `0.6`   | Length of the transition in seconds. |

## Without the skill

Don’t want to install the skill? Paste this prompt into Claude Code and Claude writes the command itself.

```
Join clipA.mp4 and clipB.mp4 with a 0.6 second diagonal wipe. The transition starts 0.6 seconds before A ends. A straight hard edge at 45 degrees travels from the top-left corner to the bottom-right corner: with progress q from 0 to 1 eased by smoothstep (e = q*q*(3-2q)), a pixel at (x, y) shows B when (x+y)/(width+height) < e and A otherwise, so B appears in the top-left corner first and A leaves last from the bottom-right. No soft edge, border or fade (ffmpeg xfade with transition=custom). Crossfade the audio over the same 0.6 seconds. Fit B to A's size and frame rate first. The output is 11.4 seconds at 30fps. Use ffmpeg, keep the audio and save it as output.mp4.
```

## Run it without Claude

This is the exact command we tested. Save it as `diagonal-wipe.sh` and run:

```
sh diagonal-wipe.sh clipA.mp4 clipB.mp4 output.mp4
```

```
#!/bin/sh
# Diagonal wipe: a straight 45-degree edge travels from the top-left corner to the bottom-right, swapping clip A for clip B, over 0.6s. The sound crossfades underneath.
# Usage: sh diagonal-wipe.sh clipA.mp4 clipB.mp4 output.mp4  (both clips need an audio track)
set -e
A="$1"; B="$2"; OUT="$3"
D=0.6   # transition length in seconds

LEN=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$A")
OFFSET=$(echo "$LEN - $D" | bc)
SIZE=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "$A")
FPS=$(ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of csv=p=0 "$A")
W=${SIZE%x*}; H=${SIZE#*x}
# xfade's P runs from 1 to 0, so Q=1-P is the progress, eased with smoothstep.
# A pixel shows B once (X+Y)/(W+H), its place along the top-left to bottom-right diagonal, falls behind the edge.
EDGE='st(0,1-P);st(1,ld(0)*ld(0)*(3-2*ld(0)));if(lt((X+Y)/(W+H),ld(1)),B,A)'
# xfade needs both clips at the same size and frame rate, so B is fitted to A first
ffmpeg -y -i "$A" -i "$B" -filter_complex "\
[0:v]fps=$FPS,format=yuv420p,setsar=1[a];\
[1:v]scale=$W:$H:force_original_aspect_ratio=increase,crop=$W:$H,fps=$FPS,format=yuv420p,setsar=1[b];\
[a][b]xfade=transition=custom:expr='$EDGE':duration=$D:offset=$OFFSET[v];\
[0:a][1:a]acrossfade=d=$D[au]" \
  -map "[v]" -map "[au]" -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a aac "$OUT"
```

## More transitions

- [Barn door transition **Barn door transition**](https://www.recharm.com/effects/barn-door)
- [Blinds transition **Blinds transition**](https://www.recharm.com/effects/blinds-transition)
- [Block dissolve **Block dissolve**](https://www.recharm.com/effects/block-dissolve)
- [Blur transition **Blur transition**](https://www.recharm.com/effects/blur-transition)
- [Bounce transition **Bounce transition**](https://www.recharm.com/effects/bounce-transition)

## Find 3x _winning ads_

Recharm cuts your ad footage into tagged, searchable clips: hooks, testimonials, product shots. Find the shots that win, add the effect with Claude, and ship 3x more ad edits.

[Start 14-day free trial](https://www.recharm.com/get-started)
