diff options
-rwxr-xr-x | bin/process | 58 |
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- |