# Edit video with single-purpose video nodes

> Trim, join, resize, retime, reverse, transform, transcode and grab frames from video in Nodespell with video nodes, and know when to use the Timeline.

Source: https://docs.nodespell.com/edit/video-editing/ · Last updated: 2026-11-10

Video nodes in Nodespell are single-purpose graph nodes that change one video in one way: trim it, join clips, resize, retime, reverse, transform, transcode, or extract a still frame. Each node takes a video input, runs in your browser, and outputs a new video or image, so the edit stays in your graph and you can run it again on a new take.

## Which video node do I need?

All of these nodes are in the [Tab menu](https://docs.nodespell.com/graph/add-nodes/) under their names. Each one leaves the source video unchanged.

| Node                | What it does                                                                          | Output                     |
| ------------------- | ------------------------------------------------------------------------------------- | -------------------------- |
| **Trim Video**      | Cuts from the start and end, or reduces the clip to a target length                   | MP4 video                  |
| **Join Video**      | Joins connected videos end to end in connection order                                 | MP4 video                  |
| **Resize Video**    | Changes the frame size by preset, scale, custom size or a reference input             | MP4 video                  |
| **Retime Video**    | Changes playback speed, or fits the clip to a target duration                         | MP4 video                  |
| **Reverse Video**   | Plays the clip backwards                                                              | MP4 video                  |
| **Transform Video** | Scales, moves, rotates, skews or mirrors the picture inside its frame                 | MP4 video                  |
| **Transcode Video** | Re-encodes to MP4, MOV, WebM or MKV with quality, size, frame-rate and audio controls | Video in the chosen format |
| **Extract Frame**   | Takes one still from the video                                                        | Image                      |

Upscaling a video is an AI model task rather than a video node; see [Video Upscaler](https://docs.nodespell.com/creative-tools/video-upscaler/).

## Add a video tool from a viewer or node

You do not have to search the Tab menu. Open a video result in the full-screen viewer, or right-click a node that outputs video. The video tools there are **Trim**, **Extract frame**, and, under **More tools** (**Add as a node**), **Transcode Video**, **Resize**, **Speed**, **Reverse** and **Upscale**. Choosing one adds the matching node after the current one and connects it.

## Trim a video

1. Add a **Trim Video** node after the video, or choose **Trim** in the full-screen video viewer.
2. Drag the start and end handles to choose what to keep. The readout shows **Keeps** with the kept length and frame count.
3. In the full-screen viewer, select **Create Trim Video** to add the connected node. On an existing node, changes save as you drag.

To trim an existing **Trim Video** node visually, right-click it and choose **Edit Trim**. The trimmer has these keys:

| Key              | Action                                    |
| ---------------- | ----------------------------------------- |
| `Space`          | Play or pause                             |
| `I` / `O`        | Set the In or Out point to the playhead   |
| `Left` / `Right` | Step one frame (`Shift` steps one second) |
| `Home` / `End`   | Jump to the start or end                  |

**Trim Video** parameters:

| Parameter                               | Options                                                                                                              |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Trim mode**                           | **Start and end** (default) or **Target length**                                                                     |
| **Unit**                                | **Seconds** or **Frames**                                                                                            |
| **Trim from start** / **Trim from end** | Amount to remove at each end                                                                                         |
| **Target source**                       | **Enter length**, or **Reference input** to match the duration of a connected video or audio on **Length reference** |
| **Trim direction**                      | **Trim end**, **Trim start** or **Trim symmetrically** when reducing to a target length                              |

## Join, resize and retime

- **Join Video** takes several videos on its **Videos** input in connection order. **Resolution** can **Use largest** (default), **Use smallest**, **Use most common**, **Use first input**, **Use last input**, or **Custom**. **Fit mode** is **Fit**, **Fill** or **Stretch**. **Export audio** and **Audio gain** control the joined sound.
- **Resize Video** sets the size by **Size preset** (4K, HD, 720p and square, in landscape or portrait), **Scale factor** (0.05 to 8), **Custom size** (2 to 8,192 px), or **Reference**, which copies the size of a connected image or video.
- **Retime Video** sets **Speed** (0.1 to 10) or a target **Duration** in seconds. **Retime audio** keeps the sound in step.
- **Reverse Video** has one option, **Reverse audio**, which is off by default.

## Transcode a video for delivery

**Transcode Video** re-encodes on your device. Choose **Format** (MP4, MOV, WebM, MKV), **Rate control** (**Quality**, **Bitrate** or **Approximate file size**), **Video codec** (available codecs depend on your browser), **Maximum size**, **Maximum frame rate**, and audio options. It never enlarges the picture or raises the frame rate. It accepts SDR video up to 256 MiB and does not keep transparency.

## Grab a still frame

**Extract Frame** outputs one image. Choose **First Frame**, **Last Frame**, **By Frame Number**, **By Timestamp** or **By Percentage**. Frame numbers and timestamps accept negative values to count from the end. In the full-screen video viewer, **Create Extract Frame node** grabs the frame you are on.

## Should I use the Timeline or a video node?

| Use a video node when                                           | Use the [Timeline](https://docs.nodespell.com/edit/timeline/) when                      |
| --------------------------------------------------------------- | ------------------------------------------------------------- |
| One clip needs one change: trim, resize, speed, reverse, format | You are cutting several clips together with precise placement |
| The same edit should apply to each new take you run             | You need separate audio tracks, fades, mixing or EQ           |
| You are joining clips back to back with no overlap              | You need overlaps, per-clip framing, opacity or blend modes   |
| You are preparing a clip for another model's input              | You want to scrub and review the cut while editing            |

You can combine both: trim or retime clips with nodes, then connect them to a Timeline to assemble the cut.

## Frequently asked questions

### Do video nodes use credits?

The video nodes on this page process video in your browser rather than running an AI model. Upscaling is a model task and shows its own estimate.

### Why does Transcode Video offer fewer codecs than I expect?

The codecs come from your browser's encoder support. WebM needs VP8, VP9 or AV1; choose **Auto** if a combination is not available.

### What order does Join Video use?

Join Video uses the order of the connections to its **Videos** input.

### Can I trim by frames instead of seconds?

Yes. Set **Unit** to **Frames** on the Trim Video node, or set **Show times as** to **Frames** in the trimmer.

## Related

- [Timeline](https://docs.nodespell.com/edit/timeline/): multi-track editing, mixing and rendering
- [Export finished media](https://docs.nodespell.com/edit/export/): download and delivery formats
- [Viewers](https://docs.nodespell.com/edit/viewers/): the full-screen video viewer and its tools
- [Connections](https://docs.nodespell.com/graph/connections/): chaining nodes and multi-inputs
- [Supported media](https://docs.nodespell.com/reference/supported-media/): which video files you can upload
