Shrink a video to a target file size or bitrate — H.264 or H.265 — using your computer's hardware video encoder through the browser's WebCodecs API. The file never leaves your machine.
WebCodecs is available in recent Chrome, Edge, and Safari. Firefox support is still landing. Try the latest Chrome or Safari.
No data is transmitted; all encoding happens on your device. Open source on GitHub.
Drop a video here or click to choose
MP4, MOV, or M4V — H.264 or H.265 video.
Compressed on your device with your hardware encoder. Never uploaded.
Scrub to preview. Drag the green handles (or use Set start / Set end) to keep only part of the video — a shorter clip compresses to a smaller file.
Scrub to where a section starts, Mark start, scrub to its end, then choose what happens to it: remove it, or run it faster with the narration time-stretched (pitch kept) or silent for a time-lapse. C marks, C again removes. Red bands are cuts, blue ones are sped up — click either to restore it. Usually easier: use the transcript below.
Transcribe the whole video with an open-weights Whisper model running on your own device, then edit by reading it: every line can be cut or sped up, and the gaps between lines are where the silence is. The model downloads once from Hugging Face, then stays cached; your audio never leaves this page.
The transcript above becomes a script you can rewrite freely. Press Respeak the whole script and the whole narration is delivered again in your own voice, in one take, with the pauses coming from your punctuation instead of from the old recording. The tool then works out where each sentence was said the first time and re-times the picture to the new narration — speeding a section up a little, easing another one down, cutting footage the script no longer covers — so what is on screen still matches what you are saying. The voice is cloned from the clearest few seconds of this very recording (Kyutai Pocket TTS), so there is no sample to record and the same microphone and room come with it. The model downloads once and runs on your device; your audio never leaves this page. For a voice that sounds like you talking rather than reading, train a profile of your own in Voice Studio and pick My voice profile under Voice: it runs on this machine too, served from 127.0.0.1.
Only clone a voice you have the right to use. This is built for respeaking your own narration.
Sentences are the unit: each one is spoken as one phrase, and each is matched back to the words you originally said around it, so a rewritten introduction still lands on the right footage. A blank line starts a new paragraph and a longer pause.
Respeaking replaces any speed-ups you set by hand — the plan decides how fast the picture runs now — but the sections you removed stay removed, and the narration is written around them.
Breathing between phrases is normal, and every podcast quietens it afterwards rather than expecting the speaker not to breathe. Breaths are found by character — noise-like, unvoiced, in the gaps — so quiet speech isn't mistaken for one. Turning them down keeps the rhythm of your delivery; removing them entirely tends to sound rushed, which is why ducking is the default.
How the captions from step 2 are drawn onto the video.
Scrub the preview to the frame you want, then press Use this
frame — here, or the same button in the transport under
the preview, which is to hand in every step. It is written into the MP4 as cover art
— the covr atom, the same one
ffmpeg -disposition attached_pic writes
— as a JPEG at the source frame's size, capped at 1920 px
on the long edge. It is metadata, so it costs no encoding time and
no picture quality. Apple's players and Finder, VLC
and Plex show it; plenty of other players and file managers ignore
any such tag and just decode a frame instead, so the picture is
downloadable too: that is the file to hand a
<video poster> or a video site.
Not happy with the size or quality? Go back to Trim & cut or Settings and compress again.
This tool demuxes your file with MP4Box.js, decodes and re-encodes the video with the browser's WebCodecs API — which routes to your machine's hardware video encoder — and repackages the result with mp4-muxer. Every step runs locally in your browser; your video is never uploaded.
AAC audio is copied through unchanged (remuxed, not re-encoded), so keeping audio costs no extra quality and almost no time. Video with an audio codec other than AAC will have its audio dropped — you'll be told when that happens.
Turning on a volume boost decodes and re-encodes just the audio (the video still passes through the hardware encoder untouched). Auto-boost measures loudness in the human-voice band (~300–3400 Hz) so a quiet voice track is judged on the voice itself, not on a single loud non-voice sound, then rides the gain up to rescue it — up to +36 dB — and automatically backs that off the instant anything gets loud (a music jingle, a shout), so a boost sized for a whisper can't blast a louder passage through the roof. It only ever turns audio up, never down. Manual boost is a flat dB you choose yourself, with no automatic backing-off, through a limiter so it can't clip. The Trim/Settings/Export preview plays the same boost live so you can listen before exporting.
Captions are made on your device by OpenAI's open-weights Whisper speech model (MIT), run with transformers.js (Apache-2.0) on your GPU through WebGPU, or on the CPU without it. The model's weights (and the ONNX Runtime engine) are downloaded from Hugging Face and jsDelivr the first time you generate captions and cached by your browser after that — only the model comes in; your audio is transcribed locally and never sent anywhere. The captions are drawn onto the video frames (“burned in”), so they show in every player and on every site.
Respeaking the narration uses Kyutai’s Pocket TTS — a small speech model whose weights are licensed CC BY 4.0 (© Kyutai), exported to ONNX by KevinAHM (MIT) and run here on ONNX Runtime Web (MIT). It clones a voice from a few seconds of speech, so the tool takes the clearest stretch of your own recording as its reference — nothing to record, and the same microphone and room come with it. The model downloads once (146 MB) and then runs entirely on your CPU; as with captions, only the model comes in. The whole script is spoken in one pass, sentence after sentence, and the picture is then re-timed to it — so there is no join anywhere between generated speech and the recording. Kyutai’s terms prohibit cloning a voice without explicit and lawful consent, which is why this is built for respeaking narration you recorded yourself.
246f912
· built