Video Explicativo en Chino (Flujo Completo con Remotion)
Ejecutar los diez pasos en orden. El producto de cada paso es la entrada del siguiente. Prohibido saltar pasos y luego volver a completarlos.
Diez Reglas de Oro
- La duración la determina la voz en off, no el guion. El guion de referencia es solo una intención. Primero estimar la duración total basándose en la velocidad de habla medida (TTS en chino ~3.3 caracteres/segundo); si supera la duración objetivo, reducir el texto y hacerlo más coloquial, luego sintetizar por párrafos y medir la duración real de cada uno.
- El BPM debe medirse, no creerse el número dado por el usuario o el material de referencia. librosa a menudo reporta 104 BPM como 51.7 (la mitad). Se debe verificar de forma independiente con autocorrelación o cambiando los parámetros de onset, y tomar el valor que coincida con la percepción auditiva.
- Todos los cortes deben ajustarse al ritmo. El límite de un párrafo = el momento de finalización de la voz en off de ese párrafo, redondeado hacia arriba al ritmo más cercano. El número de fotograma =
round(beat * (60/BPM) * FPS), escrito en el código, no calculado en tiempo de ejecución. - Renderización determinista. Prohibido
Date.now(),Math.random(); cualquier animación debe derivarse conMath.sin(frame); el mismo fotograma debe ser idéntico píxel a píxel en cualquier renderización. - Fuente única de verdad para la línea de tiempo. Los párrafos, números de fotograma, desplazamientos de voz en off y fotogramas fijos de efectos de sonido solo existen en un
timeline.ts. Cambiar el número de caracteres del guion → volver a ejecutar el script de generación → sincronizar TS, nunca modificar manualmente en dos lugares. - Los saltos de línea de los subtítulos se agrupan por signos de puntuación. Primero dividir por
,;:。para obtener cláusulas y luego agruparlas. El ancho de línea se define con un contenedor de píxeles fijo (ej.width: 1460+whiteSpace: "pre"), prohibido usarmaxWidthpara que el contenido determine el contenedor. - Tres capas de audio separadas: BGM, voz, efectos de sonido con niveles independientes. Voz 0.8, BGM 0.24 como punto de partida. Verificar el pico después de la renderización; >0.95 indica riesgo de recorte.
- Revisar cada escena con un fotograma fijo antes de renderizar. Usar
npx remotion stillpara ver la composición. Renderizar el video completo sin ver antes los fotogramas equivale a repetir el trabajo. - Tres restricciones estrictas en Windows:
--propsdebe pasar un archivo (--props=props-nobgm.json), JSON en línea será alterado por el shell; ffmpeg 9 usar-fps_mode passthroughen lugar de-vsync; si los estilos no se aplican después de cambiar TSX, borrar primeronode_modules\.cache. - Primero entregar, luego evaluar. El video renderizado y las imágenes generadas se entregan al usuario tal cual. Los problemas solo se registran y explican, no se regeneran sin autorización.
Canalización de Diez Pasos
| # | Paso | Acción Clave | Producto |
|---|---|---|---|
| 1 | Desglose del tema | Definir la cadena de conocimiento, duración objetivo, relación de aspecto, tono para la audiencia | Una frase para el tema + acuerdo de duración/relación de aspecto |
| 2 | Guion de la explicación | Comprimir al número objetivo de caracteres siguiendo "gancho → modelo → deducción → conclusión → lección", hacerlo coloquial | Guion por párrafos (aprox. 6 párrafos, 50–70 caracteres cada uno) |
| 3 | Voz en off | Sintetizar cada párrafo de forma independiente, mismo timbre y parámetros; medir la duración real y f0 de cada párrafo | s1..sn.wav + tabla de duraciones de párrafos |
| 4 | Subtítulos | Generar SRT a partir de las duraciones de los párrafos, misma fuente que los puntos de corte de escena | subtitles.srt |
| 5 | Música de fondo (BGM) | Seleccionar o sintetizar, medir BPM y tabla de ritmos; cambiar si no es adecuada | bgm.wav + bgm.json (beats_sec) |
| 6 | Reordenar la línea de tiempo | Ajustar los límites de los párrafos a los ritmos, calcular el número total de fotogramas | timeline.json + timeline.ts |
| 7 | Efectos de sonido | Asignar un timbre a cada acción clave, sintetizar en código, fijar en el ritmo | sfx/*.wav + tabla de fotogramas fijos |
| 8 | Ingeniería visual | theme / components / timeline + componentes de escena por párrafo | Proyecto Remotion |
| 9 | Renderización y autoverificación | Fotogramas fijos por párrafo → video completo → medir pico real | out/*.mp4, fotogramas fijos de QA |
| 10 | Materiales de publicación | Portada (renderizada con código o herramienta de diseño), título, descripción, hashtags | Imagen de portada + publicacion.md |
Decisiones ante Conflictos
| Conflicto | Decisión |
|---|---|
| Conflicto entre el número de caracteres del guion y la duración objetivo | Reducir el guion, no cambiar la duración. Si la relación de compresión > 1.3, convertir a frases cortas coloquiales, manteniendo todos los puntos de conocimiento |
| El BPM/duración dado por el usuario no coincide con la medición real | Hacer según la medición real e informar activamente la diferencia (ej. "El estándar dice 110 BPM / 58s, medido 104 BPM / 53.65s"), y ofrecer una opción "¿Reordenar según el estándar?" |
| El estilo de la canción especificada por el usuario no coincide | Primero medir el BPM/espectro/pico real de esa canción y dar los datos, luego sintetizar un reemplazo, revelar el motivo de la desviación en la entrega |
| Conflicto entre la referencia visual y el estilo de la portada o plataforma | Separar ambas cosas: el cuerpo del video sigue las especificaciones visuales del usuario; la portada sigue la lógica de difusión de la plataforma, explicando la decisión |
Lista de Entrega
- Dos versiones del video final: con BGM / sin BGM (para plataformas con su propia biblioteca de música), mismo número de fotogramas y duración
- Subtítulos SRT (pueden ser externos, idénticos a los incrustados en el video)
- Documentación de entrega: tabla de videos finales, BPM y método de medición del ritmo, tabla de límites de párrafos, tabla de puntos de ritmo, guion, tabla de efectos de sonido, niveles de mezcla, estructura del proyecto, comandos de ejecución
- Portada (horizontal + vertical para la plataforma objetivo), múltiples opciones de título, múltiples versiones de descripción, hashtags
Archivos de Referencia
- Comandos, parámetros, métodos de verificación y rutas de productos para cada paso: references/pipeline.md
- Modelos adaptados para cada etapa y motivo de selección: references/models.md
- Esqueleto del proyecto, convenciones de theme/components/timeline, fórmula de sincronización, errores de renderizado: references/remotion-conventions.md
- Cambio de estilo de un video existente (fondo blanco plano a estilo cinematográfico oscuro, etc.): references/restyle-playbook.md