]> code.delx.au - monosys/commitdiff
split-mvimg
authorJames Bunton <jamesbunton@delx.net.au>
Fri, 14 Jun 2019 11:02:57 +0000 (21:02 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Fri, 14 Jun 2019 11:02:57 +0000 (21:02 +1000)
split-mvimg [new file with mode: 0755]

diff --git a/split-mvimg b/split-mvimg
new file mode 100755 (executable)
index 0000000..c639743
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+if [ -z "$1" ]; then
+    echo "Usage: $0 MVIMG_xxx.jpg"
+    exit 1
+fi
+
+set -eu
+
+infile="$1"
+outvid="${infile%.*}.mp4"
+outpic="${infile#MV}"
+
+if ! [ -f "$infile" ]; then
+    echo "Missing input file: $infile"
+    exit 1
+fi
+
+if [ -f "$outvid" ] || [ -f "$outpic" ]; then
+    echo "Output files already exist! $outvid || $outpic"
+    exit 1
+fi
+
+size="$(stat -c '%s' "$infile")"
+revoffset="$(exiftool -m -p "\$MicroVideoOffset" "$infile")"
+if [ -z "$revoffset" ] || [ "$revoffset" -le 0 ]; then
+    echo "Invalid video offset: $revoffset"
+    exit 1
+fi
+offset=$((size - revoffset))
+
+dd if="$infile" of="$outvid" bs="$offset" skip=1
+dd if="$infile" of="$outpic" bs="$offset" count=1
+exiftool -overwrite_original -xmp:all= "$outpic"