O que video-tighten faz?
Requer o skill resolve-bridge instalado ao lado deste (ele o encontra em ../resolve-bridge, ou defina RVS_BRIDGE), além do ffmpeg.
Fluxo de trabalho
- Onde estamos.
python3 <resolve-bridge>/scripts/rvs.py --workdir <pasta> status. Se ainda não houver estado, adote a linha do tempo que o usuário deseja apertar (veja resolve-bridge). - Execução de teste. Não altera nada no Resolve:
Escrevepython3 scripts/tighten.py --workdir <pasta><pasta>/.edit/tighten/REPORT.md,report.jsoneplan.json. - Leia o relatório com o usuário. Mostre a mudança de tempo total, o número de pausas encurtadas e cada sinalização. As sinalizações marcam cortes que o script não conseguiu corrigir (uma palavra começando antes do ponto de entrada com outra fala logo antes), então alguém precisa verificá-las de ouvido ou escolher uma tomada diferente.
- Proteja pausas propositais. O silêncio que é atuação (um olhar, uma pausa antes de uma piada, digitação na câmera) não deve ser cortado. Pergunte ao usuário e execute novamente com
--skip <nome do clipe ou quadro de início da linha do tempo> .... - Aplicar.
Constróipython3 scripts/tighten.py --workdir <pasta> --skip ... --apply<base>_vNN_tighten, arquiva a versão anterior, salva o projeto. Cada sinalização se torna um problema emEDIT_CHECKLIST.md, localizado pelo nome do clipe e timecode na nova linha do tempo. Informe ao usuário o novo nome da linha do tempo e os IDs dos problemas.
O que ele faz
| Padrão | Opção | |
|---|---|---|
| Ar antes da primeira palavra | 0,22 s | --pre |
| Ar após a última palavra | 0,38 s | --post |
| A borda pode crescer no silêncio da mesma tomada (resgata palavras cortadas) | até 0,5 s | --max-extend |
| Nunca mais perto do que isto de outro som (respiração, murmúrio, próxima tomada) | 0,08 s | --guard |
| Pausas dentro de um clipe maiores que … | 0,75 s | --pause-max |
| … são encurtadas para | 0,3 s | --pause-keep |
| Nunca criar um trecho menor que | 0,5 s | --min-piece |
| Apenas corrigir bordas, manter todas as pausas | desligado | --no-pauses |
| Faixas de áudio que não são diálogo (música) | nenhuma | --ignore-audio-tracks 3 4 |
- Detecção de fala é baseada em energia (
resolve-bridge/scripts/rvs_audio.py): os limiares vêm do arquivo fonte inteiro, as palavras são encontradas com um limiar forte e suas bordas se expandem através de finais suaves e respirações anexadas. É adequado para gravações com microfone próximo. Em locais barulhentos, verifique as sinalizações com mais cuidado. - Cada pausa encurtada se torna um corte abrupto (o clipe é dividido). Execute video-framing depois para escondê-los com aproximações, ou cubra-os com b-roll.
- Ajuste (ripple): clipes posteriores se movem para cima. Itens somente de vídeo (b-roll, sobreposições) são remapeados para o novo tempo e encurtados onde sua seção ficou mais curta. O b-roll que ficaria com menos de 0,5 s é descartado e listado.
- Modo: este é um passo estrutural, então usa a construção do resolve-bridge. Títulos e geradores na linha do tempo atual não são transportados (a ponte avisa). Execute tighten antes de adicionar gráficos.
Ainda não tratado
- Diálogo sobreposto (cortes J/L já na linha do tempo): esses clipes são deixados como estão e sinalizados.
- Palavras de preenchimento ("hum", "sabe") precisam de uma transcrição; planejado com transcrição em um skill posterior.