@ltcode/rconv
v1.0.5
Published
CLI and library for converting videos to DaVinci Resolve compatible format
Maintainers
Readme
@ltcode/rconv
CLI e biblioteca para converter vídeos para formato compatível com DaVinci Resolve. Funciona com Bun e Node.js.
Funcionalidades
- Converte vídeos para
.mov(MPEG-4 + PCM audio) compatível com DaVinci Resolve - Suporte a wildcards e padrões glob (
*.mp4,*.mkv) - Busca recursiva em diretórios com preservação de estrutura
- Seleção de faixas de áudio específicas
- Ctrl+C cancela todas as conversões
- Funciona como CLI e biblioteca
Instalação
Via npm
npm install -g @ltcode/rconvVia Bun
bun install -g @ltcode/rconvShell Script (Legacy)
Para usuários que preferem o script shell original:
curl -sL https://raw.githubusercontent.com/eulucastiagolt/resolver-converter-shell/main/install.sh | bashVeja legacy/README-legacy.pt-br.md para detalhes.
Uso via CLI
Sintaxe básica
rconv -i <entrada> -o <saída>Opções
| Opção | Descrição |
|-------|-----------|
| -i, --input <padrão> | Arquivo de vídeo ou padrão (ex: *.mp4, *.mkv) |
| -o, --output <dir> | Diretório de saída para arquivos convertidos |
| -r, --recursive | Busca recursiva em subdiretórios (preserva estrutura) |
| -m, --map-audio <faixas> | Mapeia faixas de áudio específicas (separadas por vírgula, ex: 1,3,5) |
| -v, --version | Mostra versão |
| -h, --help | Mostra ajuda |
Exemplos
# Converter um único arquivo
rconv -i video.mp4 -o ./saida
# Converter múltiplos arquivos com wildcard
rconv -i "*.mp4" -o ./convertidos
# Converter recursivamente em subdiretórios
rconv -r -i "*.mkv" -o ./saida
# Selecionar faixas de áudio específicas
rconv -i video.mp4 -o ./saida -m 1,3
# Usar brace expansion (sem aspas)
rconv -i *.{mp4,mkv,avi} -o ./saidaUso como Biblioteca
Instalar como dependência
npm install @ltcode/rconv
# ou
bun add @ltcode/rconvAPI
import { convertVideo, convertMultiple } from '@ltcode/rconv';
// Converter um único vídeo
const result = await convertVideo({
input: 'video.mp4',
output: './saida',
audioTracks: [1, 3], // opcional
});
console.log(result.success); // true ou false
// Converter múltiplos vídeos
const results = await convertMultiple({
input: '*.mp4',
output: './convertidos',
recursive: true, // opcional
onProgress: (percent, file) => {
console.log(`${file}: ${percent}%`);
},
onComplete: (file) => {
console.log(`Concluído: ${file}`);
},
onError: (file, error) => {
console.error(`Erro: ${file} - ${error.message}`);
},
});
// Verificar se FFmpeg está disponível
import { checkFfmpeg } from '@ltcode/rconv';
if (!checkFfmpeg()) {
console.error('FFmpeg não encontrado');
}Tipos
import type { ConvertOptions, ConvertResult } from '@ltcode/rconv';
interface ConvertOptions {
input: string;
output: string;
recursive?: boolean;
audioTracks?: number[];
onProgress?: (percent: number, file: string) => void;
onStart?: (file: string) => void;
onComplete?: (file: string) => void;
onError?: (file: string, error: Error) => void;
}
interface ConvertResult {
input: string;
output: string;
success: boolean;
error?: Error;
}Requisitos
- FFmpeg deve estar instalado e disponível no PATH
Instalar FFmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install ffmpeg
# Arch Linux
sudo pacman -S ffmpeg
# macOS
brew install ffmpegFormatos Suportados
Qualquer formato suportado pelo FFmpeg pode ser usado como entrada. A saída é .mov com codec MPEG-4 e áudio PCM, amplamente compatível com DaVinci Resolve no Linux.
Licença
MIT - Veja LICENSE para detalhes.
