summaryrefslogtreecommitdiff
path: root/bin/split-media-files.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/split-media-files.sh')
-rwxr-xr-xbin/split-media-files.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/bin/split-media-files.sh b/bin/split-media-files.sh
new file mode 100755
index 0000000..5f79c81
--- /dev/null
+++ b/bin/split-media-files.sh
@@ -0,0 +1,19 @@
+#!bash
+
+max_duration=$((4*3600))
+
+if [[ $# -ne 1 ]]; then
+ echo 1>&2 "Usage: $0 <media-file>"
+ exit 1
+fi
+
+input_file="$1"
+
+base="$(echo $input_file | perl -pe 's/(.*)\.([^.]*)$/$1/')"
+extension="$(echo $input_file | perl -pe 's/(.*)\.([^.]*)$/$2/')"
+if [[ $extension == "m4b" ]]; then
+ extension=m4a
+fi
+
+ffmpeg -i "${input_file}" -c copy -f segment -segment_time $max_duration \
+ "${base}-%03d.${extension}"