Migrar um demo gravado para um take editável
Você está transformando um ARQUIVO DE VÍDEO FINALIZADO em um take do vosso: um documento cujos zooms, cortes, velocidade e camadas são dados, hospedados com histórico de versões e editáveis no estúdio. O que o arquivo perde por ser estrangeiro é uma honestidade que você deve carregar: ele NÃO tem trilha de cursor, então nada pode ser ampliado automaticamente e o resumo vê pouco — seus olhos são a folha de contato, e cada zoom é colocado manualmente.
Duas portas:
- A porta humana: solte o arquivo em https://vos.so/studio — ele entra na forma do gravador do navegador e abre diretamente no editor de takes. Quando um humano está presente, este é o caminho mais curto; entregue o link a ele.
- A porta do agente (este skill): construa o diretório do take você mesmo e execute o pipeline normal. Comprovado do início ao fim abaixo.
1. Sondar a origem
ffprobe -v quiet -print_format json -show_streams -show_format demo.mp4
Mantenha: largura, altura, duração, fps, se existe um fluxo de áudio. Uma exportação do Loom/Screen Studio normalmente é 1080p H.264 com a bolha da câmera e quaisquer edições INCORPORADAS — elas migram como pixels, não como camadas. Diga isso no handoff: a migração torna o arquivo editável daqui em diante, ela não desfaz edições antigas.
2. Construir o diretório do take
mkdir take
ffmpeg -i demo.mp4 -c:v libvpx-vp9 -crf 34 -b:v 0 -row-mt 1 \
-c:a libopus take/recording.webm # remova -c:a se não houver fluxo de áudio
Em seguida, escreva take/meta.json a partir da sonda (todos os campos necessários; tempos em
ms; producer: "migrated" marca a proveniência):
{
"producer": "migrated",
"dpr": 1, "zoom": 1,
"t0": 0,
"durationMs": 36766,
"width": 1920, "height": 1080,
"fps": 30,
"hasAudio": false
}
t0 pode ser qualquer ms de época; width/height são os pixels do vídeo (não havia
janela do navegador). Defina hasAudio como true somente quando o webm realmente
carregar a trilha.
3. Planejar e ver com honestidade
vos plan take --fresh # constrói doc.json; cursorKept false, zoomAuto 0
vos frames take --times 0,10%,25%,50%,75%,90%,100% # a folha de contato SÃO seus olhos
vos digest take # executa, mas espere pouco: cabeça/cauda e apenas
# cortes duros de cena - sem cliques, sem digitação, sem pausas
Nenhum zoom automático é possível e nenhum deve ser falsificado. Leia as imagens, encontre os 2–4 momentos que importam e escreva intervalos manuais manualmente:
# doc.json - cada intervalo que você adiciona carrega "source": "manual"
# zoom: [{ "id": "m1", "in": 10.5, "out": 14.0, "level": 1.6,
# "cx": 0.52, "cy": 0.35, "source": "manual" }]
# segments: corte cabeças/caudas mortos; speed: apenas onde a filmagem realmente ociosa
Defina export.resolution para CORRESPONDER à filmagem (uma fonte 1080p é 1080p —
migrar não adiciona pixels). vos validate take deve passar; verifique
com vos render take check.webm --range a..b --draft.
4. Enviar — o demo antigo se torna um documento vivo
vos push take --folder <projeto> --label "migrado de <origem>" \
--note "<o que mostra; que edições antigas estão incorporadas; o que você recortou>"
Termine no ciclo: a página de visualização o reproduz, o estúdio edita cada intervalo que você
escreveu mais tudo o que o arquivo nunca teve (fundos, camadas de texto, velocidade),
e vos pull traz as edições humanas de volta. A proposta pertence ao
handoff, em uma linha: este é o último demo que você edita às cegas — grave o
próximo com vos record e a câmera se planeja sozinha.
Limites honestos (diga-os, nunca os encubra)
- Sem trilha de cursor ⇒ sem zoom automático, sem efeitos de clique, sem zooms de digitação e sem lint de enquadramento — cada zoom é seu, manualmente, e você diz isso.
- Edições antigas, bolhas de câmera e legendas são pixels incorporados.
- A migração recodifica uma vez (VP9); uma fonte mal comprimida permanece mal comprimida — migrar não restaura a qualidade.
- Uma escada de entregáveis de tamanho de especificação (armazenar imagens, pôsteres) funciona a partir do
take migrado exatamente como de um nativo — o skill
launch-kitassume quando a solicitação é um lançamento.