]> code.delx.au - transcoding/commitdiff
mkvmerge-set-chapters
authorJames Bunton <jamesbunton@delx.net.au>
Wed, 4 Jan 2017 11:12:03 +0000 (22:12 +1100)
committerJames Bunton <jamesbunton@delx.net.au>
Sat, 7 Jan 2017 02:26:46 +0000 (13:26 +1100)
mkvmerge-set-chapters [new file with mode: 0755]

diff --git a/mkvmerge-set-chapters b/mkvmerge-set-chapters
new file mode 100755 (executable)
index 0000000..4aade7f
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/bash -e
+
+if [ -z "$1" -o -z "$2" ]; then
+    echo "Usage: $0 videodir chapterdir destdir"
+    exit 1
+fi
+
+videodir="$(cd "$1" && pwd)"
+chapterdir="$(cd "$2" && pwd)"
+destdir="$(cd "$3" && pwd)"
+
+cd "$videodir"
+find . -type f | while read infile; do
+    if [ ! -r "$infile" ]; then
+        echo "Missing file $infile"
+        exit 1
+    fi
+
+    outfile="${destdir}/${infile}"
+    if [ -e "$outfile" ]; then
+        echo "Skipping $infile, it already exists in destination directory!"
+        continue
+    fi
+
+    chapterfile="${chapterdir}/${infile}.chapters"
+    if [ ! -e "$chapterfile" ]; then
+        echo "Skipping $infile, no chapters!"
+        continue
+    fi
+
+    mkvmerge \
+        -o "$outfile" \
+        --chapters "${chapterfile}" \
+        --no-chapters \
+        "$infile"
+done
+