Communitygithub.com

dung-video

Configura un ordenador para editar vídeos de YouTube con Claude Code y realiza ediciones básicas con la herramienta gratuita ffmpeg: instalar ffmpeg/Python, crear una carpeta de proyecto ordenada, recortar, unir, crear una versión vertical 9:16 para Shorts, subtítulos en vietnamita (.srt) con Whisper, nivelar el volumen, exportar con la configuración de subida recomendada por YouTube y capturar un fotograma para la miniatura.

¿Qué es dung-video?

Esta habilidad permite a los usuarios configurar un ordenador para editar vídeos de YouTube usando Claude Code y la herramienta gratuita 'ffmpeg'. Realiza ediciones básicas como recortar, unir clips, crear versiones verticales 9:16 para Shorts de YouTube, añadir subtítulos en vietnamita usando Whisper (a través de 'faster-whisper'), nivelar el volumen con 'loudnorm', exportar vídeos con la configuración de subida recomendada por YouTube y capturar fotogramas para miniaturas. Está diseñada para principiantes y creadores de contenido en vietnamita, pero puede ser utilizada por cualquier persona que hable inglés. La habilidad se ejecuta en Windows 10 (probado) y macOS (no probado aún). Es importante destacar que no requiere GPU: Whisper funciona en CPU. Todas las ediciones generan archivos nuevos en una carpeta 'exports/' respetando la regla de no sobrescribir archivos originales. El usuario debe confirmar cada instalación de software (ffmpeg, Python, faster-whisper) y revisar los subtítulos generados automáticamente, ya que Whisper puede cometer errores con nombres, números y acentos.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thegentleminh/thegentleminh-skills/tree/HEAD/plugins/dung-video/skills/dung-video

Preguntar en tu IA favorita

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

Documentación

Dựng video cơ bản (edición básica de vídeo con ffmpeg)

Ayudas a un creador principiante de YouTube a editar vídeos en su propio ordenador con ffmpeg (gratuito). Muchos usuarios son vietnamitas: si el usuario escribe en vietnamita, responde en vietnamita sencillo y hablado y mantén las palabras técnicas simples (di qué hace un comando, no cómo funciona).

Requisitos y limitaciones

Dile esto al usuario antes de instalar nada, y siempre que una solicitud necesite algo que falte.

  • Necesita: un plan de Claude de pago con Claude Code; ffmpeg (gratuito, instalado solo con el permiso del usuario). Subtítulos solo: Python 3.10+ y el paquete faster-whisper (unos cientos de MB, descargado una vez).
  • GPU: no es necesaria. Whisper funciona en la CPU cuando no hay tarjeta NVIDIA, por lo que los subtítulos para un vídeo largo son lentos.
  • SO probado: Windows 10 (comprobación de configuración en la aplicación de escritorio de Claude, y todos los comandos de recortar/unir/vertical/nivelar volumen/exportar). macOS: aún no probado.
  • Limitaciones: los subtítulos automáticos se equivocan con nombres, números y acentos regionales, por lo que el usuario debe revisar el archivo .srt. Solo ediciones básicas: sin efectos, texto animado ni música.
  • Qué se desactiva sin ello: sin Python/faster-whisper, todo excepto los subtítulos sigue funcionando.

Reglas (siempre)

  1. Nunca modifiques ni elimines los archivos originales del usuario. Lee desde raw/ (o donde esté el archivo del usuario); escribe cada resultado en exports/ con un nombre nuevo (por ejemplo exports/clip-cat.mp4). Nunca sobrescribas un archivo existente: añade -n a ffmpeg, o elige un nombre nuevo.
  2. Pregunta antes de instalar nada. Di qué es, por qué se necesita, y el comando exacto, luego espera un sí.
  3. Muestra el comando antes de ejecutarlo y di en una frase lo que hará. Para cualquier cosa que lleve más de un minuto (vídeos largos, subtítulos), dilo primero.
  4. Comprueba el archivo antes de editarlo con ffprobe (tamaño, fotogramas por segundo, duración, audio) para que el comando se ajuste al archivo.
  5. Pon entrecomilladas las rutas de los archivos (a menudo contienen espacios y letras vietnamitas). En Windows, prefiere barras inclinadas en las rutas de filtros de ffmpeg.
  6. Después de cada edición, dile al usuario dónde está el nuevo archivo y qué debe comprobar (reproducirlo, escuchar el principio y el final).
  7. No afirmes reglas de YouTube a las que no puedas señalar. Cuando esta habilidad cite a YouTube, la fuente está enlazada.

1. Comprobar el ordenador

Ejecuta, uno a uno:

  • ffmpeg -version y ffprobe -version
  • python --version (en macOS prueba también python3 --version) - solo necesario para subtítulos.

Si falta ffmpeg, ofrécete a instalarlo (pregunta primero):

  • Windows: winget install --id Gyan.FFmpeg -e
  • macOS (Homebrew): brew install ffmpeg (si falta brew, dirige al usuario a https://brew.sh y detente).

Si falta Python y el usuario quiere subtítulos:

  • Windows: winget install --id Python.Python.3.12 -e
  • macOS: brew install python

Después de instalar, es posible que el usuario necesite abrir una nueva terminal (o reiniciar Claude Code) antes de que se encuentre el comando. Vuelve a comprobarlo con ffmpeg -version.

2. Configurar una carpeta de proyecto

Crea, dentro de la carpeta en la que se abrió Claude Code:

raw/        originales (copia los vídeos aquí; nunca editarlos)
exports/    cada archivo final o intermedio
CLAUDE.md   notas sobre el canal, leídas por Claude Code al inicio de cada sesión

Si CLAUDE.md no existe, ofrécete a crearlo y haz al usuario 4 preguntas breves: tema del canal, idioma del vídeo, Shorts / vídeos largos / ambos, cámara habitual (móvil o cámara). Escribe un archivo breve como:

# Mi canal
- Tema: ...
- Idioma del vídeo: vietnamita
- Hago: vídeos largos y Shorts
- Grabo con: móvil
- Originales en raw/, archivos terminados en exports/

3. Ediciones básicas

Comprueba siempre la entrada primero: ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,r_frame_rate:format=duration -of default=nw=1 "raw/input.mp4"

Recortar (cắt một đoạn)

Re-codifica para que el corte caiga exactamente en el tiempo solicitado:

ffmpeg -n -ss 00:00:12 -to 00:01:30 -i "raw/input.mp4" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-cat.mp4"

Los tiempos pueden ser mm:ss o hh:mm:ss. Varios fragmentos = varios recortes, luego unir.

Unir (ghép nhiều clip)

  1. Comprueba cada clip con ffprobe. Si todos tienen el mismo ancho, alto y fotogramas por segundo, escribe exports/list.txt:
    file '../raw/clip1.mp4'
    file '../raw/clip2.mp4'
    
    luego: ffmpeg -n -f concat -safe 0 -i "exports/list.txt" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/ghep.mp4"
  2. Si difieren, escala y rellena cada uno al mismo tamaño y fotogramas en un solo paso (ejemplo para 2 clips a 1920x1080, 30 fps):
    ffmpeg -n -i "raw/a.mp4" -i "raw/b.mp4" -filter_complex "[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=30[v0];[1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=30[v1];[0:a]aresample=48000[a0];[1:a]aresample=48000[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/ghep.mp4"
    
    Si un clip no tiene pista de audio, díselo al usuario y añade silencio (anullsrc) en lugar de fallar.

Versión vertical para Shorts (khung dọc)

YouTube considera un vídeo como Short cuando es cuadrado o vertical y de hasta 3 minutos de duración, subido a un máximo de 1080p (Ayuda de YouTube 15424877, 10059070). 1080x1920 (9:16) es el tamaño vertical habitual; YouTube no publica un tamaño exacto en píxeles.

  • Recortar el centro (bueno cuando la persona está en el medio): ffmpeg -n -i "raw/input.mp4" -vf "crop=ih*9/16:ih,scale=1080:1920,setsar=1" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-doc.mp4"
  • Mantener todo el fotograma sobre un fondo desenfocado (bueno para grabaciones de pantalla o planos generales): ffmpeg -n -i "raw/input.mp4" -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,boxblur=20:2[bg];[0:v]scale=1080:-2[fg];[bg][fg]overlay=(W-w)/2:(H-h)/2,setsar=1[v]" -map "[v]" -map 0:a? -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-doc.mp4" Pregunta cuál quiere el usuario; si el sujeto está descentrado, ofrécete a mover el recorte (crop=ih*9/16:ih:X:0, X = borde izquierdo en píxeles).

Subtítulos en vietnamita (phụ đề)

Usa Whisper en el propio ordenador del usuario (gratuito, no se sube nada). Necesita Python y el paquete faster-whisper (aproximadamente unos cientos de MB con el modelo; pregunta primero): python -m pip install faster-whisper Luego ejecuta el script que viene con esta habilidad (ruta: la carpeta scripts junto a este SKILL.md): python "<carpeta habilidad>/scripts/phu_de.py" "raw/input.mp4" --lang vi --out "exports/input.srt" Escribe un archivo .srt. Dile al usuario que Whisper comete errores (nombres, números, acentos): debe abrir el .srt y corregirlo antes de usarlo. La primera ejecución descarga el modelo y es lenta. Para incrustar los subtítulos en la imagen (quemarlos), después de que el usuario haya corregido el .srt: ffmpeg -n -i "raw/input.mp4" -vf "subtitles=exports/input.srt:force_style='FontSize=18,Outline=2'" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a copy "exports/input-phude.mp4" (En Windows, mantén la ruta del .srt relativa y con barras inclinadas; una letra de unidad como C: debe escribirse C\: dentro del filtro). Muchos creadores suben el .srt a YouTube Studio en lugar de quemarlo, para que los espectadores puedan desactivarlo.

Nivelar el volumen (chuẩn âm lượng)

YouTube no publica un objetivo de sonoridad; del lado de los espectadores tiene un ajuste "Volumen estable" que iguala las partes fuertes y suaves (Ayuda de YouTube 14106294). Una opción común para vídeo en línea es aproximadamente -14 LUFS; di que es una opción común, no una regla de YouTube. Usa loudnorm de ffmpeg en dos pasadas (documentación de ffmpeg):

  1. Medir: ffmpeg -hide_banner -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null - Lee input_i, input_tp, input_lra, input_thresh del JSON al final.
  2. Aplicar con esos números: ffmpeg -n -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:linear=true,aresample=48000 -c:v copy -c:a aac -b:a 192k "exports/video-am-luong.mp4" No uses una sola pasada en un vídeo terminado: sigue ajustando el volumen durante el vídeo.

Exportar para YouTube (xuất file)

Sigue la configuración de codificación de subida recomendada por YouTube (Ayuda de YouTube 1722171): MP4 con inicio rápido, perfil H.264 High, progresivo, 4:2:0, GOP cerrado de la mitad de la tasa de fotogramas, 2 fotogramas B; audio AAC-LC a 48 kHz; color BT.709; misma tasa de fotogramas que la grabada. Tasas de bits de vídeo recomendadas para SDR: 1080p 8 Mbps (24-30 fps) o 12 Mbps (48-60 fps); 720p 5 / 7.5 Mbps; 1440p 16 / 24; 4K 35-45 / 53-68. Audio: estéreo 384 kbps (mono 128 kbps). Ejemplo para un vídeo de 1080p, 30 fps (GOP 15):

ffmpeg -n -i "exports/video.mp4" -c:v libx264 -profile:v high -pix_fmt yuv420p -b:v 8M -bf 2 -g 15 -flags +cgop -x264-params "colorprim=bt709:transfer=bt709:colormatrix=bt709" -color_range tv -c:a aac -b:a 384k -ar 48000 -movflags +faststart "exports/video-youtube.mp4"

Ajusta -b:v y -g (la mitad de la tasa de fotogramas) al vídeo; para 60 fps usa -b:v 12M -g 30. Mantén la tasa de fotogramas a la que se grabó el vídeo (no añadas -r).

Fotograma de miniatura (lấy khung hình)

ffmpeg -n -ss 00:00:42 -i "raw/input.mp4" -frames:v 1 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -q:v 2 "exports/khung-0042.jpg" Ofrece 3-4 fotogramas en diferentes momentos para que el usuario pueda elegir. Las reglas de las miniaturas de YouTube (tamaño, 16:9, JPG/PNG, tamaño de archivo) están en Ayuda de YouTube 72431.

Si algo sale mal

Esta habilidad fue escrita con Claude Code, por lo que puede tener errores, y cada ordenador es diferente. Cuando un paso falla, o el usuario dice que la habilidad hizo algo mal:

  1. Explica claramente, en vietnamita: qué falló y por qué, en una o dos frases. Sin trazas de pila sin procesar a menos que el usuario las pida.
  2. Lee esta habilidad y el comando que se ejecutó. Encuentra la causa (la lista a continuación cubre las comunes).
  3. Arrégialo y vuelve a ejecutar, escribiendo un archivo nuevo en exports/. Nunca toques ni sobrescribas los originales del usuario, ni siquiera mientras arreglas.
  4. Si la causa estaba en esta misma habilidad (un comando incorrecto o un paso faltante), dilo, y sugiere reportarlo para que se corrija para todos: https://github.com/thegentleminh/thegentleminh-skills/issues

Fallos comunes

  • 'ffmpeg' is not recognized / command not found: ffmpeg no está instalado o la terminal se abrió antes de instalarlo; abre una nueva terminal y vuelve a comprobar.
  • No such file or directory: comprueba la ruta y las comillas; lista la carpeta para encontrar el nombre exacto.
  • already exists. Exiting.: el nombre de salida está ocupado; elige un nombre nuevo (nunca sobrescribas).
  • Unknown encoder 'libx264': la compilación de ffmpeg carece de él; reinstala con los comandos de arriba.
  • Audio desincronizado después de recortar: vuelve a ejecutar el recorte con re-codificación (los comandos de arriba ya re-codifican).

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

anh-thanh-video

Turn photos into a video - a beat-synced photo edit (photos change on the beat with flash, pop, shake and snap-and-ease camera moves, like the "2 ảnh / 3 ảnh" templates but with any song the user owns and any number of photos), a gentle photo album (slow push toward faces, soft crossfades, title and captions), or a 2.5D "3D zoom" where near things move more than far things. Faces stay in frame, Vietnamese text done right, 9:16 / 16:9 / 1:1 / 4:5. Use for "biến ảnh thành video", "ghép ảnh thành video", "video ảnh theo nhạc", "photo slideshow", "mẫu capcut nhiều ảnh", "video kỷ niệm", "album ảnh cưới/gia đình", "ảnh 3D", product photo videos.

tach-nguoi

Person cut-out effects on your own clip - big text BEHIND the person (chữ sau lưng người), a freeze-frame character intro with a name card, freeze snap / comic freeze, and clones (phân thân, one take or two). Vietnamese text done right, placed automatically so it stays readable, inside each app's safe area, 9:16 or 16:9. Use when the user wants "text behind me", "chữ sau lưng", "chữ xuyên người", "giới thiệu nhân vật", "dừng hình", "freeze frame", "phân thân", "clone", or other cut-out effects on their own video.

video-giai-thich

Make a Vietnamese animated explainer video (9:16, TikTok / Reels / Shorts) from a topic or a question - "vì sao bầu trời màu xanh?", "lãi kép là gì?" - with a spoken-Vietnamese script, a voice (ElevenLabs, your own recording, or none), on-screen words that appear as they are spoken, and pictures animated in code and timed to the words. Five looks (riso print, chalkboard, newsprint, blueprint, poster). Use for "làm video giải thích", "video kiến thức", "video khoa học", "giải thích bằng hoạt hình", "explainer video in Vietnamese", "vibe coding animation", "video kiểu Vibe知识".

Skills relacionados