GreenScreenVideotoAlphaPNGs : Un pipeline d’images transparentes
GreenScreenVideotoAlphaPNGs sépare acquisition vidéo, extraction des images et suppression du fond de l’encodage final. Les PNG RGBA servent de sortie intermédiaire vers un GIF ou une vidéo avec canal alpha.
Langages du dépôtC++ 57.96%5
Parts calculées à partir des octets GitHub Linguist.
| Langage | % | Octets |
|---|---|---|
| C++ | 41 566 | |
| Python | 23 177 | |
| JavaScript | 5 687 | |
| PowerShell | 673 | |
| Shell | 610 |
Aperçu
Pourquoi il existe
Pipeline de traitement OpenCV convertissant des vidéos fond vert en séquences PNG avec canal alpha.
Cas d’usage
Préparation d'assets d'animation 2D pour la réalité augmentée.
Démarrage
Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.
.\install.ps1
uv run greenscreen --helpbash install.sh
uv run greenscreen --help$env:SKIP_APNGLIB='1'; uv sync --extra dev$env:SKIP_APNGLIB='0'; uv sync --extra devRéférences du dépôt
Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.
Prérequis et premier essai
Quick start (uv)
README.md
Prerequisites
README.md
- Python 3.12+ (repo pins .python-version to 3.12 for uv).
- ffmpeg on PATH for fast frame extract and for gif –fast-ffmpeg / video. A fallback binary can come from imageio-ffmpeg if PATH has no ffmpeg.
Configuration et utilisation
CLI
README.md
Legacy entry points still work and forward to the same CLI:
- python GreenVideotoAlphaPNGs.py → greenscreen convert
- python GIFGenerator.py → greenscreen gif
- python VideoGenerator.py → greenscreen video
Fonctions et composants 2
- Étape de conversion
- La commande Typer convert délègue à run_convert. Elle accepte une vidéo locale ou un lien et peut privilégier FFmpeg ou imposer OpenCV. Le module chroma traite la transparence séparément de l’acquisition.
- Choix d’encodage
- gif et video prennent un dossier de PNG. Le GIF propose une palette FFmpeg; video accepte qtrle ou prores_4444. Cette étape permet de changer cadence et format sans recommencer l’acquisition.
Architecture
Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.
- Vidéo ou lien
- Extraction des images
- Suppression du fond
- Séquence PNG RGBA
- Encodeur GIF
- Encodeur vidéo alpha
Liens vérifiés dans le dépôt.
Mermaid Diagramme interactif (chargement à l’ouverture)
Vue générale des composants et des échanges vérifiés dans le dépôt.

flowchart LR
n0["Vidéo ou lien"]
n1["Extraction des images"]
n2["Suppression du fond"]
n3["Séquence PNG RGBA"]
n4["Encodeur GIF"]
n5["Encodeur vidéo alpha"]
n0 --> n1
n1 --> n2
n2 --> n3
n3 --> n4
n3 --> n5
Version texte du diagramme
- Vidéo ou lien → Extraction des images
- Extraction des images → Suppression du fond
- Suppression du fond → Séquence PNG RGBA
- Séquence PNG RGBA → Encodeur GIF
- Séquence PNG RGBA → Encodeur vidéo alpha
Suivre un parcours dans le code
Suivez cmd_convert vers run_convert, puis utilisez ses PNG dans cmd_video. Conserver ces images permet d’inspecter les contours de transparence avant que la compression les masque.
Types et structure des fichiers
2 types déclarés, dont 2 dans l’aperçu des relations de base.
Diagramme des types
classDiagram
direction TB
class t6f7d26235a07["CHUNK"] {
<<struct>>
}
class t05c53bd05b93["APNGFrame"] {
<<struct>>
}
Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.
Index des types
CHUNK(struct) ·lib/APNGLib_fix/APNGLib/APNGLib.cpp:78APNGFrame(struct) ·lib/APNGLib_fix/APNGLib/APNGLib.cpp:79
Référence
21 / 21 fichiers admissibles lus (45 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.
Ce que couvre l’analyse
Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.
Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.
Carte des fichiers
flowchart TD
root["GreenScreenVideotoAlphaPNGs"]
f0["src/greenscreen/chroma.py"]
root --> f0
f1["src/greenscreen/cli.py"]
root --> f1
f2["src/greenscreen/video_pipeline.py"]
root --> f2
f3["GIFGenerator.py"]
root --> f3
f4["GreenVideotoAlphaPNGs.py"]
root --> f4
f5["README.md"]
root --> f5
f6["VideoGenerator.py"]
root --> f6
f7["install.sh"]
root --> f7
f8["pyproject.toml"]
root --> f8
f9["requirements.txt"]
root --> f9
f10["setup.py"]
root --> f10
f11["tests/test_chroma.py"]
root --> f11
f12["tests/test_cli_smoke.py"]
root --> f12
f13["lib/APNGLib_fix/setup.py"]
root --> f13
f14["src/greenscreen/__init__.py"]
root --> f14
f15["src/greenscreen/convert.py"]
root --> f15