Communitygithub.com

creación-de-videos-promocionales

Úsalo para crear, planificar, editar, reajustar o re-renderizar un video promocional, de lanzamiento, de actualización de producto o para redes sociales en código (Remotion), incluyendo movimientos de cámara, sincronización musical, locución, efectos de sonido y renders vertical y horizontal.

¿Qué es creación-de-videos-promocionales?

Esta habilidad proporciona un flujo de trabajo completo y automatizado para la creación de videos promocionales utilizando Remotion, una biblioteca de React que renderiza fotogramas. Está diseñada para desarrolladores que necesitan producir videos de alta calidad de forma programática, con un enfoque en la sincronización precisa entre imagen, cámara, música y efectos de sonido. La habilidad se basa en cuatro principios fundamentales: un mapa de sincronización central que controla todos los elementos, la selección de opciones (voces, música, estilos) antes de la edición, la previsualización antes de la versión final, y la veracidad de cada afirmación mostrada en el producto. Soporta la creación de videos en formato horizontal (1920x1080) y vertical (1080x1920) a partir de un solo componente, y gestiona todo el proceso, desde la especificación del guion gráfico hasta la renderización final y la mezcla de audio, incluyendo reglas estrictas para el audio, como el uso de licencias comerciales y la evitación de aleatoriedad en los renders.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HenryCh-hong/making-promo-videos/tree/main/skills/making-promo-videos

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Creación de videos promocionales en código

Resumen

Un video promocional hecho en código (Remotion: componentes de React renderizados fotograma a fotograma). Se basa en cuatro principios:

  1. Un mapa de sincronización lo controla todo. La imagen, la cámara, la música y los efectos de sonido leen nombres de hits definidos, de modo que reajustar uno los reajusta a todos.
  2. Seleccionar antes de editar. El director escucha y ve las opciones antes de que el video cambie.
  3. Previsualizaciones antes de los finales.
  4. Cada afirmación es fiel al producto.

Reglas de la casa primero: lee las reglas propias del repositorio de videos antes que cualquier otra cosa: su README, su CLAUDE.md, o un archivo house-rules.md en la raíz del repositorio. Estas anulan los valores predeterminados a continuación. house-rules.example.md en esta carpeta es una plantilla para escribir una.

Configuración de un nuevo video

  • Un video por rama o worktree, en un repositorio exclusivo de videos, nunca dentro de la aplicación del producto. Cada video tiene su propia carpeta: src/videos/<nombre>/.
  • Copia templates/ de esta habilidad en esa carpeta:
    • sections.ts: el mapa de sincronización, HITS, TRACK_BPM
    • film-camera.tsx: la cámara 2.5D
    • shots.ts: la lista de tomas
    • Film.tsx: el esqueleto de la composición, con el registro de Root.tsx en su encabezado
  • Copia templates/render.sh y scripts/*.py en la carpeta scripts/ del repositorio.
  • Dependencias, fijadas a una versión exacta juntas: remotion, @remotion/cli, @remotion/motion-blur. Para los scripts de audio: ffmpeg, además de numpy y soundfile.
  • Una composición renderiza ambos formatos a partir de una prop format (horizontal 1920x1080, vertical 1080x1920). Cada formato se diseña por separado y nunca con letterbox.

Flujo de trabajo

  1. Especificación del guion gráfico (usa la habilidad de lluvia de ideas si está instalada). Escríbelo en docs/.../YYYY-MM-DD-<nombre>-design.md. Verifica cada afirmación en pantalla contra el código del producto y las flags activas, y redáctala como lo hace el producto.
  2. Tablero de selección antes de cualquier edición del video. Muestra voces (con las líneas leídas en voz alta), sonidos de escritura, varias opciones de música, y borradores de aspecto o personajes, cada uno con un código (A1, B4, M1…). Renderiza los borradores visuales como composiciones pequeñas de tablero, publica la página de forma privada y espera las elecciones del director. Nunca elijas una voz, pista o aspecto en silencio.
  3. Construcción.
    • La copia y el tiempo viven en la configuración.
    • Las escenas, tomas y sonidos hacen referencia a nombres de HITS, nunca a números brutos.
    • Trabajo de cámara: lee camera.md.
  4. Previsualización en 720p (scripts/render.sh <Comp> <format> preview <nombre>-preview-vN-720p). Informa lo que verificaste, lo que no pudiste probar y cualquier cosa que hayas cambiado más allá de la solicitud.
  5. Finales solo después de la aprobación: tamaño completo, ambos formatos. Los renders largos se interrumpen si la máquina se duerme, así que verifica la alimentación primero.
  6. Confirma en la rama del video. Fusiona o sube solo cuando se te pida. Los videos anteriores deben mantener el render sin cambios.

Reglas de audio

ReglaPor qué
Renderiza la imagen silenciada, luego un --codec=wav separado, y luego scripts/mux.py (-15 LUFS más un limitador).El AAC dentro del render de Remotion retrasa toda la banda sonora 43 ms.
La música tiene licencia comercial o es generada, y cada archivo se registra en un CREDITS.md.Algunos paquetes de efectos de sonido "gratuitos" no tienen licencia para uso comercial.
Para ajustar una pista seleccionada: scripts/beatgrid.py track [bars] [arc] da el BPM y el tiempo fuerte. Establece TRACK_BPM, luego corta la pista con music-edit.py (compases completos, con crossfade en el tiempo fuerte) o fit-track.py (una ventana directa).El video se reajusta a la pista, no al revés.
Las voces provienen solo de un TTS con licencia comercial (Kokoro-82M tiene licencia Apache-2.0). Nunca uses say de macOS.La licencia de say es personal y no comercial.
Los efectos de sonido se generan de forma determinista. Añade cada nuevo sonido al final con su propio PRNG.De lo contrario, cada archivo posterior cambia.
Nunca llames a Math.random() en un render. Usa hash() de film-camera.tsx.Un fotograma debe renderizarse igual cada vez.

QA antes de entregar cualquier cosa

  • Verificación de tipos.
  • Volumen aproximado de -15 LUFS y pico verdadero por debajo de -1 dBTP (ffmpeg -af ebur128). El pico bruto del WAV se mantiene por debajo de 0.99, por lo que no hay recorte.
  • Los efectos de sonido caen en sus fotogramas de hit.
  • Cualquier código QR se decodifica tanto a 1080p como a 720p.
  • Renderiza imágenes fijas de cada sección cambiada en ambos formatos (Remotion renderStill) y míralas tú mismo. Los agentes revisores pasan por alto los bordes cortados, y una revisión de un modelo pequeño y rápido no es una revisión oficial.

Errores comunes

ErrorSolución
Movimiento vinculado a un fotograma, pulso o segundo brutoAñade un hit con nombre en sections.ts y haz referencia a él.
Un giro o inclinación de cámara que se filtra en tomas posterioresLas claves se propagan, así que restablece el campo (roll: 0).
Finales renderizados antes de la aprobaciónEnvía primero una previsualización en 720p.
Una voz, pista o aspecto que el director nunca escuchó o vioPonlo primero en el tablero de selección.
Un mp4 de una sola pasada con audioImagen silenciada, luego WAV, luego mux.
Trabajo temporal en /tmp para un video de varios díasEl sistema lo limpia. Usa una carpeta real de worktree.
One-liners de shell con $(...) o bucles rechazados en modo automáticoPon la lógica en un archivo de script.

Skills relacionados