Durante minha gestão como blogueiro-chefe do InfoWorld, fiquei fascinado por vídeos narrados de software em ação. Existiam ferramentas para fazer esse tipo de narrativa, mas o poder explicativo do que veio a ser chamado de screencasting ainda não era amplamente reconhecido. Embora o meio tenha se tornado uma forma padrão de demonstração de software e eu tenha produzido e editado muitos screencasts ao longo dos anos, as ferramentas disponíveis nunca funcionaram da maneira que eu queria: visualização fácil e precisa com precisão de quadro e execução de anotações, cortes, pausas e narração. Quando as pessoas pediram screencasts para demonstrar como usar o Bram, tentei usar ferramentas convencionais, desisti frustrado e, por capricho, decidi ver se conseguiria usar o Bram para criar o editor que sempre quis.
Em poucos dias tive a primeira versão do Bram Studio; mais alguns dias de iteração renderam o screencast de estreia de Bram. A ferramenta é executada a partir de um clone local do repositório GitHub do Bram Studio, onde você inicia o Bram e, em seguida, abre seu chamado aplicativo de destino.
Bram, no repositório bram-studio, pronto para abrir o Bram Studio.
Fundição

A página de projetos do Bram Studio.
Fundição

Deslocando uma anotação de caixa para ter um quadro a mais.
Fundição
Funciona bem para mim, mas a configuração parecia um pouco estranha. Quem iria querer clonar um repositório, instalar o Bram e depois usar o Bram para iniciar o Bram Studio? Por que não empacotar o Bram Studio como um binário único fácil de baixar e instalar, como o próprio Bram?
Bram Studio é um kit de ferramentas de inovação para usuários
Minha estrela norte para o desenvolvimento de produtos é melhor descrita em Democratizing Innovation, de Eric von Hippel. Não entregue um produto enlatado apenas para atender a uma necessidade antecipada, argumenta ele. Em vez disso, torne o produto maleável por usuários líderes que possam moldá-lo de acordo com suas necessidades reais. Os exemplos do livro incluem, entre outros, produtos de software. Meu exemplo favorito são as pranchas de snowboard. As empresas enviaram placas que os clientes poderiam modificar, observaram os mods acontecerem, incluíram os mods mais importantes e gerais em seus produtos de envio e, em seguida, repetiram esse ciclo virtuoso.
À medida que desenvolvi o Bram Studio, percebi que os agentes que eu estava usando o Bram para dirigir – principalmente Claude Code, às vezes Codex – usavam o FFmpeg de maneiras poderosas. Em uma postagem sobre as realizações multiformes de seu criador, Fabrice Bellard, John Carmack escreveu:
Hoje o FFmpeg é o motor invisível da internet. O YouTube usa isso. A Netflix usa isso. VLC usa isso. Chrome e Firefox usam partes dele. Todo telefone Android, todo iPhone, toda smart TV, toda ferramenta de edição de vídeo que você já tocou executa o FFmpeg em algum lugar abaixo. Se você assistiu a um vídeo em uma tela nos últimos 20 anos, o código de Fabrice o processou.
Aqui está a explicação de Claude sobre uma das maneiras como ele usa o FFmpeg no Bram Studio.
Você fala sobre parte de uma cena e sua voz substitui o som da cena exatamente nesse trecho. A imagem permanece intacta. São necessárias quatro passagens do ffmpeg:
Limpe a voz. Corte a gravação conforme o que foi dito, a partir do momento em que a reprodução começou, depois denoise, high-pass e comprima: anlmdn → highpass=f=80 → acompressor (NARRATE_AF).
Meça. Execute loudnorm=print_format=json em uma passagem somente de medida. Ele informa apenas o volume integrado; isso não altera o áudio. Se o resultado for inferior a –45 LUFS, o take é recusado com “nenhuma fala foi ouvida”. Caso contrário, o ganho necessário para atingir –16 LUFS é aplicado como um único volume=…dB e, em seguida, um limitador.
Salve o áudio que está sendo substituído (atrim) em media/.narrated/, para que uma narração possa ser removida posteriormente mesmo após outras edições.
Divida-o com um filter_complex: o áudio original até o início (atrim, depois um afade out de 10 ms), a nova voz preenchida ou aparada para preencher exatamente o trecho (apad=whole_dur, atrim=duration), então o original do final em diante (um afade in de 10 ms), unido com concat=v=0:a=1.
Esses usos do FFmpeg são incorporados ao Bram Studio, em um conjunto Python, e podem ser entregues como parte de um binário independente. Se eu seguisse esse caminho, abandonaria o Python, que é uma dor de cabeça na implantação, em favor de uma linguagem como Go ou Rust, que se presta à implantação de binário único. Algo assim aconteceu com o próprio Bram. Originalmente, ele usava Python para os ganchos executados antes e depois das chamadas da ferramenta do agente. Essa vida complicada para usuários do Windows que talvez não tenham o Python instalado. Quão difícil seria, pensei, portar esses ganchos para Rust, a principal linguagem usada por Bram (porque é baseada na estrutura Tauri)? Em algumas horas isso foi feito e Bram foi libertado de sua dependência do Python. As linguagens de programação são fungíveis agora; Os LLMs analisam a estrutura profunda do código; eles traduzem de forma fácil e confiável entre representações de superfície.
Mas uma versão binária única do Bram Studio não seria um kit de ferramentas de inovação para o usuário; seria um aplicativo enlatado com suposições sobre como usar o FFmpeg. Ao usar o Bram para executar o Bram Studio a partir de seu repositório local, você pode usar seu aplicativo de destino pronto, mas também pode fale com o agente sobre clipes de áudio exclusivos do seu projeto. Se os ajustes integrados não estiverem corretos, você pode direcionar o agente para medir os níveis, experimentar filtros e limites e fornecer um resultado ideal.
E embora nada disso tenha acontecido ainda, como o Bram Studio tem apenas uma semana, você também pode direcionar o agente para levantar problemas no GitHub que relatem bugs ou sugiram melhorias. Como um daqueles snowboarders líderes, seus mods podem impulsionar a evolução do produto principal.
Um sonho de automação tornado realidade
Sempre imaginei que um dia seria possível para uma ferramenta ler uma captura de tela bruta, identificar cenas e produzir um screencast bem editado com anotações úteis. Hoje foi esse dia. Eu precisava dar uma última olhada no screencast de estreia de Bram para ajustar o áudio. Para testar a ideia de automação, ativei a captura de tela e conversei sobre o processo no Bram Studio com a câmera ligada.
Depois, ainda no Bram Studio, convidei Claude para redigir um screencast. As ferramentas disponíveis incluíam tudo no meu computador: FFmpeg, é claro, também o framework Vision integrado da Apple e o compilador Swift (que eu nunca tinha usado), também o log estruturado exaustivo de Bram que inclui carimbos de data e hora para cada turno de conversa.
Foram necessárias algumas tentativas, mas o resultado é surpreendente: um vídeo de dois minutos bem editado que isola e anota cada uso do FFmpeg durante a passagem final de ajuste de áudio.
Preciso fazer uma série de demos para o Bram e, como ele está evoluindo tão rápido, essa era uma perspectiva assustadora. Agora é possível e mal posso esperar para começar. Quando estou usando o Bram da maneira que desejo ilustrar, posso ativar a gravação de tela e capturar o que acontece. A maioria das tomadas serão descartáveis, e tudo bem. Quando capturar algo que valha a pena mostrar, usarei o Bram Studio no modo conversacional para criar um primeiro rascunho automaticamente. Em seguida, mudarei para o aplicativo predefinido para anotações finais, cortes, pausas e narração. E como sou o primeiro e melhor usuário líder do Bram Studio, as coisas que aprendo ao longo do caminho impulsionarão um ciclo virtuoso de melhoria.
Nada disso é específico do Bram ou do Bram Studio. Acontece que essas são as ferramentas que me mostraram como pode ser quando o uso criterioso de agentes transforma um produto em um kit de ferramentas de inovação para o usuário. Todo produto de software deveria funcionar dessa maneira, e espero que em breve muitos mais o façam.
