Introduction
Introduction Statistics Contact Development Disclaimer Help
Remove old wip script - bitreich-tv - Meme TV encoding and streaming
git clone git://bitreich.org/bitreich-tv git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfr…
Log
Files
Refs
Tags
LICENSE
---
commit 02c0fc491be147c4438d80ca59557b02fdffce21
parent ac639f0d7f8feadca0ef246d65bcc039fd73e90a
Author: Anders Damsgaard <[email protected]>
Date: Sun, 16 Aug 2020 22:20:50 +0200
Remove old wip script
Diffstat:
D brtv-start.sh | 166 -----------------------------…
1 file changed, 0 insertions(+), 166 deletions(-)
---
diff --git a/brtv-start.sh b/brtv-start.sh
@@ -1,166 +0,0 @@
-#!/bin/sh
-# generate title animations and start streaming to server
-# requirements: ffmpeg(1), convert(1)
-
-### CONFIGURATION START
-
-# intermediate playlist file
-playlist="playlist_$(date +%Y-%m-%d)"
-
-# memecache source dir
-memecache="$1"
-
-# converted memecache dir
-memecache_conv="memecache_conv"
-
-# title animations dir
-title="title"
-
-# ffmpeg flags for generated videos
-video_ext="webm"
-ffmpeg_codec="-loglevel error -acodec libopus -b:a 96K -vcodec libvpx -b:v 64k…
-out_video="brtv_$(date +%Y-%m-%d).${video_ext}"
-#out_video_duration="24:00:00"
-out_video_duration="00:05:00"
-
-# target video resolution
-video_resolution=1280x720
-
-# slide style
-bgcolor=magenta
-fcolor=white
-
-# show image memes for this duration [s]
-image_display_time=10
-
-# show title slides for this duration [s]
-title_display_time=5
-
-### CONFIGURATION END
-
-pass="$(gpg2 -q -d icecastpass.gpg)"
-
-die() {
- printf '%s: error: %s\n' "${0##*/}" "$1" >&2
- exit 1
-}
-
-regeximatch() {
- printf '%s' "$1" | grep -iEq "$2"
-}
-
-if [ $# -ne 1 ]; then
- die "usage: ${0##*/} <memecache_path>"
-fi
-
-fit_img_16_9() {
- convert -resize "$video_resolution"\> -size "$video_resolution" "$1" \
- xc:"$bgcolor" +swap -gravity center -composite "$2"
-}
-
-video_from_img() {
- printf 'image to video %s -> %s\n' "$1" "$2"
- ffmpeg -y \
- -f lavfi \
- -i anullsrc=r=48000 \
- -i "$1" \
- -t "${image_display_time}" \
- $ffmpeg_codec \
- "$2";
-}
-
-title_slide() {
- img="$(basename "${1%.*}".png)"
- printf 'title_slide %s -> %s\n' "$1" "$img"
- convert -size "$video_resolution" "xc:${bgcolor}" \
- -pointsize 48 -fill "$fgcolor" \
- -gravity center -draw "text 0,0 '#${img%.*}'" "$img"
- ffmpeg -y \
- -f lavfi \
- -i anullsrc=r=48000 \
- -i "$img" \
- -t "${title_display_time}" \
- $ffmpeg_codec \
- "$2" && rm "$img"
-}
-
-video_conv() {
- printf 'encode %s -> %s\n' "$1" "$2"
- if ! regeximatch "$(file -ib "$f")" "^video\/"; then
- die "input video $1 is invalid ($(file -b "$1"))"
- fi
- ffmpeg -y -i "$1" $ffmpeg_codec "$2"
-}
-
-mkdir -p "$title"
-mkdir -p "$memecache_conv"
-
-# generate video from each image
-for f in "$memecache"/*.jpg \
- "$memecache"/*.jpeg \
- "$memecache"/*.JPG \
- "$memecache"/*.png \
- "$memecache"/*.PNG; do
- out="${memecache_conv}/$(basename "${f%.*}.${video_ext}")"
- if [ ! -f "$out" ]; then
- if ! regeximatch "$(file -ib "$f")" "^image\/"; then
- die "input image $f is invalid ($(file -b "$f"))"
- fi
- printf 'in: %s, out: %s\n' "$f" "$out"
- fit_img_16_9 "$f" "${out%.*}.jpg"
- video_from_img "${out%.${video_ext}}.jpg" "${out}"
- fi
-done
-
-# make animation for fallback stream
-if [ ! -f "bitreich-tv.${video_ext}" ]; then
- title_slide bitreich-tv bitreich-tv.${video_ext}
-fi
-
-# make title slides for video and converted images and encode all video clips …
-for f in "$memecache"/*.mkv \
- "$memecache"/*.mp4 \
- "$memecache"/*.webm \
- "$memecache_conv"/*."${video_ext}"; do
-
- title_path="${title}/$(basename "${f%.*}.${video_ext}")"
- [ ! -f "$title_path" ] && title_slide "$f" "$title_path"
-
- out="${memecache_conv}/$(basename "${f%.*}.${video_ext}")"
- [ ! -f "$out" ] && video_conv "$f" "$out"
-done
-
-# generate random playlist from converted memes and add title slides
-find "$memecache_conv" -maxdepth 1 -name "*.webm" -type f | \
- sort -R | \
- awk -v memecachedir="$memecache" -v titledir="$title" '
- function add_title(s) {
- sub(/memecache/, "title", s);
- return s
- }
- {line=$0;
- print "file \""add_title($line)"\"";
- print "file \""$0"\""}' | sed "s/\"/'/g" > "$playlist"
-
-#printf '\nstarting fallback stream\n'
-#ffmpeg -loglevel quiet \
-# -stream_loop -1 -i bitreich-tv.webm
-# -f webm -codec copy
-# icecast://source:${pass}@localhost:8000/brtvfallback
-
-
-# encode daily video file
-ffmpeg -n -f concat -safe 0 -i "$playlist" \
- -f "${video_ext}" -cluster_size_limit 2M -cluster_time_limit 5100 -con…
- -codec copy \
- -to "$out_video_duration"
- "$video_out"
-
-printf '\nstarting stream\n'
-
-ffmpeg -f concat -safe 0 -stream_loop -1 -i "$video_out" \
- -f webm -cluster_size_limit 2M -cluster_time_limit 5100 -content_type …
- -analyzeduration 2M -probesize 2M \
- -codec copy \
- -deadline realtime -threads 4 \
- icecast://source:${pass}@adamsgaard.dk:3232/brtv
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.