Communitygithub.com

1596941391qq/ai-openclaw-skeletons

Skill de post-production vidéo full-stack : Whisper (transcription) → auto-editor (suppression des silences) → ffmpeg (montage précis avec PIP, titres de chapitres, accélération, incrustation de sous-titres) → Remotion (animations) → HyperFrames (vidéos de marque). Idéal pour les tutos, les vidéos de présentation orale, les bandes-annonces et l’export multiplateforme.

Qu'est-ce que ai-openclaw-skeletons ?

Ce skill intègre six outils majeurs de post-production vidéo dans un flux de travail automatisé et piloté par IA. Il commence par transcrire l'audio en sous-titres SRT avec Whisper, puis supprime automatiquement les silences gênants grâce à auto-editor. Ensuite, ffmpeg permet un montage avancé : incrustation d’une loupe (PIP), titres de chapitres animés, accélération de segments et surlignage. Les sous-titres sont brûlés directement dans la vidéo avec un style chinois (Microsoft YaHei). Des animations d’intro/outro et des graphiques dynamiques peuvent être générées via Remotion, tandis que HyperFrames crée des vidéos de marque à partir de HTML/CSS/JS avec un avatar numérique optionnel (clé API HeyGen requise). Le tout aboutit à un export final optimisé pour YouTube, WeChat, Xiaohongshu, Twitter/X, LinkedIn avec des presets de résolution et de qualité (CRF 17, slow preset). Ce skill est conçu pour fonctionner avec les assistants IA comme Claude Code ou Cursor, et son code est entièrement adapté aux environnements Windows et Linux.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Video Editor Full — Skill de post-production vidéo full-stack

Skill de post-production vidéo tout-en-un intégrant 6 outils majeurs. De l’enregistrement brut au produit final, le tout piloté par IA.

Matrice des compétences

ModuleOutilUtilisationDépendance
TranscriptionWhisper (base/small/medium)Voice → SRTPython + openai-whisper
Suppression silencesauto-editorJump cut automatique des silencesPython + auto-editor
Montage précisffmpeg filter_complexLoupe PIP, titres de chapitres, accélération, surlignage drawboxffmpeg 7.0+
Sous-titresffmpeg subtitles filterIncrustation SRT (support chinois YaHei)ffmpeg + police
AnimationsRemotionIntro/outro, visualisation de données, graphiques animésNode.js 18+ + Remotion
Vidéo de marqueHyperFramesHTML/CSS→Vidéo, avatar numérique IANode.js + clé API HeyGen

Aperçu du flux de travail

┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│  Vidéo brute │────▶│  Analyse &   │────▶│  Planification  │
│              │     │  Transcription│     │  du contenu      │
└─────────────┘     └──────────────┘     └─────────────────┘
                                                   │
                    ┌──────────────────────────────┼──────────────────┐
                    ▼                              ▼                  ▼
            ┌──────────────┐            ┌─────────────────┐  ┌──────────────┐
            │ auto-editor  │            │ ffmpeg montage  │  │ Remotion     │
            │ Suppression  │            │ PIP+chapitre+   │  │ Intro/outro   │
            │ silences     │            │ accélération    │  │              │
            └──────┬───────┘            └────────┬────────┘  └──────┬───────┘
                   │                             │                   │
                   └─────────────────────────────┼───────────────────┘
                                                 ▼
                                        ┌─────────────────┐
                                        │  Incrustation   │
                                        │  sous-titres    │
                                        │  + export final │
                                        └─────────────────┘

Prérequis

# Obligatoire
pip install openai-whisper auto-editor
# ffmpeg doit être dans le PATH (recommandé 7.0+)
ffmpeg -version

# Optionnel : Remotion (animations intro/outro)
npx create-video@latest --blank

# Optionnel : HyperFrames (vidéo de marque)
# Nécessite une clé API HeyGen, voir templates/hyperframes-config.example.json

Détail des modules


Module 1 : Analyse & Transcription

Étape 1 : Métadonnées vidéo

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

À surveiller : résolution, framerate, durée, codec, débit.

Étape 2 : Extraction d’images clés (toutes les 5 secondes)

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

Analyse visuelle pour identifier les zones UI importantes, les limites de chapitres, les cibles pour la loupe.

Étape 3 : Transcription Whisper

import whisper
model = whisper.load_model("base")  # Pour le chinois, base suffit ; medium est plus précis mais plus lent
result = model.transcribe("audio.wav", language="zh")

Après génération du SRT, vérification manuelle obligatoire :

  • Noms propres (produits, termes techniques)
  • Alignement temporel (surtout en fin de vidéo, sujet à dérive)
  • Erreurs homophoniques

Module 2 : Suppression des silences avec auto-editor

# Utilisation de base : supprime tous les silences
auto-editor input.mp4 --margin 0.2s --output no_silence.mp4

# Mode conservateur : ne supprime que les silences de plus d’1 seconde
auto-editor input.mp4 --min-clip-length 1s --margin 0.3s --output no_silence.mp4

# Export de la timeline (sans rendu direct, pour montage ffmpeg ultérieur)
auto-editor input.mp4 --export timeline:api

Attention : auto-editor modifie la timeline vidéo. Les sous-titres doivent être générés ou réalignés après cette étape.

Ordre recommandé : Vidéo brute → auto-editor → Transcription/réalignement des sous-titres → Montage ffmpeg


Module 3 : Montage précis ffmpeg (cœur du skill)

3.1 Loupe PIP (picture-in-picture)

# Point clé : forcer le ratio d’aspect avec force_original_aspect_ratio pour éviter l’étirement
PIP_W, PIP_H = 300, 188  # Taille de la fenêtre PIP

# Extrait filter_complex :
# crop → scale (conserve le ratio) → pad (ajoute des bords noirs) → drawbox (cadre jaune)
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 Titres de chapitres (drawtext avec fondu)

# Affichage du titre au point de transition du chapitre, avec fondu entrée/sortie
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 Accélération

# Accélération vidéo
f"[vout]setpts=PTS/{SPEED}[vfinal]"
# Accélération audio (atempo : 0.5-2.0, au-delà il faut chaîner)
f"[0:a]atempo={SPEED}[afinal]"

3.4 Synchronisation des sous-titres

Après accélération, les timestamps des sous-titres doivent être ajustés :

new_start = original_start / SPEED
new_end = original_end / SPEED

3.5 Template de construction complet

Voir scripts/build_template.py


Module 4 : Animations Remotion

Idéal pour générer des intros, outros, transitions animées et visualisations de données.

# Initialisation d’un projet Remotion
npx create-video@latest my-intro --blank

# Écriture de l’animation dans src/Composition.tsx
# Rendu en MP4
npx remotion render src/index.ts MyComp out/intro.mp4

Les clips générés sont ensuite concaténés à la vidéo principale avec ffmpeg :

# Liste de concaténation
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

Installation du skill Remotion Agent :

# Skill officiel (recommandé)
git clone https://github.com/remotion-dev/skills.git ~/.claude/skills/remotion

Module 5 : Vidéo de marque HyperFrames

Convertit du HTML/CSS/JS en images vidéo, parfait pour les marques et la transformation de sites web en vidéo.

# Installation
npm install @anthropic-ai/hyperframes

# Utilisation de base : HTML → MP4
npx hyperframes render --input composition.html --output brand.mp4

Une clé API HeyGen est nécessaire pour utiliser la fonctionnalité d’avatar numérique. Le modèle de configuration se trouve dans templates/hyperframes-config.example.json.


Module 6 : Export final

Incrustation des sous-titres (dernière étape)

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

Export multiplateforme

PlateformeRésolutionRatioLimite de durée
YouTube1920x108016:9Aucune
WeChat Video1080x19209:1660s (recommandé)
Xiaohongshu1080x13504:55min
Twitter/X1280x72016:92:20
LinkedIn1920x108016:910min
# Exemple de recadrage vertical (16:9 → 9:16)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" -crf 18 vertical.mp4

Règles de qualité

  1. CRF 17 + preset slow — qualité standard pour les tutoriels
  2. yuv420p — compatible avec tous les lecteurs
  3. faststart — démarrage rapide pour la lecture en ligne
  4. lanczos — algorithme de redimensionnement privilégié
  5. Pas plus de 2 encodages — éviter la perte de génération
  6. Sous-titres incrustés en dernier — garantir l’alignement temporel

Pièges courants

  • Sur Windows, le chemin dans le filtre subtitles de ffmpeg doit utiliser / et les : doivent être échappés en \:
  • Whisper doit utiliser des chemins Windows (ne pas utiliser /tmp/)
  • atempo : gamme 0.5-2.0 ; au-delà, chaîner : atempo=2.0,atempo=1.5 = 3x
  • Si les proportions de la zone PIP cible et de la fenêtre ne correspondent pas, l’image est étirée ; utiliser force_original_aspect_ratio
  • auto-editor modifie la timeline ; les sous-titres précédents deviennent invalides
  • Si filter_complex est trop long pour la ligne de commande, utiliser -filter_complex_script pour écrire dans un fichier

Structure des fichiers

video-editor-skill-pack/
├── SKILL.md                          # Ce fichier
├── scripts/
│   ├── build_template.py             # Template de construction montage ffmpeg
│   ├── transcribe.py                 # Script de transcription Whisper
│   ├── adjust_srt_speed.py           # Ajustement temporel des sous-titres après accélération
│   └── analyze_frames.py             # Extraction et analyse d’images clés
├── templates/
│   ├── hyperframes-config.example.json
│   └── remotion-intro/               # Template d’intro Remotion (à compléter)
└── examples/
    └── tutorial-video-workflow.md     # Exemple de flux complet pour un tutoriel

Skills associés