O que Clip Picker faz?
Encontre os melhores momentos em gravações longas. Todo o método existe para contornar um limite difícil:
Claude não consegue assistir vídeo. Ele lê imagens estáticas. Então "escolher bons clipes" é, na verdade: amostrar a gravação em imagens com densidade suficiente para ver o que acontece, julgá-las contra uma rubrica, confirmar em resolução total e depois cortar. Aparar é trivial e quase instantâneo; ver 30+ minutos de gravação é o custo real — planeje-se para isso e não se desculpe por isso.
Os scripts ficam em scripts/ (survey.py, score.py, board.py). Eles cuidam das partes mecânicas;
o Claude faz o julgamento visual entre elas. Dependências: ffmpeg/ffprobe no PATH, numpy, pillow (todas instaladas
nesta máquina — veja [[editor-pack-video-editing-stack]]).
Pipeline
Escolha um WORKDIR no scratchpad (ex.: .../scratchpad/clippick). Então:
1. Confirme a rubrica. Se a gravação não for POV de moto/bicicleta (o padrão embutido abaixo), pergunte ao usuário 1-2 perguntas: o que torna um clipe bom para ele, duração desejada do clipe, formato de saída (16:9 vs 9:16) e quão seletivo (algumas joias vs tudo). Uma boa frase de critérios muda cada seleção — obtenha-a antes de amostrar.
2. Amostrar — transforme a gravação em folhas de contato legíveis.
python scripts/survey.py "C:\caminho\para\videos_ou_dir" --out WORKDIR --interval 4
Um thumbnail a cada 4s, lado a lado 6x6, com timecode da fonte queimado em cada um. Para gravações rápidas/cheias de ação use
--interval 2-3; para gravações lentas --interval 6-8. Ele imprime as especificações de cada clipe e sinaliza fontes HDR
(HLG/PQ). Em clipes HEVC longos/múltiplos isso é lento (a decodificação por software é o gargalo) — execute-o
em segundo plano e veja as folhas conforme elas chegam.
3. Inspecione visualmente cada folha. Leia cada WORKDIR/montagens/*_sheet_*.jpg. Mapeie janelas candidatas
por timecode contra a rubrica. Um evento que passa num piscar de olhos entre amostras pode ser perdido — se uma folha
sugerir algo (um flash de um canto, uma figura), anote e amostre esse trecho com mais densidade depois.
4. Crie WORKDIR/candidates.json — um objeto por janela candidata (esquema abaixo). Mantenha cada
janela com 15-30s (ou a duração do usuário). Dê a cada uma um código pick (P01, P02, ... na sua ordem classificada), um
title de uma linha (por que ela se qualifica) e tags.
5. Confirme em resolução total + nitidez.
python scripts/score.py --work WORKDIR
Puxa um quadro herói em resolução total por candidato, pontua a variância do Laplaciano (uma métrica de foco)
e os organiza lado a lado em review.jpg. Leia. Descarte os que estiverem genuinamente borrados/sem interesse; ajuste
start/end para acertar o melhor momento. Baixa nitidez = borrão de movimento de quadro inteiro — desejado para tomadas de fluxo, não uma rejeição.
Execute novamente após edições.
6. Apresente uma prancha classificada (o usuário escolhe).
python scripts/board.py --work WORKDIR --mode thumbs # -> WORKDIR/pickboard.html (publicável como um Artefato)
Ou, quando quiserem assistir antes de escolher, uma prancha reproduzível que também corta os clipes:
python scripts/board.py --work WORKDIR --mode play --out "%USERPROFILE%\Downloads\clips"
play corta cada candidato para H.264 amigável ao navegador (mapeamento automático HDR->SDR para HLG/PQ), escreve
review_player.html com players <video> nativos junto aos mp4s (abra no Chrome/Edge para reprodução local). A saída padrão é 16:9, apenas corte, sem crop.
7. Corte / finalize os vencedores que o usuário escolher. Para escolhas de pixel exato ou formato, encaminhe através da
skill [[editor-pack-video-editing-stack]] video-tool-router (stream-copy vs re-encode, a proteção HLG,
Resolve para correção de cor/estabilização/upscale). Ofereça acompanhamentos: aumento de motion-blur em clipes de fluxo, verticais 9:16,
cor, legendas, uma montagem.
A rubrica de seleção (isto é como realmente "escolhe")
Um clipe vale a pena ser mantido quando ele passa pelos portões de qualidade E carrega pelo menos um sinal "especial".
Portões de qualidade (todos devem ser atendidos)
- Subconjunto, 15-30s da fonte (padrão; respeite a duração do usuário).
- Assunto claro e estável — o assunto principal (moto/guidão, rosto, jogador) está nítido e enquadrado de forma estável. Rejeite borrão global de solavancos/tremidos, desfocado, estourado ou muito escuro, lente obstruída.
- Algo está acontecendo — movimento ou mudança. Rejeite parado/estacionado/esperando e nada monótono.
Sinais "especiais" (precisa >=1; mais + mais forte = classificação mais alta)
- Velocidade / movimento — os arredores ficam borrados com motion-blur enquanto o assunto permanece nítido. Isso é um positivo e matéria-prima ideal para uma edição de aumento de motion-blur.
- Interação — outras pessoas/motociclistas/veículos/animais; ultrapassagens, andando em grupo, alguém reagindo.
- Ação / dinâmica — curvas & inclinação, viradas, mudança de elevação, uma manobra, um momento de quase-acidente.
- Luz e ambiente — nascer/pôr do sol, hora dourada, nuvens dramáticas, névoa/nevoeiro, túneis, uma vista ou revelação, água. A luz do horário do dia é a maior alavanca "cinematográfica" — sempre sinalize.
- Novidade — uma mudança de cena/terreno, uma entrada/saída, qualquer coisa visualmente nova em relação aos minutos ao redor.
Conciliando "nítido, não borrado" com "motion-blur é bom"
Mantenha o assunto nítido e o momento intencional; trate motion-blur periférico como um recurso. Rejeite apenas borrão global (quadro inteiro borrado por um solavanco). Uma câmera de peito/guidão mantém a moto nítida enquanto o mundo passa borrado — essa é a aparência desejada, não um defeito.
Classificação
Ordene por: força e raridade do sinal especial, depois clareza, depois variedade (não classifique cinco janelas quase idênticas nas primeiras posições — varie os estilos: uma vista, um fluxo borrado, uma ultrapassagem, uma atmosférica). Seja honesto quando um critério estiver simplesmente ausente (ex.: nenhum nascer/pôr do sol em lugar nenhum) — diga isso em vez de forçar uma escolha fraca.
Perfil POV de passeio (padrão embutido para as gravações deste usuário)
Câmera de capacete/guidão de moto/bicicleta. Concretamente: mantenha varreduras com motion-blur, curvas/inclinação, ultrapassagens & andar em grupo, vida na estrada, névoa/nevoeiro e vistas de serra, túneis/alamedas de árvores. Pule: paradas, sinais, estacionamento, mexendo no celular, longas retas sem nada. (Esta é exatamente a rubrica que produziu o conjunto de clipes que o usuário gostou.)
Esquema do candidates.json
[
{"pick":"P01","clip":"clip_6318","file":"%USERPROFILE%/Downloads/clip_6318.mov",
"start":96,"end":120,"hero":104,"title":"Túnel de árvores altas, pilotos à frente, motion-blur intenso",
"tags":["motion-blur","paisagem"]}
]
start/end/heroestão em segundos.heroé um instante representativo dentro da janela (usado para o thumbnail e a pontuação de nitidez) — escolha o momento mais característico, não necessariamente o ponto médio.- Os códigos
pickservem como identificador para o usuário escolher ("corte P01, P03, P10"). tags(livres, mas estas ganham rótulos bonitos): motion-blur, curva, vista, interação, ultrapassagem, atmosfera, paisagem, ação, luz, vida selvagem.
Eficiência e pegadinhas
- Decodificação HEVC/HDR é o gargalo, não a edição. Uma amostragem de ~30 min de HEVC leva minutos de decodificação. Amostre apenas com a densidade que a gravação justifica; coloque a amostragem e a codificação do modo play em segundo plano.
- Gravação HLG/HDR fica acinzentada em uma exportação H.264 SDR ingênua —
board.py playdetecta automaticamente e faz o mapeamento de tom, mas qualquer corte manual desta gravação também deve fazer. Veja a proteção HLG emvideo-tool-router. - Acelere sob demanda: se o usuário nomear o estilo de imediato ("só as curvas da serra e o borrão do túnel"), amostre com um intervalo maior, pré-selecione apenas esses e codifique apenas o punhado que ele quer — reduz uma passagem de 20 minutos para alguns minutos.
- Não invente. Afirme apenas o que um quadro amostrado realmente mostra. Se não tiver certeza se um evento de 1-2 segundos existe, amostre esse trecho com mais densidade antes de afirmá-lo.
- Caminho da fonte do Windows está codificado nos scripts (
C:/Windows/Fonts/...); ajuste em outros sistemas operacionais.