aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/process58
1 files changed, 58 insertions, 0 deletions
diff --git a/bin/process b/bin/process
new file mode 100755
index 0000000..7f2bea6
--- /dev/null
+++ b/bin/process
@@ -0,0 +1,58 @@
+#!/bin/sh
+set -eu
+
+cd "${LIVEDIR:-~/Public/live/}"
+
+makefile_pre() {
+ cat <<'EOF'
+.POSIX:
+FFMFLAGS = -hide_banner -loglevel warning
+
+
+
+.SUFFIXES:
+.SUFFIXES: .mpd .webmx
+
+.mpd.webmx:
+ cd $(?D) && ffmpeg $(FFMFLAGS) -i $(<F) $(*F).webm
+ touch $@
+
+
+all:
+EOF
+}
+
+makefile_post() {
+ cat <<'EOF'
+
+sources.webmx = $(sources.mpd:.mpd=.webmx)
+
+all: $(sources.webmx) $(combined.webmx)
+
+$(combined.webmx):
+ ffmpeg $(FFMFLAGS) `printf ' -i %s' $?` $*.webm
+ ln $*.webm queue/$(*D).webm
+ touch $@
+EOF
+}
+
+mkdeps() {
+ find data/*/*/live.mpd | varlist 'sources.mpd'
+ find data/*/*/live.mpd | cut -d/ -f1 | sed 's|$|/combined.webmx|' |
+ LANG=POSIX.UTF-8 sort | uniq | varlist 'combined.webmx'
+ printf '\n'
+
+ find data/*/*/live.mpd | sed 's/^\(.*\)\.mpd$/\1.webmx: \1.mpd/'
+ find data/*/*/live.mpd | sed 's/^\(.*\)\.mpd$/\1.webm: \1.webmx/'
+ printf '\n'
+
+ find data/*/*/live.mpd | sed 's/\.mpd$/.webm/' | LANG=POSIX.UTF-8 sort |
+ awk -F/ '{ printf "%s/combined.webmx:\t%s\n", $1, $0 }'
+}
+
+
+{
+ makefile_pre
+ mkdeps
+ makefile_post
+} | make -f-