Video Frame Expedition for DaVinci Resolve

Video Frame Expedition for DaVinci Resolve analisa seus rushes com um modelo de visão local, para que um assistente de IA possa editar sabendo o que cada cena contém.

Documentação

Video Frame Expedition for DaVinci Resolve

English · Français

Checks

Video Frame Expedition for DaVinci Resolve analisa seus rushes com um modelo de visão local, para que um assistente de IA possa editar sabendo o que cada cena contém.

Análise: metadados, local, hora, sol e clima da gravação; cenas, keyframes e assuntos; sons, fala e texto na tela. Em inglês e em francês.

Busca semântica: cenas, keyframes, fala e capítulos tornam-se passagens cronometradas, encontradas por palavras-chave e por significado (busca híbrida: texto completo e vetores calculados localmente). Filtros por clima, luz, local, datas, assuntos, enquadramento ou qualidade; o modelo local responde perguntas sobre toda a biblioteca e cita suas fontes.

Banco de dados resiliente: cada vídeo é reconhecido pelo seu conteúdo, não pelo seu caminho: movido ou renomeado, ele mantém suas análises sem ser analisado novamente. Arquivos de análise ao lado dos vídeos os trazem de volta em outro computador ou após a perda do banco de dados.

Para assistentes de IA (Claude, Cursor, VS Code, Codex): um servidor MCP com 25 ferramentas. O assistente de IA lê a linha do tempo aberta no Resolve, sabe o que cada clipe contém, busca cenas em toda a biblioteca, obtém pontos de corte seguros e reenquadramentos, e monta a edição em uma nova linha do tempo. Tarefas simples (descrever quadros, responder sobre a biblioteca, localizar um assunto) vão para o modelo local: o assistente de IA só recebe os resultados e economiza seus tokens.

Além do MCP do Resolve: quatro ferramentas controlam o Resolve Studio 21.1 por meio de scripts fixos e testados, em vez de código reescrito para cada solicitação: leitura da linha do tempo com intervalos de origem exatos, reenquadramento (9:16…) centrado nos assuntos, uma nova linha do tempo construída e depois verificada valor por valor, marcadores. Elas contornam armadilhas conhecidas da API do Resolve 21.1, nunca modificam uma linha do tempo existente e também controlam um Resolve remoto, o que o servidor MCP da Blackmagic ainda não faz. O assistente de IA ainda pode trabalhar na linha do tempo aberta por meio do MCP do Resolve.

Com o DaVinci Resolve, nos dois sentidos: vídeos selecionados tornam-se uma linha do tempo com legendas e marcadores; uma linha do tempo do Resolve entra na biblioteca e seus vídeos são analisados.

Autônomo: uma interface web para navegar pelas análises, buscar e consultar toda a biblioteca.

Versão para Windows. Este repositório contém o aplicativo para Windows 11. Foi desenvolvido e testado com uma placa de vídeo NVIDIA, que ele usa quando o modelo de visão deixa memória suficiente (decodificação de vídeo e, opcionalmente, reconhecimento de fala). Sem uma, esse trabalho roda no processador, e o modelo de visão roda no que o LM Studio suportar no seu computador; outras placas de vídeo não foram testadas. Uma versão para macOS está planejada como um repositório separado.

Apresentação em vídeo, nove minutos: youtu.be/G0WT96QsGsU; em francês: youtu.be/1EI36bRbdWo.

Esta é a nova versão do Video Frame Expedition; ela substitui a anterior.

Seus quadros e sons nunca saem da sua máquina, exceto, se você escolher, para ir ao LM Studio em outro dos seus computadores; o modelo de visão roda na sua placa de vídeo. As análises fazem apenas duas chamadas de rede (uma posição aproximada e uma data, para encontrar o local e o clima), e um interruptor na página Sistema as desliga; o mesmo interruptor oculta o mapa do OpenStreetMap da aba Contexto, que carrega seus blocos da internet. A página de ajuda carrega suas fontes do Google Fonts e seus vídeos de apresentação do YouTube (youtube-nocookie.com, somente quando você rola até eles).

Princípios

  • Local primeiro: seus quadros e sons nunca saem da sua máquina. Os únicos dados enviados (coordenadas GPS e uma data, para o local e o clima) podem ser desligados na página Sistema, junto com o mapa da aba Contexto.
  • Escalonamento entre modelos: as tarefas simples vão para o modelo local, na sua máquina (analisar os vídeos, responder a uma pergunta sobre a biblioteca com ask_library, localizar um assunto em um quadro com plan_reframe), e o assistente só recebe o resultado. O nível complexo (entender uma solicitação, escolher as cenas, editar) pertence ao modelo de fronteira (Claude…), que custa mais. Ele não precisa mais olhar centenas de quadros ou escrever scripts para o Resolve, então usa muito menos tokens.
  • Seus rushes permanecem intactos: a única coisa escrita nas suas pastas de vídeo é um pequeno arquivo de análise por vídeo e por idioma (<name>_FR.txt, <name>_EN.txt; JSON, sem imagens), que pode ser desligado na página Sistema. Ele traz as análises de volta sem refazê-las (banco de dados perdido, outro computador); também contém a posição GPS e o que é dito, então compartilhar a pasta compartilha isso também. Quando você cria uma linha do tempo no DaVinci Resolve com legendas, cada vídeo também recebe as suas: <name>_EN.srt (o que é dito, no idioma falado) e <name>_SHOTS_EN.srt (as cenas, no idioma da interface). Um arquivo que o aplicativo não escreveu, ou que você alterou, nunca é substituído.
  • O modelo de visão permanece na GPU: o aplicativo usa o modelo que você carregou no LM Studio e nunca o recarrega nem carrega outro durante as análises. Ele decodifica vídeos na GPU somente quando esse modelo deixa memória livre suficiente (com qwen/qwen3-vl-4b, por exemplo).
  • Escolhendo seu modelo de visão: a página "Bench de modelos" compara os modelos do LM Studio que você marca, em quadros da sua biblioteca. Cada um é carregado sozinho, consultado da maneira que as análises o consultam e depois descarregado; uma tabela dá a memória gráfica usada, o tempo por quadro, as respostas válidas, se as respostas estão no idioma solicitado, o texto lido e as posições, e você avalia as descrições às cegas. Um ranking, perfis e gráficos resumem essas medidas, e um histórico mantém cada teste: o ranking geral compara o último resultado de cada modelo em todos os testes. Este é o único lugar onde o aplicativo carrega um modelo, a seu pedido; ele então recarrega o que estava lá antes.
  • LM Studio aqui ou em outro lugar: por padrão, o aplicativo fala com o LM Studio neste computador. O cartão "LM Studio" da página Sistema pode apontá-lo para outro computador na sua rede local ou no Tailscale, um com uma placa de vídeo mais potente. O aplicativo testa esse computador antes de mudar para ele e mantém as conexões passadas a um clique de distância. Os quadros dos seus vídeos então vão para esse computador, e somente para ele.
  • Dois idiomas: cada análise existe em francês e em inglês. Os modelos escrevem em um idioma (página Sistema), e então a etapa "Tradução" traduz seus textos para o outro, sem refazer nada; a interface os mostra e os exporta (arquivos, linhas do tempo, legendas) no seu próprio idioma. Os nomes dos arquivos terminam com seu idioma: _FR, _EN.
  • Uma análise concluída é mantida: executar a análise novamente só faz o que está faltando. "Atualizar" e "Refazer tudo" são escolhas explícitas.
  • Sons, fala e texto na CPU: YAMNet (sons e instrumentos) com uma segunda opinião do CED-small ("sons ouvidos": pássaros, sapos, insetos, chuva, passos… com seus timestamps), Whisper large-v3-turbo (transcrição, em um processo separado) e PP-OCRv6 (texto na tela) rodam no processador. Seus modelos são baixados uma vez pelo script de instalação. Como opção (página Sistema), o Whisper pode emprestar a GPU quando o modelo de visão deixa memória suficiente (vfe models cuda-runtime).
  • Onde estão os assuntos: uma caixa ao redor de cada ser vivo (pessoas, animais, insetos) nos keyframes, posições que podem ser reutilizadas para reenquadrar (MCP get_object_locations). O modelo de visão já carregado os encontra todos, e então D-FINE e YuNet (na CPU) apertam as caixas e completam as multidões. Somente posições: ninguém é identificado.
  • O que acontece em cada cena: o modelo de visão descreve o que acontece em cada cena a partir de vários de seus quadros, em ordem (um inseto decolando, uma mão adicionando um ingrediente), com o tempo de cada quadro. Aba de cenas, faixa da linha do tempo e MCP get_shots.
  • Encontrando tudo novamente: a página Busca procura em toda a biblioteca pelo que é visto, dito, ouvido ou lido, por palavras-chave e por significado (EmbeddingGemma, na CPU), com filtros (clima, luz, local, datas, assuntos, enquadramento…); um clique abre o vídeo no momento certo. MCP search_memory e find_clips (cenas prontas para o Resolve).
  • Fazendo perguntas: a página Perguntas responde a uma pergunta sobre toda a biblioteca com o modelo carregado, citando suas fontes (um clique abre o vídeo no momento certo), com uma verificação opcional contra os quadros. MCP ask_library.
  • Exportando: aba Exportações de cada vídeo (legendas SRT/VTT, cenas como CSV para Excel, capítulos do YouTube, EDL de marcadores, análise JSON, planilha MANIFEST, script do Resolve) e uma tabela CSV dos vídeos selecionados. Nada é escrito ao lado dos vídeos.
  • Criando uma linha do tempo: os vídeos marcados, de ponta a ponta, em ordem de gravação (ou outra ordem), como um arquivo para importar no DaVinci Resolve (Arquivo › Importar › Linha do tempo) ou, quando o Resolve está aberto, diretamente no projeto atual. Como você escolher, a transcrição e as descrições das cenas tornam-se legendas (uma faixa cada), as sugestões tornam-se marcadores de duração e os capítulos tornam-se marcadores. O download é um ZIP: OTIO para o Resolve, FCPXML para o Final Cut Pro, arquivos SRT e um README.txt. Quando a linha do tempo é criada diretamente, as legendas são colocadas nela (uma faixa "Transcrição", uma faixa "Cenas") e também escritas ao lado de cada vídeo.

Requisitos

  • Windows 11.
  • uv, Node.js 24 LTS (a interface web é construída no primeiro início), FFmpeg e ExifTool: scripts/bootstrap.ps1 os instala.
  • LM Studio com o servidor local habilitado e um modelo de visão carregado (por exemplo, qwen/qwen3-vl-8b), neste computador ou em outro computador da sua rede (página Sistema, cartão "LM Studio").
  • DaVinci Resolve Studio 21.1 ou posterior, para o link com o Resolve.

Instalação

  1. Obtenha o aplicativo: git clone https://github.com/VideoFrameExpedition/video-frame-expedition-resolve-windows.git, ou o botão "Code › Download ZIP" do GitHub, e então descompacte-o.

  2. No PowerShell, a partir da pasta do aplicativo:

    powershell -ExecutionPolicy Bypass -File scripts\bootstrap.ps1
    

    O script usa winget para instalar o que está faltando (uv, Node.js, FFmpeg, ExifTool, LM Studio), e então os pacotes Python do aplicativo e seus modelos (cerca de 2 GB, baixados uma vez; -SansModeles os pula). Aceite os prompts do Windows (UAC). Suas mensagens estão em francês.

  3. No LM Studio, baixe um modelo de visão (por exemplo, qwen/qwen3-vl-8b), carregue-o e inicie o servidor local.

  4. Clique duas vezes em run.bat. Na primeira vez, ele constrói a interface web (um ou dois minutos) e então abre o navegador.

Linha de comando. Nesta página, vfe <command> representa o seguinte comando, digitado no PowerShell a partir da pasta do aplicativo:

uv run --frozen --no-dev --project backend python -m vfe_vision <command>

Por exemplo, vfe doctor verifica FFmpeg, ExifTool, LM Studio e a GPU.

Início rápido

No dia a dia: clique duas vezes em run.bat. Ele inicia o aplicativo (interface, MCP e análises) e abre o navegador em http://127.0.0.1:8765.. Se o aplicativo já estiver em execução, ele simplesmente abre a interface. run.bat build reconstrói a interface web primeiro após uma atualização. Para parar o aplicativo, feche sua janela.

A página "Ajuda" na barra lateral é o guia completo: doze partes, as sete abas de um vídeo uma a uma, cerca de cinquenta capturas de tela da interface em francês, com o texto em francês e em inglês. É o arquivo frontend/public/help/index.html, servido em http://127.0.0.1:8765/help/index.html;; a pasta também pode ser hospedada em outro lugar como está.

O vídeo de apresentação (nove minutos, dez capítulos) está no YouTube e na página de ajuda; o mesmo vale para sua versão em francês (oito minutos), no YouTube e na página de ajuda em francês. Conectando assistentes (Claude Code, Claude Desktop, Cursor, VS Code, Codex) e usando o aplicativo de seus outros dispositivos via Tailscale: página "Conexões" da interface e guia.

Configurações lidas na inicialização (endereço e porta, caminhos das ferramentas, endereço do LM Studio): copie docs/env.example para um arquivo .env ao lado de run.bat. Todo o resto é definido na interface.

Desenvolvimento

As tarefas de desenvolvimento passam por just (winget install Casey.Just); cada receita do justfile também pode ser executada manualmente se o Smart App Control bloquear just.exe.

just setup      # backend + frontend dependencies, pre-commit hook
just build      # builds the web interface
just serve      # starts the application on http://127.0.0.1:8765
ComandoFunção
just dev-backend / just dev-frontendservidores de desenvolvimento (API :8765, Vite :5173)
just checklint, tipagem estrita, contratos de arquitetura e testes (backend + frontend)
just test-livetestes que usam LM Studio, os modelos, a GPU ou a internet
just gen-clientregenera o esquema OpenAPI e o cliente TypeScript

Editando com Claude Code e DaVinci Resolve

O servidor vfe-vision tem 25 ferramentas. Quatro delas controlam o DaVinci Resolve Studio 21.1 em nome do assistente quando a caixa "Ferramentas do Resolve para o assistente" da página de Conexões está marcada (desativada por padrão). A abordagem:

  1. read_timeline lê a linha do tempo aberta e vincula cada clipe ao seu vídeo analisado, com intervalos corretos em segundos; match_clips informa o que cada intervalo contém;
  2. Claude escolhe os planos (find_clips, get_synthesis, get_frames) e pede get_cut_points por pontos de entrada e saída seguros (nunca no meio de uma palavra, com J-cuts e L-cuts);
  3. plan_reframe prepara o reenquadramento para outra proporção de tela (9:16…): o trabalho de imagem é feito localmente, pelo modelo de visão carregado no LM Studio (respostas mantidas em cache), e Claude só olha as folhas de contato dos planos que foram sinalizados;
  4. build_timeline cria uma linha do tempo nova "… - vfe vN" com esses planos e esses reenquadramentos, lê cada duração e cada valor de volta, e apply_markers coloca capítulos, destaques e metadados. Nenhuma linha do tempo existente é modificada e o projeto não é salvo: pressione Ctrl+S no Resolve se você mantiver a edição.

Sem a caixa, Claude escreve os mesmos passos como scripts para o servidor MCP do DaVinci Resolve Studio (match_clips, get_reframe e get_resolve_payload fornecem os dados; o prompt plan_edit descreve essa abordagem e a faz funcionar em uma cópia da linha do tempo), com cortes diretos e cross-dissolves apenas.

Claude adiciona uma nova pasta à biblioteca (analyze_folder) somente se a página do Sistema permitir. Todas as ferramentas: docs/mcp-tools.md.

Documentação

O aplicativo foi desenvolvido em francês. A interface, sua página de ajuda, esta página e os documentos acima existem em ambos os idiomas; as mensagens do lançador e da linha de comando estão em francês.

Licença

Gratuito e de código aberto, sob a Apache License 2.0. Você pode usar, modificar, integrar e compartilhar, inclusive para trabalho pago, desde que mantenha o aviso de direitos autorais e o arquivo NOTICE. Fornecido como está, sem garantia ou suporte.

Contribuições

Este repositório é publicado para que o aplicativo possa ser instalado e seu código lido. Ele não aceita contribuições de código: pull requests não são mesclados. Para relatar um bug, abra uma issue: o formulário pede a versão do Windows, a placa gráfica, o modelo carregado no LM Studio e a mensagem de erro. Para relatar uma falha de segurança, veja SECURITY.md.