Video GPS Tracker — مسار حركة من الفيديو
الأدوات
- exiftool (Python wrapper: pyexiftool) — يقرأ كل metadata + GPS streams
- gpxpy 1.6.2 — توليد ملف GPX قياسي
- folium 0.20.0 — خريطة HTML تفاعلية للمسار
- gopro-telemetry (npm) — GoPro GPMF parsing (للحركة المستمرة)
3 حالات
1. فيديو ثابت (نقطة واحدة) — iPhone/Samsung native
python
import exiftool
with exiftool.ExifToolHelper() as et:
meta = et.get_metadata('video.mp4')[0]
lat, lon = meta.get('Composite:GPSLatitude'), meta.get('Composite:GPSLongitude')
2. فيديو متحرك (مسار كامل) — GoPro / drone / dashcam
bash
GoPro GPMF stream → GPX
exiftool -ee -p gpx.fmt video.mp4 > track.gpx
Or for non-GoPro:
ffmpeg -i video.mp4 -map 0:d -codec copy -f data telemetry.bin
3. خريطة تفاعلية HTML
python
import gpxpy, folium
gpx = gpxpy.parse(open('track.gpx'))
pts = [(p.latitude, p.longitude) for tr in gpx.tracks for s in tr.segments for p in s.points]
m = folium.Map(location=pts[0], zoom_start=15)
folium.PolyLine(pts, color='red', weight=4).add_to(m)
folium.Marker(pts[0], popup='Start', icon=folium.Icon(color='green')).add_to(m)
folium.Marker(pts[-1], popup='End', icon=folium.Icon(color='red')).add_to(m)
m.save('track.html')
الناتج النهائي
track.gpx (قياسي — يفتح في Google Earth, Strava, Garmin)
track.html (خريطة + خط حركة + سرعة + الارتفاع)
- صور Frame كل 100 متر مع GPS pin
⚠️ نفس قاعدة EXIF
WhatsApp/Telegram يحذفون metadata.
أرسل الفيديو كـ "File" مش "Video" للحفاظ على GPS track.