在视频上叠加GPS数据
极致的骑行软件
目录
下载
从这里下载最新的可执行jar文件(gps-overlay-on-video.jar)。
需要安装java
来运行应用程序,如下所示:
java --add-opens java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -jar gps-overlay-on-video.jar
还有其他运行应用程序的选项,请参见如何运行部分。
在Windows下运行时,请确保使用32位Java JDK/JRE(由于xuggle库在64位环境下运行时存在bug)
概述
这个想法源于我购买了一台GoPro相机,并开始记录一些用GPS设备追踪的自行车骑行视频。 为了追踪骑行,我在手机上使用Strava应用程序或Garmin Edge 510。 看完视频后,有人问我为什么不在视频上显示速度和海拔信息? 很酷的想法,我想把通过GPS获得的各种遥测数据添加到视频上,但找不到在Mac上运行的软件。所以我决定自己写一个:) 生成的视频能够显示当前速度或实际海拔信息,最终在爬坡时显示坡度,或者当前心率区间。 主要关注骑行视频,但稍加努力,使用不同的仪表盘模板,就可以轻松创建适用于不同类型活动的仪表盘。
工具截图:
如何运行
发布的软件包定期在这里更新。
最简单的运行方法是只安装java
,然后执行:
run.sh
该脚本会下载github上发布的最新版本并运行。
如何使用
基本要求
实现目标的简要清单:
- 在地图上显示视频文件和轨迹,以帮助同步(移动)GPS数据到视频开头
- 添加各种仪表(拖放到视频面板中),如:速度、踏频、心率、海拔、加速度、温度等
- 添加并调整仪表(大小和位置)后,允许将配置保存为模板,方便下次直接加载模板创建新视频
- 最后,导出(或生成)带有所需仪表的新视频
所有信息都从GPS数据中提取,由于主要知道坐标和时间戳,很容易计算:
- 距离
- 速度
- 加速度
- 方向(指南针)
- 提供海拔图表
- 等等
使用Garmin设备(Edge 820)收集的遥测数据示例:
<trkpt lat="47.1512900" lon="8.7887940">
<ele>902.4</ele>
<time>2017-09-24T06:10:53Z</time>
<extensions>
<power>205</power>
<gpxtpx:TrackPointExtension>
<gpxtpx:atemp>8</gpxtpx:atemp>
<gpxtpx:hr>160</gpxtpx:hr>
<gpxtpx:cad>90</gpxtpx:cad>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>
致谢
该应用程序使用了其他人或组织创建的库和图像:
- JXMapViewer 用于显示地图和轨迹
- xuggle库 用于解码、编码和操作视频文件
- iconeden 提供了精美的图标包
- 数字真实字体 用于具有七段显示的仪表
资源
链接
有用的链接和信息
生成带GPS叠加的新视频
在同步视频流与GPS轨迹(通过移动参数)后,就可以生成新视频了:
以下是使用该软件生成的第一个视频(楚格山经典赛):
仪表盘构想
除了显示当前值的基本仪表类型(速度、踏频等)外,还引入了所谓的"图表类型"。 这些图表展示所有数据(例如海拔图表)以及当前值。
以下是最初的草图,展示了项目的起始阶段: