Pitch: Já pensou em usar o FFmpeg sem precisar invocar um demônio no terminal?
FFmpeg é uma ferramenta absurda. E esse é justamente o problema.
Ele faz de tudo. Converte vídeo, corta trecho, extrai áudio, gera GIF, comprime arquivo, muda proporção, queima legenda, adapta pra rede social e mais um monte de coisa. Só que, pra fazer uma tarefa besta, você quase sempre acaba entrando numa espiral de documentação, parâmetros obscuros, tentativa e erro e um comando que parece ter sido escrito por um mago muito irritado.
Você não quer uma jornada espiritual. Você só quer falar algo tipo “deixa esse vídeo vertical pra Reels” e seguir com a vida.
Foi daí que eu comecei a fazer o Vexor.
A ideia era simples: usar toda a força do FFmpeg, mas sem obrigar a pessoa a pensar como o FFmpeg pensa.
Só que eu também não queria cair naquele caminho preguiçoso de “joga tudo numa IA, ela cospe qualquer comando, e seja o que Deus quiser”. Isso pra mim é uma bomba-relógio com cara de automação moderna.
Então o projeto foi pensado de um jeito bem mais travado.
No Vexor, a IA não recebe liberdade pra sair gerando comando, não gera shell, não inventa nome de arquivo, não decide no chute coisas importantes e não tem acesso livre ao sistema. O papel dela é bem mais limitado: interpretar a intenção do usuário e devolver uma estrutura parcial do que a pessoa quis fazer.
Depois disso entra a parte que eu acho mais legal do projeto: o pipeline.
Primeiro a intenção passa por parser por regra. Se isso já resolver bem, ótimo. Se não resolver, entra um parser embutido de fallback. Aí vem validação semântica, clarificação do que estiver faltando, enriquecimento da intenção, validação de prontidão, checagem real do arquivo, inspeção com ffprobe, composição do plano e só no final a montagem do comando.
Ou seja, a IA não manda na execução. Ela ajuda a entender o pedido. Quem manda no resto é a estrutura do sistema.
Isso pra mim era fundamental porque eu não queria fazer um brinquedo impressionante em demo e duvidoso no uso real. Eu queria algo que desse pra expandir sem virar uma caixa-preta amaldiçoada.
Outra coisa importante: a IA usada ali não está analisando teu vídeo, não está recebendo a mídia, não está vasculhando máquina e nem tomando decisão operacional sozinha. Ela entra basicamente na camada de interpretação textual. Quem valida se o arquivo existe é o sistema. Quem inspeciona metadado de mídia é o ffprobe. Quem decide se a intenção faz sentido são as regras e validações do projeto. Quem monta o plano final é a pipeline.
Também tive cuidado na forma de execução. Em vez de sair montando uma string gigante e tacar isso num shell como se nada pudesse dar errado, a construção dos argumentos foi feita de forma estruturada. Parece detalhe, mas esse tipo de detalhe é exatamente o que separa uma ideia legal de um troço que começa a ficar perigoso conforme cresce.
No fim, o Vexor virou meio que isso: uma tentativa de colocar uma camada de sanidade entre o ser humano comum e o colapso mental que é usar FFmpeg pra tarefa simples.
Ainda tem bastante coisa pra melhorar, mas eu quis compartilhar agora porque já está num ponto em que dá pra testar, quebrar, criticar e evoluir com feedback real.
Se você já passou raiva com FFmpeg, talvez curta brincar com isso:
https://github.com/YanEmmanuel/Vexor
E se a ideia te parecer interessante, testa o projeto e contribui. Pode ser com código, issue, sugestão de arquitetura, UX da CLI, ideia de feature, preset novo, melhoria no parser, fluxo de segurança, qualquer coisa. Às vezes uma boa ideia economiza mais tempo de projeto do que um commit enorme.
A proposta aqui não é “esconder o FFmpeg” nem fingir que ele deixou de ser complexo. É criar uma camada decente pra que tarefas comuns não continuem parecendo um ritual arcano.
Se der certo, ótimo.
Se der errado, pelo menos vai ser de um jeito bem mais organizado.