Edición de Vídeo Profesional
Esta habilidad consta de tres partes que funcionan juntas:
- Criterio editorial: qué cortar, dónde y por qué, para que el resultado parezca hecho por una persona con gusto y no ensamblado por una máquina.
- El editor (
vedit): un pequeño editor de línea de tiempo que se opera completamente desde la línea de comandos. Cortes, títulos, fundidos, efectos de sonido y preajustes de voz pasan por él, y la persona puede abrir el mismo proyecto en un navegador. - Herramientas de sonido: indexar una biblioteca de efectos de sonido, buscarla y colocar sonidos para que el impacto caiga en el fotograma exacto.
Las rutas a continuación son relativas a la carpeta de esta habilidad. Las herramientas necesitan Python 3.9+ y FFmpeg 5+ (nada más que instalar).
Sé honesto acerca de lo que puedes y no puedes hacer
- No puedes escuchar audio ni ver vídeo. Juzga por medición (transcripciones, detección de escenas y silencios,
scripts/qc_audio.py) y dilo. Después de renderizar, nombra dos o tres marcas de tiempo para que el usuario verifique de oído. - Nunca inventes nombres o ID de archivos de sonido. Usa solo los ID devueltos por
scripts/sfx_search.py. - Si
scripts/sfx_search.py --statsdice que no hay catálogo, la biblioteca de sonido no está configurada. Ofrece la configuración única a continuación y espera una respuesta afirmativa antes de descargar. Si el usuario la rechaza o falla, haz el trabajo editorial de todas formas y remítelo areferences/sfx-library-setup.md. Nunca descargues ninguna otra biblioteca de sonido por tu cuenta.
Principios básicos (versión corta)
Texto completo con ejemplos: references/editorial-principles.md. Léelo antes de cortar o revisar un corte.
- Emoción primero. Pregunta qué debe sentir el espectador en cada punto. Si siente algo durante todo el metraje, el montaje funciona.
- Jerarquía de corte. Cuando un corte no pueda satisfacerlo todo, sacrifica elementos desde abajo de esta lista primero: emoción, historia, ritmo, seguimiento visual, planaridad, continuidad espacial. Nunca intercambies un elemento superior por uno inferior.
- Corta donde termina un pensamiento, en el momento en que el espectador parpadearía. Un punto de corte debería ser un posible punto de parpadeo.
- Haz lo máximo con lo mínimo. La sugerencia supera a la exposición. Menos opciones, mejores. No cortar también es una decisión.
- Juzga solo lo que está en pantalla. Ignora el esfuerzo, el costo y la intención.
- Desvía la atención como un mago: decide hacia dónde va la mirada y haz que el siguiente plano la encuentre.
- Diagnostica antes de arreglar. Un problema suele estar antes de donde los espectadores dicen sentirlo.
Flujo de trabajo
| Etapa | Qué hacer | Referencia |
|---|---|---|
| 1. Ingesta | Confirmar el entregable (plataforma, relación de aspecto, fps, duración) y la intención en una frase. | technical-pipeline.md |
| 2. Registro | Indexar todo el metraje: transcripción con tiempos de palabra, tipo de plano, silencios, mejores tomas. Elegir un fotograma representativo por configuración. | editorial-principles.md |
| 3. Ensamblaje | Construir la historia en orden con el mejor material. Estructura antes de pulir. | editorial-principles.md |
| 4. Refinamiento | Aplicar la jerarquía de corte y el ritmo de parpadeo. Revisar el metraje descartado después del primer pase completo. | editorial-principles.md |
| 5. Sonido | Localizar, buscar, colocar y mezclar efectos de sonido. | sfx-placement.md |
| 6. Verificación | Ver de principio a fin como audiencia. Ejecutar el script de control de calidad. | abajo |
| 7. Entrega | Reenlazar a calidad completa, igualar color/niveles, exportar primero un máster. | technical-pipeline.md |
Al devolver trabajo, indica: la intención hacia la que editaste, las principales decisiones estructurales, lo que eliminaste y por qué, concesiones conocidas y alternativas que vale la pena probar.
El editor (vedit)
Úsalo para hacer el montaje real. Lee primero references/editor.md; tiene todos los comandos, el formato del proyecto y un método de trabajo. Lo esencial:
python3 editor/vedit.py new myfilm --size 1920x1080 # una carpeta de proyecto (usa `python` en Windows si falta python3)
python3 editor/vedit.py -p myfilm settings --preset vertical # lienzo para el destino (Reels/TikTok/Shorts); también --lufs -14
python3 editor/vedit.py -p myfilm analyze clip.mp4 # silencios y cambios de escena, para elegir cortes
python3 editor/vedit.py -p myfilm import clip.mp4 # imprime un ID de recurso como a1
python3 editor/vedit.py -p myfilm add a1 --in 12.5 --dur 8 # poner 8 s en la línea de tiempo
python3 editor/vedit.py -p myfilm grade c1 --look cinematic # color; también --brightness --contrast --saturation --temperature --lut ARCHIVO
python3 editor/vedit.py -p myfilm key c1 scale --at 0 --value 1; python3 editor/vedit.py -p myfilm key c1 scale --at 8 --value 1.15 --ease inout # zoom lento
python3 editor/vedit.py -p myfilm transition c1 c2 --type dissolve --dur 0.5
python3 editor/vedit.py -p myfilm key c1 speed --at 0 --value 1 # rampa de velocidad: añadir más keyframes en `speed` (el sonido propio del clip se silencia); también: reverse c1, freeze c1 --at 4 --dur 2
python3 editor/vedit.py -p myfilm tracker add c1 --at 4 --x 0.6 --y 0.3 # seguir un punto; luego: mask c1 --effect blur, follow c1 m1 t1 (desenfocar una cara) o attach c2 t1 (un título se mueve con él)
python3 editor/vedit.py -p myfilm stabilize c1 # suavizar vibración de cámara (necesita FFmpeg con libvidstab)
python3 editor/vedit.py -p myfilm captions subtitles.srt # un clip de texto por subtítulo
python3 editor/vedit.py -p myfilm sfx a3f9c012 --at 8.0 # ID de sonido de scripts/sfx_search.py; el impacto cae en 8.0 s
python3 editor/vedit.py -p myfilm set c1 preset="voice enhancer"
python3 editor/vedit.py -p myfilm check # corregir todos los errores que informe
python3 editor/vedit.py -p myfilm render --preview # rápido; luego `frame --at T` y mira el PNG
python3 editor/vedit.py -p myfilm measure --at 4 # números de brillo/color, para juzgar exposición y graduación
python3 editor/vedit.py -p myfilm serve # permitir que la persona abra y ajuste en el navegador
- Tienes control total: cada comando imprime JSON, los errores son simples,
batchaplica varios cambios como uno solo, yundorevierte uno. Los keyframes pueden animar zoom, posición, rotación, opacidad, color, volumen y velocidad;editor.mdlista el resto (máscaras, tracking, croma, recorte, volteo, silenciar y ocultar pistas, preajustes de lienzo). - Mira la imagen con
frame --at Ten lugar de adivinar, juzga el color conmeasure, y juzga el sonido por medición, no afirmando que suena bien. - Usa moderación: un aspecto suave, un estilo de transición, unos pocos movimientos lentos. Si eliminar un efecto no pierde nada, elimínalo.
- El seguimiento y las máscaras se miden, no se ven: después de
tracker add, verificafoundy mira los fotogramas conframe --at T. El tracking es adecuado para objetos rígidos y texturizados con tamaño estable; pierde blancos que giran o se ocultan. - La persona puede cambiar la línea de tiempo en el navegador mientras trabajas. Ejecuta
showantes de editar después de que diga que lo hizo. - Los preajustes de voz (
phone call,deeper voice,robot voice, ...) provienen del.prfpsetde Premiere incluido y se pueden extraer de cualquier otro conpresets import ARCHIVO.prfpset. Se aproximan a los efectos de Premiere; consultareferences/voice-presets.md. - Si no hay biblioteca de sonido configurada,
sfxfalla con un mensaje claro; ofrece la configuración de SFX a continuación.
Kit de herramientas SFX
Todos los scripts imprimen --help. Usan solo la biblioteca estándar y FFmpeg.
Configuración única. La habilidad no incluye audio, porque la licencia de los sonidos prohíbe redistribuirlos. La biblioteca por defecto es el paquete gratuito Sonniss GDC 2026 Game Audio Bundle, descargado del servidor de Sonniss. Antes de ejecutar esto, informa al usuario del tamaño (la parte 1 es 1.3 GB con 82 sonidos; las 5 partes son 7.5 GB con 347 sonidos) y la licencia en una línea (gratuito para proyectos personales y comerciales de medios, sin atribución; no revender ni redistribuir los sonidos; no entrenar IA), y obtén su aprobación:
python3 scripts/setup_library.py --accept-license # parte 1
python3 scripts/setup_library.py --accept-license --parts all # todo
Guarda los zips en library/ dentro de esta habilidad, reanuda descargas interrumpidas, reutiliza partes ya existentes y luego construye el catálogo. En Windows usa python si no se encuentra python3.
Para usar los propios sonidos del usuario en su lugar (o además), indexarlos directamente (consulta references/sfx-library-setup.md):
python3 scripts/build_catalog.py /ruta/a/sonidos.zip # o una carpeta, o una carpeta de zips
De cualquier forma, el resultado es un catálogo solo de texto en ~/.pro-video-editing/catalog.json. No contiene audio.
Por proyecto:
python3 scripts/sfx_search.py --stats # qué está disponible
python3 scripts/sfx_search.py "whoosh rápido y aireado" --max-dur 1.5 --limit 8
python3 scripts/sfx_search.py "clic de botón" --exclude ID1,ID2 # evitar repetir una toma
python3 scripts/render_mix.py in.mp4 cues.json --check # comprobar la hoja de pautas
python3 scripts/render_mix.py in.mp4 cues.json -o out.mp4 # renderizar
python3 scripts/render_mix.py in.mp4 cues.json --sfx-only fx.wav # pista SFX para una DAW o colorista
python3 scripts/qc_audio.py out.mp4 --target -14 # comprobación de sonoridad y pico verdadero
Columnas de salida de búsqueda: id, duración, categoría, peak@ (donde impacta el sonido), etiquetas, nombre de archivo. Usa peak@ para entender qué se alineará con el corte.
Hoja de pautas
{
"default_gain_db": -9,
"duck": true,
"humanize": true,
"cues": [
{"id": "a3f9c012", "at": 2.50, "sync": "peak", "note": "whoosh hacia la tarjeta de título"},
{"id": "19be4d70", "at": 2.50, "gain_db": -12, "note": "capa suave debajo"}
]
}
ates el tiempo del vídeo donde debe caer el punto de sincronización del sonido.at_framecoloca por número de fotograma.sync:peak(por defecto) coloca el momento más fuerte,onsetcoloca el ataque,startcoloca la primera muestra. La herramienta calcula el tiempo de inicio por ti, por lo que el impacto es preciso al fotograma incluso cuando el sonido comienza antes del corte.- Opcional por pauta:
gain_db,fade_in,fade_out,trim_start,duration,pitch_semitones(dentro de 12),note. duckreduce los SFX bajo el audio original (diálogo).humanizeañade pequeñas variaciones de ganancia y tono cuando el mismo sonido se repite.- Pon la razón en
note. Hace que la hoja sea revisable y ayuda en la siguiente edición.
--check informa IDs desconocidos, tiempos fuera del vídeo, tomas repetidas, capas apiladas y hojas demasiado ocupadas. Corrige todo lo que informe antes de renderizar.
Reglas de SFX
Guía completa con un método de localización: references/sfx-placement.md.
- Localiza con una razón. Cada sonido debe servir a la emoción o la historia. Si eliminarlo no pierde nada, elimínalo.
- Haz que el impacto caiga en el corte o el movimiento, no cerca. Usa
sync: peakpara whooshes e impactos. - Superpón ligeramente: como máximo tres sonidos en un momento (por ejemplo, impacto, sub, cola).
- Varía las tomas. Nunca uses el mismo sonido dos veces seguidas; usa
--excludeal buscar de nuevo. - Deja silencio. Un espacio antes de un impacto hace que este impacte más fuerte.
- Mantén el habla clara. Mantén
duckactivado cuando haya diálogo, y mantén la ganancia por defecto a -9 dB o menos bajo el habla. - Densidad: aproximadamente 12 pautas por 10 segundos ya es muy ocupado. El material tranquilo necesita muchas menos.
Lista de verificación
Antes de decir que un corte está terminado:
- Cada corte pasa la jerarquía, con emoción primero
- No hay cortes que existan solo para añadir ritmo; las pausas son deliberadas
- Los puntos de corte están en los límites de pensamiento, no a mitad de pensamiento
-
render_mix.py --checkno reporta errores, y las advertencias están resueltas o justificadas -
qc_audio.pymuestra pico verdadero a -1 dBTP o menos y sonoridad cerca del objetivo - La duración de salida, tamaño de fotograma, velocidad de fotogramas y diseño de audio coinciden con la especificación de entrega
- Se han dado al usuario marcas de tiempo específicas para escuchar
Índice de referencias
references/editorial-principles.md: la filosofía, jerarquía de corte, ritmo de parpadeo, diálogo, ritmo, diagnóstico de problemasreferences/editor.md: comandos del editor, keyframes, gradación de color, transiciones, subtítulos, ajustes de entrega, formato de proyecto, método de trabajo para una IA, editor en navegadorreferences/voice-presets.md: preajustes de voz, extracción de archivos.prfpsetde Premiere, límites de precisiónreferences/sfx-placement.md: método de localización, guía de sonido por propósito, niveles, capas, duckingreferences/sfx-library-setup.md: obtener una biblioteca, construir el catálogo, curar etiquetas, licenciasreferences/technical-pipeline.md: organización de medios, proxies, color, códecs, intercambio, exportación