4.8 KiB
video2geoframes.py
version 🇫🇷
Programme Python permettant de générer un ensemble d'images géotaguées depuis une vidéo et une trace GPS.
Conçu pour faciliter la contribution à des projets de photo-cartographie de rue tels que Mapillary ou Panoramax.
Démarrage rapide
Rien de plus simple : rassemblez votre vidéo, votre trace GPS, lancez le script Python et suivez le guide !
En détail, le programme est entièrement construit autour d'une TUI ou Textual User Interface, qui permet de lancer facilement le traitement de la vidéo par la saisie pas-à-pas des paramètres.
La saisie est guidée par une aide textuelle indiquant les valeurs attendues.
Avant de lancer le script, vous avez besoin d'avoir :
- un fichier vidéo (export limité à 10000 images)
- connaître son horodatage exact (début) en temps local ou UTC
- un fichier de trace GPS propre couvrant la durée de la vidéo
- un dossier de travail.
Documentation
A venir.
Fonctionnalités
Le programme permet d'exécuter en un seul traitement les tâches suivantes :
- le séquençage de la vidéo selon un intervalle de temps
- l'horodatage incrémental de la séquence d'image
- l'export des images au format JPEG
- le géotaguage des images exportées à partir de la trace GPS.
Il inclut également :
- le support des vidéos timelapse
- le redimensionnement des images à une résolution inférieure à la vidéo d'origine tout en conservant le ratio
- l'ajout de métadonnées avec les tags EXIF
artist,make,modeletcopyright(cf. documentation ExifTool) - l'horodatage à la précision de la milliseconde
- le support du temps local décalé par rapport à UTC.
- l'ajout d'un décalage temporel pour corréler la vidéo et la trace GPS.
Lors de l'export, un sous-dossier nommé selon la vidéo est créé automatiquement dans le répertoire de sortie.
Fonctionnalités v1 / v2
| Fonctionnalité | v1-beta | v2-alpha9 |
|---|---|---|
| Support des vidéos timelapse | ✔️ | ✔️ |
| Écriture des tags EXIF | ✔️ | ✔️ |
| Support des tags étendus | ✔️ | ❌ |
| Support des millisecondes | ✔️ | ✔️ |
| Affichage de la progression | 🟡 brut | ✔️ |
| TUI multilingue 🇺🇳 | 🟡 limitée | ✔️ |
| Personnalisation de la configuration | ❌ | 🟡 partielle |
| Personnalisation qualité JPEG | ❌ | 🔄 planifiée |
| Paramétrage du traitement via TOML | ❌ | 🔄 planifié |
Langues
La TUI est multilingue grâce une base de "locales" sous forme de fichiers TOML (locales/*.toml) facilement extensible.
| Langue | Locale | Support | Mainteneur |
|---|---|---|---|
| 🇺🇸 Anglais | en_us |
✔️ 100 % | @lumathieu |
| 🇫🇷 Français | fr_fr |
✔️ 99 % | @lumathieu |
| 🇮🇹 Italien | it_it |
🔄 planifié | @lumathieu ? |
Versions
Voir Releases.
Installation
Pour installer le programme, il suffit de cloner le dépôt Git, d'installer les dépendances logicielles et de construire l'environnement Python. Il est recommandé d'utiliser un environnement virtuel (venv).
Python
L'ensemble du projet est développé et testé avec Python 3.11 (Windows x86-64).
Dépendances
Le script principal utilise les librairies Python suivantes (voir aussi requirements.txt) :
numpyopencv-pythonpiexiftomlkittqdm.
Il utilise également le programme ExifTool pour le géotaguage des images.
Appelée par une commande système, cette dépendance est prévue pour être supprimée dans les versions futures.
Compatibilité
Le code est conçu pour être indépendant de la plateforme.
A ce jour, le code a été "testé" sur les plateformes Windows et Linux (partiellement sous Debian / Ubuntu).
Contribution
A venir.
Si vous êtes intéressé pour contribuer au projet, vous pouvez envoyer un mail à campanu@luc-geo.fr.
Licence
Ce dépôt, à l'exception des dépendances, est sous licence GNU GPL v3.
Les dépendances sont incluses au dépôt pour le développement et restent sous leur licence d'origine
(voir dependencies/EXTRA_LICENSES.md).