Clip Picker
Encuentra lo que vale la pena guardar en grabaciones largas. Todo el método existe para sortear un límite duro:
Claude no puede ver video. Solo lee imágenes fijas. Por lo tanto, 'elegir buenos clips' es realmente: muestrear el metraje en imágenes con la densidad suficiente para ver qué sucede, evaluarlas contra una rúbrica, confirmar a resolución completa y luego cortar. Recortar es trivial y casi instantáneo; ver 30+ minutos de metraje es el coste real — presupuesta para ello y no te disculpes por ello.
Los scripts viven en scripts/ (survey.py, score.py, board.py). Se encargan de las partes mecánicas;
Claude hace el juicio visual en medio. Dependencias: ffmpeg/ffprobe en PATH, numpy, pillow (todo instalado
en esta máquina — ver [[editor-pack-video-editing-stack]]).
Pipeline
Elige un WORKDIR en el scratchpad (por ejemplo, .../scratchpad/clippick). Luego:
1. Confirmar la rúbrica. Si el metraje no es POV motocicleta/ciclismo (la predeterminada incorporada a continuación), pregunta al usuario 1-2 preguntas: qué hace que un clip sea bueno para ellos, duración deseada del clip, formato de salida (16:9 vs 9:16) y qué tan selectivo (unas pocas joyas vs todo). Una buena frase de criterios cambia cada selección — consíguela antes de muestrear.
2. Muestreo — convertir el metraje en hojas de contacto legibles.
python scripts/survey.py "C:\ruta\a\videos_o_directorio" --out WORKDIR --interval 4
Una miniatura cada 4s, en mosaico de 6x6, con la hora del código de tiempo quemada en cada una. Para metraje rápido/lleno de acción usa
--interval 2-3; para metraje lento --interval 6-8. Imprime las especificaciones de cada clip y marca las fuentes HDR
(HLG/PQ). En clips HEVC largos/múltiples esto es lento (la decodificación por software es el cuello de botella) — ejecútalo
en segundo plano y ve las hojas a medida que aparecen.
3. Inspeccionar visualmente cada hoja. Lee cada WORKDIR/montages/*_sheet_*.jpg. Mapea las ventanas candidatas
por código de tiempo contra la rúbrica. Un evento fugaz entre muestras puede pasarse por alto — si una hoja
sugiere algo (un destello en una esquina, una figura), anótalo y muestrea ese intervalo más densamente después.
4. Crear WORKDIR/candidates.json — un objeto por ventana candidata (esquema a continuación). Mantén cada
ventana entre 15-30s (o la longitud que prefiera el usuario). Dale a cada una un código pick (P01, P02, ... en tu orden clasificado), un
title de una línea (por qué califica) y tags.
5. Confirmar a resolución completa + nitidez.
python scripts/score.py --work WORKDIR
Extrae un fotograma principal a resolución completa por candidato, calcula la varianza de Laplaciano (una métrica de enfoque),
y los agrupa en mosaico en review.jpg. Lee la imagen. Descarta los que sean genuinamente borrosos/sin interés; ajusta start/end
para capturar el mejor momento. Baja nitidez = toda la imagen movida por vibración — es deseable para tomas fluidas, no un
rechazo. Vuelve a ejecutar después de ediciones.
6. Presentar una hoja de selección clasificada (el usuario elige).
python scripts/board.py --work WORKDIR --mode thumbs # -> WORKDIR/pickboard.html (publicable como Artefacto)
O, cuando quieran ver antes de elegir, un tablero reproducible que también corta los clips:
python scripts/board.py --work WORKDIR --mode play --out "%USERPROFILE%\Downloads\clips"
play corta cada candidato a H.264 amigable para navegadores (mapeo de tonos HDR->SDR automático para HLG/PQ), escribe
review_player.html con reproductores <video> nativos junto a los mp4s (ábrelo en Chrome/Edge para reproducción local).
La salida predeterminada es 16:9, solo recorte, sin recortar el encuadre.
7. Cortar / finalizar los ganadores que el usuario elija. Para opciones de formato o píxel exacto, canaliza a través de la
habilidad [[editor-pack-video-editing-stack]] video-tool-router (copia de flujo vs recodificación, la protección HLG,
Resolve para gradación/estabilizar/escalar). Ofrece seguimientos: aumento de desenfoque de movimiento en clips fluidos, verticales 9:16,
color, subtítulos, un montaje.
La rúbrica de selección (esta es la parte real de "cómo elige")
Un clip vale la pena conservarlo cuando supera los filtros de calidad Y lleva al menos una señal "especial".
Filtros de calidad (todos deben cumplirse)
- Subconjunto, de 15 a 30 s de la fuente (predeterminado; respeta la duración del usuario).
- Sujeto claro y estable — el sujeto principal (moto/manillar, rostro, jugador) está nítido y encuadrado de manera estable. Rechaza el desenfoque global por golpes/sacudidas, desenfoque de enfoque, sobreexpuesto o demasiado oscuro, lente obstruido.
- Está sucediendo algo — movimiento o cambio. Rechaza inactivo/estacionado/esperando y la monotonía sin nada.
Señales "especiales" (necesita >=1; más y más fuertes = mayor rango)
- Velocidad / movimiento — el entorno se desdibuja con desenfoque de movimiento mientras el sujeto se mantiene nítido. Esto es un aspecto positivo y materia prima ideal para una edición con aumento de desenfoque de movimiento.
- Interacción — otras personas/ciclistas/vehículos/animales; adelantamientos, conducción en grupo, alguien reaccionando.
- Acción / dinámica — curvas e inclinación, giros, cambios de elevación, un truco, un momento de cerca.
- Luz y entorno — amanecer/atardecer, hora dorada, nubes dramáticas, niebla/bruma, túneles, una vista o revelación, agua. La luz de la hora del día es el mayor factor "cinematográfico" — márcalo siempre.
- Novedad — un cambio de escena/terreno, una entrada/salida, cualquier cosa visualmente nueva en comparación con los minutos circundantes.
Conciliar "nítido, no borroso" con "el desenfoque de movimiento es bueno"
Mantén el sujeto nítido y el momento intencional; trata el desenfoque de velocidad periférica como una característica. Rechaza solo el desenfoque global (toda la imagen manchada por un golpe). Una cámara de pecho/barra mantiene la moto rígida mientras el mundo se desdibuja — ese es el aspecto deseado, no un defecto.
Clasificación
Ordena por: fuerza y rareza de la señal especial, luego claridad, luego variedad (no clasifiques cinco ventanas casi idénticas en los primeros puestos — distribuye las vibraciones: una vista, un desenfoque de flujo, un adelantamiento, una tomada atmosférica). Sé honesto cuando un criterio simplemente esté ausente (por ejemplo, no hay amanecer/atardecer en ninguna parte) — dilo en lugar de forzar una selección débil.
Perfil de viaje POV (predeterminado incorporado para el metraje de este usuario)
Cámara de casco o manillar de motocicleta/ciclismo. Concretamente: conserva barridos de desenfoque de velocidad, curvas/inclinación, adelantamientos y conducción en grupo, vida al borde de la carretera, niebla/bruma y vistas de montaña, túneles/paseos arbolados. Omite: paradas, intermitentes, estacionamiento, manipulación del teléfono, largas rectas sin nada. (Esta es exactamente la rúbrica que produjo el conjunto de clips que al usuario le gustó).
Esquema de candidates.json
[
{"pick":"P01","clip":"clip_6318","file":"%USERPROFILE%/Downloads/clip_6318.mov",
"start":96,"end":120,"hero":104,"title":"Túnel de árboles altos, ciclistas adelante, fuerte desenfoque de velocidad",
"tags":["speed-blur","scenery"]}
]
start/end/heroestán en segundos.heroes un instante representativo dentro de la ventana (se usa para la miniatura y la puntuación de nitidez) — elige el momento más característico, no necesariamente el punto medio.- Los códigos
picktambién sirven como identificador para que el usuario elija ("cortar P01, P03, P10"). tags(libre, pero estos obtienen etiquetas bonitas): speed-blur, corner, vista, interaction, overtake, atmosphere, scenery, action, light, wildlife.
Eficiencia y problemas comunes
- La decodificación HEVC/HDR es el cuello de botella, no la edición. Un muestreo de ~30 min de HEVC toma minutos de decodificación. Muestrea solo con la densidad que justifique el metraje; pon el muestreo en segundo plano y la codificación del modo de reproducción.
- El metraje HLG/HDR se ve grisáceo en una exportación H.264 SDR ingenua —
board.py playlo detecta automáticamente y mapea los tonos, pero cualquier corte manual de este metraje también debe hacerlo. Consulta la protección HLG envideo-tool-router. - Ve más rápido si se solicita: si el usuario menciona la vibra de antemano ("solo las curvas de montaña y el desenfoque del túnel"), muestrea con un intervalo más amplio, preselecciona solo esas y codifica solo las que quieren — reduce un proceso de 20 minutos a unos pocos minutos.
- No inventes. Solo afirma lo que un fotograma muestreado realmente muestra. Si no estás seguro de si existe un evento de 1 a 2 s, muestrea ese intervalo más densamente antes de afirmarlo.
- La ruta de fuentes de Windows está codificada en los scripts (
C:/Windows/Fonts/...); ajústala en otros sistemas operativos.