Skip to content
Back to skills

Video Matting

ASecurity

Détourage vidéo local pour {{COMPANY_NAME}} — isole une personne d'une vidéo et produit un calque alpha exploitable au montage (remplacement de décor, incrustation sur fond généré). S'appuie sur RobustVideoMatting en local (ONNX, gratuit, privé). À utiliser pour remplacer un décor, incruster un sujet sur un fond de marque, ou isoler un premier plan. L'incrustation et la lumière relèvent de `video-editing`.

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
content-marketingrustgogitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add Littlpinguin/marketing-cockpit-template --skill video-matting --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Video Matting?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Video Matting
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/littlpinguin-video-matting/badge)](https://www.skillsdirectory.com/skills/littlpinguin-video-matting)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: video-matting
description: Détourage vidéo local pour {{COMPANY_NAME}} — isole une personne d'une vidéo et produit un calque alpha exploitable au montage (remplacement de décor, incrustation sur fond généré). S'appuie sur RobustVideoMatting en local (ONNX, gratuit, privé). À utiliser pour remplacer un décor, incruster un sujet sur un fond de marque, ou isoler un premier plan. L'incrustation et la lumière relèvent de `video-editing`.
---

# video-matting — détourer une vidéo en local

**Gratuit et privé** : tout tourne en local (ONNX Runtime, pas de PyTorch requis, accélération CoreML sur Apple Silicon).

## Le principe qui décide de tout

Un détourage « se voit » quand le masque est **binaire** (bord franc) ou **instable** (contour qui frémit d'une image à l'autre). RobustVideoMatting règle les deux : alpha **continu** (vraies demi-transparences dans les cheveux) et **état récurrent** propagé d'une image à l'autre — mesuré plusieurs fois plus stable que les segmentations image-par-image des frameworks systèmes.

## Méthode

Poids publics : `rvm_resnet50_fp32.onnx` (~100 Mo) ou `rvm_mobilenetv3_fp32.onnx` (~14 Mo), dépôt officiel PeterL1n/RobustVideoMatting.

1. **Prendre `resnet50`** : meilleur détail capillaire, moins d'artefacts (et souvent plus rapide via CoreML, meilleure couverture d'opérateurs).
2. `downsample_ratio` : viser ~512 px sur le petit côté réduit (0,5 pour une source verticale ~576×1024 ; 0,25 pour de la 4K).
3. Composer **`fgr` + `pha`** (les deux sorties du modèle), pas `source × alpha` : le premier plan rendu est décontaminé du spill du décor.
4. Les 4 états récurrents s'initialisent à zéro et se repassent tels quels d'une frame à l'autre.

## ⚠️ RVM ne segmente QUE les personnes

Ni le bureau, ni le micro, ni les objets tenus. Deux compléments, légitimes tant que **la caméra est fixe** :

- **Meuble/bureau** : bande pleine en bas de cadre avec un dégradé vertical (~50 px) pour que la jonction ne se lise pas.
- **Objets tenus** : seuillage de luminance dans une **bande centrale** (sur toute la largeur, le seuillage ramasse le décor).

**Piège de lecture** : sur le masque seul, une manche ressemble à un meuble. **Toujours contrôler en compositant sur un fond uni**, jamais sur le masque brut.

## Contrôle qualité — systématique

Extraire l'alpha (`alphaextract`) et suivre sa moyenne par frame (`signalstats`) : chercher les décrochages (masque quasi vide → clignotement), les sauts brusques, le jitter. Normaliser selon la profondeur de pixel (12 bits = échelle 0-4095). Si un frémissement se voit : lissage temporel `tmix` sur 3 images.

## Export

- **ProRes 4444 avec `-alpha_bits 8`** (≈ 1 Go/min en 1080×1920). `-alpha_bits 16` décuple le débit pour rien.
- ⚠️ Certains encodeurs matériels **perdent silencieusement l'alpha** (sortie en `yuv420p` malgré la demande) : **vérifier le `pix_fmt` du fichier de sortie**.
- Garder la **résolution native** : tout upscale est de l'invention de détail — le faire une seule fois, au plus tard dans la chaîne.

## ⚠️ La leçon la plus chère : régénérer plutôt que rattraper une source molle

Quand la source est en basse définition et que le montage la recadre fortement (zooms ×2-3), le calque détouré restera **mou face à des plans générés en HD** — et aucun rattrapage (matte pleine résolution, débruitage, upscale IA) ne comblera l'écart de définition. **Vérifier la définition effective de la source avant de bâtir une architecture sur son détourage.** Le détourage garde son sens entre sources de définition équivalente ; sinon, régénérer le plan entier (→ `video-generation`) est la voie qui tient.

Autre échec documenté : un compositing local sujet/fond sans **light wrap** « se voit » toujours — l'incrustation et la lumière (halo, vignette, grain commun) se font dans l'éditeur (→ `video-editing`), pas en compositing ffmpeg.

## Ce que cette skill ne fait pas

- ❌ Incruster le fond et régler la lumière (→ `video-editing` : glow, vignette, grain commun, étalonnage)
- ❌ Générer le fond (→ `image-generation`)
- ❌ Le chroma key sur fond vert (l'éditeur le fait nativement)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…