---
title: Adjust timing and sound
description: Ask your agent to change a video's duration, slow its reveal and fade its soundtrack without losing control of the final output.
url: https://pellicule.thally.app/guides/timing-and-output
---

# Adjust timing and sound

Ask your agent to change a video's duration, slow its reveal and fade its soundtrack without losing control of the final output.

Start with the video from the [quickstart](/quickstart), in the same project and agent session. Tell your agent what should change and what should stay the same, then review the MP4 it renders.

## Make a six-second version

```text
Use the pellicule skill. Make this video six seconds long at 30 fps.
Keep the entrance animation at its current speed and extend the hold
at the end. Render six-seconds.mp4. Verify 180 video frames and a
six-second file duration, then show me the local file. Do not upload it.
```

The entrance should look the same, followed by a longer hold. Check the file's duration as well as the picture; changing the number of captured frames is different from slowing the animation.

## Slow the reveal, keep the total duration

```text
Use the pellicule skill. Make the title fade in over two seconds,
then hold it. Keep the whole video six seconds long at 30 fps.
Update the frame-driven animation ranges, not wall-clock timers.
Render slow-reveal.mp4 and verify 180 frames and six seconds.
```

The title should reach full opacity at two seconds and remain visible for the final four seconds. If your scene has other movements, tell the agent which ones to preserve or retime. A slower entrance should not accidentally lengthen the finished file.

## Fade a soundtrack cleanly

If your video already has sound, ask:

```text
Use the pellicule skill. Keep this video six seconds long. Make its
soundtrack match that duration and fade out during the final second.
Write a separate edited audio file so the original stays intact.
Render video-with-fade.mp4, verify that both picture and sound end
at six seconds, and check the final second for an abrupt cut.
```

Play the result with sound enabled. The last second should fade smoothly, and the MP4 should end at six seconds. For new music, supply a file you have permission to use; the agent should not choose an unverified track for you.

In the tested Pellicule 0.4.0 release, rendering 180 frames with the full 30-second showcase WAV kept the MP4 container at 30 seconds. The picture had six seconds of frames, but the audio was longer. Preparing the audio to the intended duration first resolved it. Keep that check in your brief.

## Inspect the timing yourself

At 30 fps:

```text
frames = seconds × 30
seconds = frames ÷ 30
```

For a standalone `Video.vue` scene without audio, the tested six-second command is:

```bash
npx pellicule Video.vue -d 180 -f 30 -w 1280 -h 720 -o six-seconds.mp4
```

For a fade implemented with an interpolation range, `[0, 60]` spans two seconds at 30 fps. Changing to 60 fps without scaling every frame-based boundary would speed up the scene. The supplied examples are verified at 30 fps; no 60-fps adaptation is claimed here.

Avoid `setTimeout`, current timestamps and unseeded randomness. The frame number must determine what appears, regardless of how quickly the renderer captures it.

## Try the optional showcase project

The [homepage film](/) is a separate, deeper example. [Download its complete project](/examples/pellicule-first-video.zip), extract it and follow the included README, or ask your agent to do that work using the Pellicule skill. It includes the scene, locked dependencies and an original sound generator.

To export its opening as a six-second logo reveal, the tested commands trim and fade the WAV before rendering:

```bash
ffmpeg -y -i soundtrack.wav -t 6 -af afade=t=out:st=5:d=1 logo-sound.wav
npx pellicule Video.vue -d 900 -r 0:180 -f 30 -w 1280 -h 720 -a logo-sound.wav -o logo-reveal.mp4
```

`-r 0:180` captures frames 0–179 from the full 900-frame scene. [Watch the tested result](/examples/logo-reveal.mp4), or inspect your own file:

```bash
ffprobe -v error -show_entries stream=codec_type,codec_name,nb_frames,r_frame_rate -show_entries format=duration -of json logo-reveal.mp4
```

Expect H.264 video, 180 video frames, `30/1` fps, AAC audio and a six-second duration. Read the [scene explanation](/guides/edit-the-source) for the showcase's individual animation ranges and [credits](/examples/CREDITS.txt) for its audio and artwork.

## If the result is wrong

| Result | What to ask your agent to check |
| --- | --- |
| The whole animation slows when you wanted a longer hold | Preserve the entrance ranges; extend only the output duration. |
| A slower reveal makes the file longer | Keep the output at 180 frames and retime movement inside that six-second window. |
| The file lasts longer than its captured frames | Inspect the audio duration; trim and fade it before rendering. |
| The sound still ends abruptly | Confirm the edited WAV was passed to the render, rather than the original. |
| Audio edits do not appear | Regenerate the audio and render a new MP4; editing a generator alone does not update either file. |

Run `npx pellicule --help` for the flags supported by your installed version. For integration with an existing app, use the [official Pellicule documentation](https://docs.sailscasts.com/pellicule).