Clipcutter: visão computacional local para recortar fotos e vídeos em lote
O Clipcutter é uma ferramenta local com dois módulos: um detecta, endireita e recorta em lote as fotos digitalizadas juntas em páginas A4; o outro corta vários trechos de um vídeo com FFmpeg. Tudo roda na máquina do usuário — nenhum arquivo sai do computador.
Cliente e contexto
Digitalizar álbuns de família ou acervos rende PDFs com várias fotos tortas por página, e separar cada uma à mão leva horas. Cortar trechos de vídeo costuma exigir editores pesados ou serviços online.
O problema
“Tenho dezenas de páginas com várias fotos cada e quero cada foto separada, reta e no mesmo tamanho — sem subir nada para a internet.”
Restrições
- Nada pode sair da máquina.
- Sem Electron e sem passo de build no front-end.
- Erros do FFmpeg precisam aparecer como são, não como mensagem genérica.
Decisões e trade-offs
Interface no navegador + servidor local (FastAPI)
Por quê: Aproveita o navegador que a pessoa já tem, sem o peso de um app Electron; o único tráfego é entre a aba e o localhost.
Detecção com OpenCV ajustável na tela
Por quê: Páginas renderizadas a 300 DPI; tamanho mínimo, desfoque e separação são controles na interface, e a detecção refaz sozinha.
Dois modos de corte de vídeo
Por quê: Corte rápido (cópia de stream, quase instantâneo) ou preciso (recodifica, exato no quadro), com o custo de cada um explicado na tela.
O que foi construído
- Extrator de fotos: detecção, correção de inclinação, recorte, redimensionamento e exportação em ZIP.
- Correção manual: apagar falsos positivos e desenhar regiões que o detector não achou.
- Cortador de vídeo: vários trechos na linha do tempo, exportação com progresso por trecho.
- Testes automatizados para os dois serviços.
Resultados
- 300 DPIde renderização de cada página antes da detecçãoFonte: README do projeto
- 0arquivos enviados para fora da máquinaFonte: Arquitetura do projeto
O azulejo deste case
Linhas não vazias de código em cada camada do projeto.
| Linhas de código do Clipcutter por camada | linhas |
|---|---|
| Interface (JS, CSS, HTML) | 1.329 |
| Rotas HTTP | 394 |
| Serviços (visão e vídeo) | 303 |
| Testes | 151 |
| Modelos de dados | 82 |
Fonte: Repositório do Clipcutter · 2026-10-13
Tecnologias
Quer algo nesse nível?
Mande o problema, não a especificação.