--- /dev/null
+PROJECT=test
+PROJECT_PATH=/mnt/video/rides
+LAYOUT=cycle.xml
+PROFILE=vp9
+GPX_FILE=track.gpx
+OVERLAY_SIZE=1920x1080
+OUTPUT=overlay.webm
--- /dev/null
+Docker version 28.0.1, build 068a01e
+
+`docker compose run gpx`
--- /dev/null
+{
+ "overlay": {
+ "_comment": "extension is .mov",
+ "input": [],
+ "output": ["-vcodec", "png"]
+ },
+ "quicktime": {
+ "_comment": "extension is .mov",
+ "input": ["-hwaccel", "auto"],
+ "output": ["-r", "50", "-vcodec", "qtrle", "-pix_fmt", "argb"]
+ },
+ "vp9": {
+ "_comment": "extension is .webm",
+ "input": [],
+ "output": ["-vcodec", "vp9", "-pix_fmt", "yuva420p"]
+ }
+}
--- /dev/null
+services:
+ gpx:
+ image: overlaydash/gopro-dashboard-overlay:0.125.0
+ container_name: gpx
+ command:
+ - "gopro-dashboard.py"
+ - "--config-dir"
+ - "/config"
+ - "--profile"
+ - ${PROFILE}
+ - "--use-gpx-only"
+ - "--gpx"
+ - ${GPX_FILE}
+ - "--layout"
+ - "xml"
+ - "--layout-xml"
+ - "/layouts/${LAYOUT}"
+ - "--overlay-size"
+ - ${OVERLAY_SIZE}
+ - ${OUTPUT}
+ volumes:
+ - ${PROJECT_PATH}/${PROJECT}:/work
+ - ${PWD}/config:/config
+ - ${PWD}/layouts:/layouts
--- /dev/null
+<layout>
+ <composite x="16" y="800" name="speed">
+ <component type="text" x="0" y="0" size="14">MPH</component>
+ <component type="metric" x="0" y="0" metric="speed" units="mph" dp="2" size="160" />
+ </composite>
+ <composite x="424" y="980" name="altitude">
+ <component type="text" x="70" y="0" size="16">BPM</component>
+ <component type="icon" x="0" y="0" file="heartbeat.png" size="64"/>
+ <component type="metric" x="70" y="18" metric="hr" dp="0" size="32" />
+ </composite>
+ <composite x="220" y="980" name="gradient">
+ <component type="text" x="70" y="0" size="16">SLOPE(%)</component>
+ <component type="icon" x="0" y="0" file="slope-triangle.png" size="64"/>
+ <component type="metric" x="70" y="18" metric="gradient" dp="0" size="32" />
+ </composite>
+ <composite x="16" y="980" name="altitude">
+ <component type="text" x="70" y="0" size="16">ALT(m)</component>
+ <component type="icon" x="0" y="0" file="mountain.png" size="64"/>
+ <component type="metric" x="70" y="18" metric="alt" dp="0" size="32" />
+ </composite>
+ <component type="journey_map" name="journey_map" x="1644" y="20" size="256" corner_radius="35" opacity="0.8"/>
+</layout>
+