iSeveral bugfixes - bitreich-tv - Meme TV encoding and streaming Err bitreich.org 70
hgit clone git://bitreich.org/bitreich-tv git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-tv URL:git://bitreich.org/bitreich-tv git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-tv bitreich.org 70
1Log /scm/bitreich-tv/log.gph bitreich.org 70
1Files /scm/bitreich-tv/files.gph bitreich.org 70
1Refs /scm/bitreich-tv/refs.gph bitreich.org 70
1Tags /scm/bitreich-tv/tag bitreich.org 70
1LICENSE /scm/bitreich-tv/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 9955fec4d21435eae1aa98c8c7078932d192df5c /scm/bitreich-tv/commit/9955fec4d21435eae1aa98c8c7078932d192df5c.gph bitreich.org 70
1parent 3a8559a5c96734befbfdb580c7e8a2ab491ea6d4 /scm/bitreich-tv/commit/3a8559a5c96734befbfdb580c7e8a2ab491ea6d4.gph bitreich.org 70
hAuthor: Anders Damsgaard <anders@adamsgaard.dk> URL:mailto:anders@adamsgaard.dk bitreich.org 70
iDate: Tue, 11 Aug 2020 21:26:32 +0200 Err bitreich.org 70
i Err bitreich.org 70
iSeveral bugfixes Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M brtv-start.sh | 51 ++++++++++++++++++++----------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 33 insertions(+), 18 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/brtv-start.sh b/brtv-start.sh /scm/bitreich-tv/file/brtv-start.sh.gph bitreich.org 70
i@@ -1,12 +1,6 @@ Err bitreich.org 70
i #!/bin/sh Err bitreich.org 70
i-# generate title animations and start streaming server Err bitreich.org 70
i- Err bitreich.org 70
i-pass="$(gpg2 -q -d icecastpass.gpg)" Err bitreich.org 70
i- Err bitreich.org 70
i-if [ $# -ne 1 ]; then Err bitreich.org 70
i- printf 'usage: %s <memecache_path>\n' "$0" >&2 Err bitreich.org 70
i- exit Err bitreich.org 70
i-fi Err bitreich.org 70
i+# generate title animations and start streaming to server Err bitreich.org 70
i+# requirements: ffmpeg(1), convert(1) Err bitreich.org 70
i Err bitreich.org 70
i ### CONFIGURATION START Err bitreich.org 70
i Err bitreich.org 70
i@@ -44,6 +38,20 @@ title_display_time=5 Err bitreich.org 70
i Err bitreich.org 70
i ### CONFIGURATION END Err bitreich.org 70
i Err bitreich.org 70
i+pass="$(gpg2 -q -d icecastpass.gpg)" Err bitreich.org 70
i+ Err bitreich.org 70
i+die() { Err bitreich.org 70
i+ printf '%s: error: %s\n' "${0##*/}" "$1" >&2 Err bitreich.org 70
i+ exit 1 Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+regeximatch() { Err bitreich.org 70
i+ printf '%s' "$1" | grep -iEq "$2" Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+if [ $# -ne 1 ]; then Err bitreich.org 70
i+ die "usage: ${0##*/} <memecache_path>" Err bitreich.org 70
i+fi 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@@ -62,6 +70,7 @@ video_from_img() { Err bitreich.org 70
i Err bitreich.org 70
i title_slide() { Err bitreich.org 70
i img="$(basename "${1%.*}".png)" Err bitreich.org 70
i+ #echo "title_slide $1 -> $img" Err bitreich.org 70
i convert -size "$video_resolution" "xc:${bgcolor}" \ Err bitreich.org 70
i -pointsize 48 -fill "$fgcolor" \ Err bitreich.org 70
i -gravity center -draw "text 0,0 '#${img%.*}'" "$img" Err bitreich.org 70
i@@ -70,21 +79,28 @@ title_slide() { Err bitreich.org 70
i -i anullsrc=r=48000 \ Err bitreich.org 70
i -i "$img" \ Err bitreich.org 70
i -t "${title_display_time}" \ Err bitreich.org 70
i- $ffmpec_codec \ Err bitreich.org 70
i+ $ffmpeg_codec \ Err bitreich.org 70
i "$2" && rm "$img" 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 -max_muxing_queue_size 1024 "$2" Err bitreich.org 70
i+ printf 'encode %s -> %s\n' "$1" "$2"; ffmpeg -y -i "$1" $ffmpeg_codec -max_muxing_queue_size 1024 "$2" 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,jpeg,JPG,png,PNG}; do Err bitreich.org 70
i+for f in "$memecache"/*.jpg \ Err bitreich.org 70
i+ "$memecache"/*.jpeg \ Err bitreich.org 70
i+ "$memecache"/*.JPG \ Err bitreich.org 70
i+ "$memecache"/*.png \ Err bitreich.org 70
i+ "$memecache"/*.PNG; do Err bitreich.org 70
i out="${memecache_conv}/$(basename "${f%.*}.${video_ext}")" Err bitreich.org 70
i- if [ -e "$f" ] && [ ! -e "$out" ]; then Err bitreich.org 70
i+ if [ ! -f "$out" ]; then Err bitreich.org 70
i+ if ! regeximatch "$(file -ib "$f")" "^image\/"; then Err bitreich.org 70
i+ die "input image $f is invalid ($(file -b "$f"))" Err bitreich.org 70
i+ fi Err bitreich.org 70
i printf 'in: %s, out: %s\n' "$f" "$out" Err bitreich.org 70
i fit_img_16_9 "$f" "${out%.*}.jpg" Err bitreich.org 70
i video_from_img "${out%.${video_ext}}.jpg" "${out}" Err bitreich.org 70
i@@ -96,18 +112,17 @@ if [ ! -f "bitreich-tv.${video_ext}" ]; then Err bitreich.org 70
i title_slide bitreich-tv bitreich-tv.${video_ext} Err bitreich.org 70
i fi Err bitreich.org 70
i 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+# make title slides for video and converted images and encode all video clips 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"/*."${video_ext}"; do Err bitreich.org 70
i Err bitreich.org 70
i- title_path="${title}/$(basename "${f%.*}.webm")" Err bitreich.org 70
i- [ ! -e "$title_path" ] && title_slide "$f" "$title_path" Err bitreich.org 70
i+ title_path="${title}/$(basename "${f%.*}.${video_ext}")" Err bitreich.org 70
i+ [ ! -f "$title_path" ] && title_slide "$f" "$title_path" Err bitreich.org 70
i Err bitreich.org 70
i- out="${memecache_conv}/$(basename "${f%.*}.webm")" Err bitreich.org 70
i- [ ! -e "$out" ] && video_conv "$f" "$out" Err bitreich.org 70
i+ out="${memecache_conv}/$(basename "${f%.*}.${video_ext}")" Err bitreich.org 70
i+ [ ! -f "$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
.
Response:
text/plain