Go to file
2026-09-17 10:26:08 +02:00
docs ajout exemple 2026-09-17 10:23:50 +02:00
.gitignore version initiale 2026-09-17 10:21:28 +02:00
gpx_video.py version initiale 2026-09-17 10:21:28 +02:00
README.md mise en page 2026-09-17 10:26:08 +02:00
requirements.txt version initiale 2026-09-17 10:21:28 +02:00

GPX - Compteur de vitesse

Image extraite de la vidéo d'exemple (trajet Brest - Plabennec)

Script Python transformant une trace GPX en vidéo MP4 carrée 1024×1024, prête à être incrustée dans un autre montage.

Trace blanche sur fond noir, cercle blanc qui suit le trajet, compteur de vitesse à aiguille et noms des villes traversées.

Table des matières

Fonctionnalités

  • Lecture GPX 1.0 / 1.1 (points trkpt horodatés).
  • Vitesse issue de l'extension gpxtpx:speed (m/s, ex. GeoRide) si présente, sinon calculée à partir des distances et des temps ; lissage léger.
  • Vidéo accélérée à durée fixe (60 s par défaut) : le trajet complet est parcouru du début à la fin.
  • Compteur analogique 0-200 km/h (paramétrable), aiguille et vitesse numérique, placé automatiquement dans le coin le moins encombré par la trace ; l'aiguille part de 0 et y revient sur la première et la dernière seconde.
  • Villes traversées obtenues par géocodage inverse Nominatim (OpenStreetMap), affichées sur la carte dès le début, avec placement des étiquettes qui évite chevauchements et trace.
  • Cache des villes dans <trace>.villes.json : les exécutions suivantes n'accèdent plus au réseau.
  • Rendu anticrénelé (suréchantillonnage ×2), encodage H.264 yuv420p via ffmpeg, sans fichiers intermédiaires.

Installation

Prérequis : Python 3.10+ et ffmpeg accessible dans le PATH.

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Utilisation

python gpx_video.py Trajet_16-09-2026_15h38.gpx

Produit Trajet_16-09-2026_15h38.mp4 à côté du GPX.

Option Défaut Rôle
-o, --sortie nom du GPX en .mp4 fichier de sortie
--duree 60 durée de la vidéo (secondes)
--fps 30 images par seconde
--vmax 200 graduation max du compteur (km/h)
--sans-villes — ne pas géocoder ni afficher les villes

Exemple : python gpx_video.py trace.gpx -o balade.mp4 --duree 90 --fps 25

Notes :

  • Le premier lancement interroge Nominatim (1 requête/s, un point par km de trajet) : compter environ 1 s par km.
  • En cas d'erreurs réseau, la vidéo est générée sans villes et le cache n'est pas écrit. Supprimer <trace>.villes.json pour forcer un nouveau géocodage.

Structure du projet

gpx_video.py                        script principal (lecture GPX, villes, rendu, encodage)
requirements.txt                    dépendances Python (numpy, Pillow)
docs/exemple.png                    image extraite de la vidéo d'exemple (README)
Trajet_16-09-2026_15h38.gpx         trace d'exemple (GeoRide)
Trajet_16-09-2026_15h38.villes.json cache des villes de l'exemple
Trajet_16-09-2026_15h38.mp4         vidéo générée pour l'exemple