Um conversor e editor de imagens/vídeos moderno com backend Node.js e frontend React + Tailwind.
- Vídeo → GIF: Conversão de alta qualidade com paleta otimizada
- Conversão de formato: MP4, WebM, AVI, MKV, MOV
- Compressão: Reduz tamanho mantendo qualidade
- Extração de áudio: MP3, AAC, WAV, OGG
- Conversão de formato: WebP, JPEG, PNG, AVIF, GIF
- Compressão: MozJPEG e otimização PNG
- Redimensionamento: Com presets para redes sociais
- Filtros: Preto e branco, rotação, flip, brilho, saturação, desfoque
- Node.js 18+
- FFmpeg instalado no sistema
cd backend
npm install
npm startO servidor iniciará na porta 3001.
cd frontend
npm install
npm run devO frontend iniciará na porta 3000.
media-converter/
├── backend/
│ ├── server.js # Servidor Express com todas as rotas
│ ├── package.json
│ ├── uploads/ # Arquivos enviados (temporário)
│ └── outputs/ # Arquivos processados (temporário)
│
└── frontend/
├── src/
│ ├── App.jsx # Componente principal
│ ├── main.jsx # Entry point
│ ├── index.css # Estilos globais
│ ├── components/
│ │ ├── FileUpload.jsx # Upload com drag & drop
│ │ ├── FileInfo.jsx # Info do arquivo
│ │ ├── VideoPanel.jsx # Painel de vídeo
│ │ └── ImagePanel.jsx # Painel de imagem
│ ├── hooks/
│ │ └── useApi.js # Hook para API
│ └── utils/
│ └── format.js # Utilitários de formatação
├── index.html
├── vite.config.js
├── tailwind.config.js
└── package.json
POST /api/upload- Upload de arquivo
GET /api/info/:fileId- Info do arquivoGET /api/progress/:taskId- Progresso da conversão
POST /api/convert/video-to-gif- Vídeo para GIFPOST /api/convert/video- Converter formatoPOST /api/compress/video- Comprimir vídeoPOST /api/extract/audio- Extrair áudio
POST /api/convert/image- Converter formatoPOST /api/compress/image- Comprimir imagemPOST /api/resize/image- RedimensionarPOST /api/filter/image- Aplicar filtrosPOST /api/crop/image- Recortar
GET /api/download/:filename- Download de arquivoDELETE /api/file/:fileId- Deletar arquivoGET /api/health- Health check
- Express.js - Framework web
- Multer - Upload de arquivos
- FFmpeg/Fluent-FFmpeg - Processamento de vídeo
- Sharp - Processamento de imagem
- React 18 - UI Library
- Vite - Build tool
- Tailwind CSS - Styling
- Lucide React - Ícones
- Axios - HTTP client
- React Dropzone - Drag & drop
- Arquivos são automaticamente deletados após 30 minutos
- Limite de upload: 500MB
- A conversão vídeo → GIF usa 2-pass encoding com paleta otimizada para máxima qualidade
- Batch processing (múltiplos arquivos)
- Corte de vídeo (trim)
- Marca d'água
- Merge de vídeos
- Extração de frames
- Preview em tempo real
- WebSocket para progresso real-time
MIT License