Communitygithub.com

1596941391qq/ai-openclaw-skeletons

Habilidad de postproducción de video full-stack: transcripción Whisper → eliminación de silencios con auto-editor → edición precisa con ffmpeg (PIP/lupa, títulos por capítulos, aceleración, incrustación de subtítulos) → animaciones con Remotion → videos de marca con HyperFrames.

¿Qué es ai-openclaw-skeletons?

Esta habilidad de postproducción de video full-stack, diseñada para agentes de IA como Claude Code, Cursor o Codex, integra seis potentes módulos en un flujo de trabajo automatizado para transformar grabaciones de pantalla en videos pulidos listos para publicar. Comienza con la transcripción de audio a subtítulos SRT usando Whisper (base/small/medium), optimizada para contenido en chino e inglés. Luego, emplea auto-editor para eliminar automáticamente silencios y pausas incómodas, generando cortes de salto (jump cuts) que mantienen el ritmo visual. El núcleo del procesamiento recae en ffmpeg con filter_complex, permitiendo añadir efectos avanzados como lupa PIP (picture-in-picture), títulos de capítulo con fade, aceleración de video/audio y resaltado de regiones con drawbox. Para animaciones de cabeceras, transiciones y gráficos dinámicos, se apoya en Remotion, renderizando fragmentos que se concatenan al video principal. Finalmente, HyperFrames convierte HTML/CSS/JS en videos de marca, con soporte opcional para avatares digitales mediante API de HeyGen. La habilidad también maneja la incrustación final de subtítulos y la exportación optimizada para múltiples plataformas (YouTube, WeChat, Xiaohongshu, Twitter, LinkedIn) con configuraciones de resolución y relación de aspecto específicas. Incluye scripts auxiliares, templates de configuración y un flujo de trabajo claro que evita pérdidas de calidad y asegura la sincronización de la línea de tiempo tras cada etapa.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/1596941391qq/ai-openclaw-skeletons/tree/HEAD/Packs/video-editor-skill-pack

Preguntar en tu IA favorita

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

Documentación

Video Editor Full — Habilidad de postproducción de video full-stack

Integra 6 potentes capacidades en una habilidad unificada de postproducción de video. Desde la grabación de pantalla hasta la publicación del producto final, todo impulsado por IA.

Matriz de capacidades

MóduloHerramientaPropósitoDependencia
TranscripciónWhisper (base/small/medium)Voz → subtítulos SRTPython + openai-whisper
Eliminación de silenciosauto-editorJump cuts automáticos de pausasPython + auto-editor
Edición precisaffmpeg filter_complexLupa PIP, títulos de capítulo, aceleración, resaltado drawboxffmpeg 7.0+
Subtítulosfiltro subtitles de ffmpegIncrustación SRT (compatible con Microsoft YaHei)ffmpeg + fuentes
AnimaciónRemotionCabeceras, transiciones, visualización de datos, gráficos dinámicosNode.js 18+ + Remotion
Video de marcaHyperFramesHTML/CSS → video, avatar digitalNode.js + clave API de HeyGen

Resumen del flujo de trabajo

┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│  Video original  │────▶│  Análisis y      │────▶│  Planificación   │
└─────────────┘     └──────────────┘     └─────────────────┘
                                                   │
                    ┌──────────────────────────────┼──────────────────┐
                    ▼                              ▼                  ▼
            ┌──────────────┐            ┌─────────────────┐  ┌──────────────┐
            │ auto-editor  │            │ ffmpeg edición  │  │ Remotion     │
            │ Elim. silencio│            │ PIP+título+vel. │  │ Cabeceras    │
            └──────┬───────┘            └────────┬────────┘  └──────┬───────┘
                   │                             │                   │
                   └─────────────────────────────┼───────────────────┘
                                                 ▼
                                        ┌─────────────────┐
                                        │  Incrustación   │
                                        │  subtítulos y   │
                                        │  exportación    │
                                        └─────────────────┘

Requisitos previos

# Obligatorio
pip install openai-whisper auto-editor
# ffmpeg debe estar en PATH (se recomienda 7.0+)
ffmpeg -version

# Opcional: Remotion (animaciones de cabecera/cierre)
npx create-video@latest --blank

# Opcional: HyperFrames (videos de marca)
# Requiere clave API de HeyGen, ver templates/hyperframes-config.example.json

Explicación detallada de módulos


Módulo 1: Análisis y transcripción

Paso 1: Metadatos del video

ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

Prestar atención a: resolución, framerate, duración, codec, bitrate.

Paso 2: Extraer fotogramas clave (cada 5 segundos)

mkdir -p frames
ffmpeg -i input.mp4 -vf "fps=1/5" -q:v 2 frames/frame_%03d.jpg

Utilizar análisis visual para determinar áreas clave de la interfaz, límites de capítulos y objetivo de la lupa.

Paso 3: Transcripción con Whisper

import whisper
model = whisper.load_model("base")  # Para chino, base es suficiente; medium es más preciso pero más lento
result = model.transcribe("audio.wav", language="zh")

Tras generar el SRT, es necesario corregir manualmente:

  • Nombres propios (nombres de productos, términos técnicos)
  • Alineación de la línea de tiempo (especialmente en la segunda mitad, donde puede desviarse)
  • Errores de homófonos

Módulo 2: Eliminación de silencios con auto-editor

# Uso básico: eliminar todas las pausas
auto-editor input.mp4 --margin 0.2s --output no_silence.mp4

# Modo conservador: solo eliminar pausas de más de 1 segundo
auto-editor input.mp4 --min-clip-length 1s --margin 0.3s --output no_silence.mp4

# Exportar línea de tiempo (sin renderizar directamente, para uso posterior en ffmpeg)
auto-editor input.mp4 --export timeline:api

Nota: Después de eliminar silencios con auto-editor, la línea de tiempo cambia. Los subtítulos deben generarse o realinearse después de la eliminación de silencios.

Orden recomendado: Video original → auto-editor → Transcripción/alineación de subtítulos → Edición precisa con ffmpeg


Módulo 3: Edición precisa con ffmpeg (núcleo)

3.1 Lupa PIP (picture-in-picture)

# Clave: usar force_original_aspect_ratio en el área crop para evitar estiramientos
PIP_W, PIP_H = 300, 188  # Dimensiones de la ventana PIP

# Fragmento de filter_complex:
# crop → scale (mantener relación de aspecto) → pad (rellenar con negro) → drawbox (borde amarillo)
f"[pip{i}]crop={cw}:{ch}:{cx}:{cy},"
f"scale={PIP_W}:{PIP_H}:force_original_aspect_ratio=decrease,"
f"pad={PIP_W}:{PIP_H}:(ow-iw)/2:(oh-ih)/2:color=0x1a1a2e,"
f"drawbox=x=0:y=0:w={PIP_W}:h={PIP_H}:color=yellow:t=2"
f"[pip{i}s]"

3.2 Títulos de capítulo (fade in/out con drawtext)

# Mostrar título en el punto de cambio de capítulo, con fade
f"drawtext=text='{title}':"
f"fontfile='C\:/Windows/Fonts/msyh.ttc':"
f"fontsize=28:fontcolor=white:borderw=3:[email protected]:"
f"x=(w-text_w)/2:y=30:"
f"alpha='if(lt(t,{start}),0,if(lt(t,{start}+0.4),(t-{start})/0.4,"
f"if(lt(t,{end}-0.4),1,if(lt(t,{end}),({end}-t)/0.4,0))))':"
f"enable='between(t,{fade_in},{fade_out})'"

3.3 Aceleración

# Acelerar video
f"[vout]setpts=PTS/{SPEED}[vfinal]"
# Acelerar audio (rango de atempo 0.5-2.0; para más, se necesita en cadena)
f"[0:a]atempo={SPEED}[afinal]"

3.4 Sincronización de la línea de tiempo de subtítulos

Tras la aceleración, los códigos de tiempo de los subtítulos deben ajustarse:

nuevo_inicio = original_inicio / SPEED
nuevo_fin = original_fin / SPEED

3.5 Plantilla de construcción completa

Ver scripts/build_template.py


Módulo 4: Fragmentos de animación con Remotion

Adecuado para generar cabeceras, créditos, transiciones animadas y visualizaciones de datos.

# Inicializar proyecto Remotion
npx create-video@latest my-intro --blank

# Escribir animación en src/Composition.tsx
# Renderizar a MP4
npx remotion render src/index.ts MyComp out/intro.mp4

Los fragmentos generados se concatena al video principal con ffmpeg:

# Lista de concat
echo "file 'intro.mp4'" > list.txt
echo "file 'main.mp4'" >> list.txt
echo "file 'outro.mp4'" >> list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy final.mp4

Instalación de habilidad Remotion Agent:

# Habilidad oficial (recomendado)
git clone https://github.com/remotion-dev/skills.git ~/.claude/skills/remotion

Módulo 5: Videos de marca con HyperFrames

Renderiza HTML/CSS/JS en fotogramas de video, ideal para promoción de marca, sitios web a video.

# Instalación
npm install @anthropic-ai/hyperframes

# Uso básico: HTML → MP4
npx hyperframes render --input composition.html --output brand.mp4

Se requiere clave API de HeyGen para usar la función de avatar digital. La plantilla de configuración se encuentra en templates/hyperframes-config.example.json.


Módulo 6: Exportación final

Incrustación de subtítulos (último paso)

ffmpeg -y -i video_no_sub.mp4 \
  -vf "subtitles='srt_path':force_style='FontSize=13,FontName=Microsoft YaHei,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2,Shadow=1,MarginV=22,Bold=1'" \
  -c:v libx264 -preset slow -crf 17 \
  -c:a copy -pix_fmt yuv420p -movflags +faststart \
  output.mp4

Exportación para múltiples plataformas

PlataformaResoluciónRelación de aspectoLímite de duración
YouTube1920x108016:9Sin límite
WeChat Video1080x19209:1660s (recomendado)
Xiaohongshu1080x13504:55 min
Twitter/X1280x72016:92:20
LinkedIn1920x108016:910 min
# Ejemplo de recorte vertical (16:9 → 9:16)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" -crf 18 vertical.mp4

Pautas de calidad

  1. CRF 17 + preset slow — Calidad estándar para videos tutoriales
  2. yuv420p — Compatible con todos los reproductores
  3. faststart — Reproducción web instantánea
  4. lanczos — Algoritmo de escalado preferido
  5. No más de 2 codificaciones — Evitar pérdida generacional
  6. Subtítulos al final — Asegurar la alineación de la línea de tiempo

Errores comunes

  • En Windows, las rutas en el filtro subtitles de ffmpeg necesitan / y los : deben escparse con \:
  • Whisper en Windows debe usar rutas de Windows (no se puede usar /tmp/)
  • El rango de atempo es 0.5-2.0; para más, se necesita en cadena: atempo=2.0,atempo=1.5 = 3x
  • Si la proporción del área crop de PIP y la ventana objetivo no coinciden, se produce estiramiento; es obligatorio usar force_original_aspect_ratio
  • Después de cambiar la línea de tiempo con auto-editor, los subtítulos anteriores quedan invalidados
  • Si filter_complex es demasiado largo para pasarlo por línea de comandos, escribir en un archivo con -filter_complex_script

Estructura de archivos

video-editor-skill-pack/
├── SKILL.md                          # Este archivo
├── scripts/
│   ├── build_template.py             # Plantilla de construcción de edición ffmpeg
│   ├── transcribe.py                 # Script de transcripción Whisper
│   ├── adjust_srt_speed.py           # Ajuste de velocidad de línea de tiempo SRT
│   └── analyze_frames.py             # Extracción y análisis de fotogramas clave
├── templates/
│   ├── hyperframes-config.example.json
│   └── remotion-intro/               # Plantilla de cabecera Remotion (pendiente de completar)
└── examples/
    └── tutorial-video-workflow.md    # Ejemplo de flujo de trabajo completo para video tutorial

Skills relacionados