Cortar Vídeo
Arraste as alças até o trecho que você quer e salve — com a imagem copiada intacta, sem perda alguma. Seu arquivo nunca sai da sua máquina.
O seu navegador lê e recodifica o ficheiro. Nenhum pedido o envia para lado nenhum — esta página não tem servidor para onde o enviar.
Perguntas
Cortar perde qualidade?
No modo padrão, não. «Mesma qualidade — sem recodificar» deixa a imagem passar intacta, então não há perda de geração e termina várias vezes mais rápido: 0,20 s contra 0,60 s ao recodificar os mesmos três segundos. O preço é o tamanho: o vídeo é comprimido em grupos que começam num quadro-chave, então, se o seu ponto de entrada cai no meio de um grupo, o arquivo carrega os quadros até o anterior. A reprodução ainda começa exatamente onde você marcou, mas o arquivo pode ficar maior do que uma recodificação do mesmo trecho.
Quando vale recodificar?
Quando você quer o menor arquivo possível, ou outro formato. Recodificando, só os quadros selecionados são escritos, então um corte no meio do grupo sai bem mais leve: nos testes, 4,1 MB contra 6,7 MB para os mesmos três segundos. Custa uma geração de compressão, que na qualidade usada aqui não se percebe.
Dá para cortar ajustando a um tamanho?
Sim: escolha «caber num tamanho» e um limite, por exemplo 10 MB para o Discord ou 25 MB para email. O bitrate necessário decorre da duração da sua seleção, então uma seleção mais curta comporta mais qualidade dentro do mesmo limite. Se a primeira passagem errar, há correção e uma repetição.
O áudio é mantido?
Sim, sincronizado e cortado no mesmo trecho. Você pode removê-lo de propósito na caixa «remover áudio» — útil quando o clipe vai para onde o som não é bem-vindo, e ainda deixa o arquivo menor.
Quais arquivos funcionam?
MP4 e MOV com H.264, e WebM — o que o seu navegador conseguir decodificar e codificar. Formatos nativos de câmera como ProRes ou raw normalmente nem abrem num navegador; faça antes um proxy.
As outras ferramentas
Integre isto no seu projeto
Trimming video without re-encoding it — the same way this page does it, on the user's machine, with no server. Take the code, or hand the prompt to a coding agent.
import { Input, Output, Conversion, BlobSource, BufferTarget, Mp4OutputFormat, ALL_FORMATS } from 'mediabunny';
const input = new Input({ source: new BlobSource(file), formats: ALL_FORMATS });
const output = new Output({ format: new Mp4OutputFormat(), target: new BufferTarget() });
const conversion = await Conversion.init({
input, output,
trim: { start: 20, end: 35 },
// Omit `video` entirely to copy the track through; add
// { forceTranscode: true } to re-encode for a smaller file.
});
await conversion.execute(); Add "trim a video" to my project. It must run in the browser — no upload, no server.
Requirements:
- Use the "mediabunny" npm package (WebCodecs). Not ffmpeg.wasm: ~30 MB and needs SharedArrayBuffer,
which requires COOP/COEP headers that break third-party scripts.
- Offer two modes. Default: copy the video through untouched — pass NO video options to
Conversion.init and mediabunny will not re-encode. Measured 0.20s against 0.60s for a re-encode of
the same three seconds.
- Explain the trade honestly: video is stored in groups starting at a keyframe, so a copied cut whose
in-point falls mid-group carries the frames back to that keyframe. Playback still starts exactly
where the user set it, but the file is larger — 6.7 MB copied against 4.1 MB re-encoded in testing.
- The re-encode mode needs forceTranscode: true. Without it mediabunny correctly notices the
transcode is unnecessary and copies anyway, which makes the two modes identical.
- Give the user handles on a timeline with a live preview, not two number fields. Accept typed times
in any of 12.5, 1:04 or 1:04.5.
- Keep audio in sync and trimmed to the same range, with an option to drop it.
Reference implementation: https://life2film.com/tools/video-trimmer/
The engine is documented for agents, and every tool page is available as
markdown by adding .md to its address.