]> Entropealabs - gpx-dashboards.git/commitdiff
initial commit
authorChristopher Coté <chris@entropealabs.com>
Fri, 14 Mar 2025 16:51:45 +0000 (12:51 -0400)
committerChristopher Coté <chris@entropealabs.com>
Fri, 14 Mar 2025 16:51:45 +0000 (12:51 -0400)
.env [new file with mode: 0644]
README.md [new file with mode: 0644]
config/ffmpeg-profiles.json [new file with mode: 0644]
docker-compose.yml [new file with mode: 0644]
layouts/cycle.xml [new file with mode: 0644]

diff --git a/.env b/.env
new file mode 100644 (file)
index 0000000..0ac557c
--- /dev/null
+++ b/.env
@@ -0,0 +1,7 @@
+PROJECT=test
+PROJECT_PATH=/mnt/video/rides
+LAYOUT=cycle.xml
+PROFILE=vp9
+GPX_FILE=track.gpx
+OVERLAY_SIZE=1920x1080
+OUTPUT=overlay.webm
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..72ced3d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+Docker version 28.0.1, build 068a01e
+
+`docker compose run gpx`
diff --git a/config/ffmpeg-profiles.json b/config/ffmpeg-profiles.json
new file mode 100644 (file)
index 0000000..3b340ca
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "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"]
+  }
+}
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644 (file)
index 0000000..d7a2cfe
--- /dev/null
@@ -0,0 +1,24 @@
+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
diff --git a/layouts/cycle.xml b/layouts/cycle.xml
new file mode 100644 (file)
index 0000000..409d0cc
--- /dev/null
@@ -0,0 +1,23 @@
+<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>
+