SMOLNET PORTAL home about changes
iAdd preliminary brtv script for converting media and starting server - bitreich-memestats - Bitreich meme statistics and graphs.	Err	bitreich.org	70
hgit clone git://bitreich.org/bitreich-memestats git://hg6vgqziawt5s4dj.onion/bitreich-memestats	URL:git://bitreich.org/bitreich-memestats git://hg6vgqziawt5s4dj.onion/bitreich-memestats	bitreich.org	70
1Log	/scm/bitreich-memestats/log.gph	bitreich.org	70
1Files	/scm/bitreich-memestats/files.gph	bitreich.org	70
1Refs	/scm/bitreich-memestats/refs.gph	bitreich.org	70
1Tags	/scm/bitreich-memestats/tag	bitreich.org	70
1LICENSE	/scm/bitreich-memestats/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 4cd41bb24ae99df1a7b018632619ed6357763f15	/scm/bitreich-memestats/commit/4cd41bb24ae99df1a7b018632619ed6357763f15.gph	bitreich.org	70
1parent 8b472486508e8fc511caba8c525d6519e1ee7383	/scm/bitreich-memestats/commit/8b472486508e8fc511caba8c525d6519e1ee7383.gph	bitreich.org	70
hAuthor: Anders Damsgaard <anders@adamsgaard.dk>	URL:mailto:anders@adamsgaard.dk	bitreich.org	70
iDate:   Sun, 19 Apr 2020 20:09:52 +0000	Err	bitreich.org	70
i	Err	bitreich.org	70
iAdd preliminary brtv script for converting media and starting server	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  A brtv-start.sh                       |     116 ++++++++++++++++++++++++++++++	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 116 insertions(+), 0 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/brtv-start.sh b/brtv-start.sh	/scm/bitreich-memestats/file/brtv-start.sh.gph	bitreich.org	70
i@@ -0,0 +1,116 @@	Err	bitreich.org	70
i+#!/bin/sh	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# mkv streaming server executable	Err	bitreich.org	70
i+# git://github.com/klaxa/mkvserver_mk2	Err	bitreich.org	70
i+bin=mkvserver_mk2	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# memecache source dir	Err	bitreich.org	70
i+memecache=../memecache	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# converted memecache dir	Err	bitreich.org	70
i+memecache_conv=memecache	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# title animations dir	Err	bitreich.org	70
i+title="title"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# desired ffmpeg codec flags	Err	bitreich.org	70
i+ffmpeg_codec="-c:v libx264 -c:a libvorbis -f matroska"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# port for streaming socket (combined stream hosted on port 8080)	Err	bitreich.org	70
i+commport=12345	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# target video resolution	Err	bitreich.org	70
i+video_resolution=1280x720	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# slide style	Err	bitreich.org	70
i+bgcolor=magenta	Err	bitreich.org	70
i+fcolor=white	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# show image memes for this duration [s]	Err	bitreich.org	70
i+image_display_time=10	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# show title slides for this duration [s]	Err	bitreich.org	70
i+title_display_time=5	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+fit_img_16_9() {	Err	bitreich.org	70
i+        convert -resize "$video_resolution"\> -size "$video_resolution" "$1" \	Err	bitreich.org	70
i+                xc:"$bgcolor" +swap -gravity center -composite "$2"	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+video_from_img() {	Err	bitreich.org	70
i+        ffmpeg -y \	Err	bitreich.org	70
i+                -f lavfi \	Err	bitreich.org	70
i+                -i anullsrc=r=48000 \	Err	bitreich.org	70
i+                -i "$1" \	Err	bitreich.org	70
i+                -t "00:${3}:00" \	Err	bitreich.org	70
i+                $ffmpeg_codec \	Err	bitreich.org	70
i+                "$2"	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+title_slide() {	Err	bitreich.org	70
i+        convert -size 640x480 xc:"$bgcolor" -pointsize 48 -fill "$fgcolor" \	Err	bitreich.org	70
i+                -gravity center -draw "text 0,0 '#${1%.*}'" "/tmp/${1%.*}.png"	Err	bitreich.org	70
i+        ffmpeg -y \	Err	bitreich.org	70
i+                -f lavfi \	Err	bitreich.org	70
i+                -i anullsrc=r=48000 \	Err	bitreich.org	70
i+                -i "/tmp/${1%.*}.png" \	Err	bitreich.org	70
i+                -t "00:${title_display_time}:00" \	Err	bitreich.org	70
i+                $ffmpec_codec\	Err	bitreich.org	70
i+                "$2"	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+video_conv() {	Err	bitreich.org	70
i+        ffmpeg -y -i "$1" $ffmpeg_codec "$2"	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+mkdir -p "$title"	Err	bitreich.org	70
i+mkdir -p "$memecache_conv"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# generate video from each image	Err	bitreich.org	70
i+for f in "$memecache"/*.jpg "$memecache"/*.png "$memecache"/*.JPG; do	Err	bitreich.org	70
i+        out="${memecache_conv}/$(basename "${f%.*}.mkv")"	Err	bitreich.org	70
i+        if [ ! -e "$out" ]; then	Err	bitreich.org	70
i+                fit_img_16_9 "$f" "${out%.*}.jpg"	Err	bitreich.org	70
i+                video_from_img "${out%.mkv}.jpg" "${out}" "${image_display_time}"	Err	bitreich.org	70
i+        fi	Err	bitreich.org	70
i+done	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# make title slides for video and converted images and encode to common codec	Err	bitreich.org	70
i+for f in "$memecache"/*.mkv \	Err	bitreich.org	70
i+         "$memecache"/*.mp4 \	Err	bitreich.org	70
i+                 "$memecache"/*.webm \	Err	bitreich.org	70
i+                 "$memecache_conv"/*.mkv; do	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        title_path="${title}/$(basename "${f%.*}.mkv")"	Err	bitreich.org	70
i+        [ ! -e "${title_path}" ] && title_slide "$f" "$title_path"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        out="${memecache_conv}/$(basename "${f%.*}.mkv")"	Err	bitreich.org	70
i+        [ ! -e "${out}" ] && video_conv "$f" "$out"	Err	bitreich.org	70
i+done	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# generate random playlist from converted memes and add title slides	Err	bitreich.org	70
i+find "$memecache_conv" -maxdepth 1 -name "*.mkv" -type f | sort -R | \	Err	bitreich.org	70
i+        sed "s/^/file '/;s/$/'/" | \	Err	bitreich.org	70
i+        awk -v titledir="$title" '	Err	bitreich.org	70
i+        function add_title(s) {	Err	bitreich.org	70
i+                sub(/\.\//, titledir"/", s);	Err	bitreich.org	70
i+                return s	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        {line=$0;	Err	bitreich.org	70
i+        print add_title($line);	Err	bitreich.org	70
i+        print $0}' > playlist	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+netcat -l -p "$commport" | $bin >/dev/null 2>&1 &	Err	bitreich.org	70
i+sleep 2	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+ffmpeg -f concat -safe 0 -i playlist \	Err	bitreich.org	70
i+        -f matroska \	Err	bitreich.org	70
i+        $ffmpeg_codec \	Err	bitreich.org	70
i+        -max_muxing_queue_size 9999 \	Err	bitreich.org	70
i+        tcp://localhost:$commport	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+pkill $bin	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/bitreich-memestats/commit/4cd...
Content-Typetext/plain; charset=utf-8