ibrtv-generate-title-slides.sh - 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 ibrtv-generate-title-slides.sh (1626B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #!/bin/sh Err bitreich.org 70 i 2 # generate title slide animation for each hashtag in file specified by stdin. Err bitreich.org 70 i 3 # stdin would typically be annna's module/hashtags/hashtags.txt Err bitreich.org 70 i 4 # requirements: ffmpeg(1), convert(1) Err bitreich.org 70 i 5 Err bitreich.org 70 i 6 Err bitreich.org 70 i 7 ### CONFIGURATION START Err bitreich.org 70 i 8 Err bitreich.org 70 i 9 # output title animations dir Err bitreich.org 70 i 10 title="/br/gopher/tv/title" Err bitreich.org 70 i 11 Err bitreich.org 70 i 12 # ffmpeg flags for generated videos Err bitreich.org 70 i 13 video_ext="webm" Err bitreich.org 70 i 14 ffmpeg_codec="-loglevel error -acodec libopus -b:a 96K -f webm -vf scale=1280:-1 -r 30 -ac 2" Err bitreich.org 70 i 15 Err bitreich.org 70 i 16 # target video resolution Err bitreich.org 70 i 17 video_resolution=1280x720 Err bitreich.org 70 i 18 Err bitreich.org 70 i 19 # slide style Err bitreich.org 70 i 20 # xc:$color ( https://imagemagick.org/script/color.php ) Err bitreich.org 70 i 21 # /some/file.png Err bitreich.org 70 i 22 bgcontent=/br/gopher/tv/bitreich-tv-bg.png Err bitreich.org 70 i 23 fgcontent=/br/gopher/tv/bitreich-tv-title-fg.png Err bitreich.org 70 i 24 Err bitreich.org 70 i 25 # show title slides for this duration [s] Err bitreich.org 70 i 26 title_display_time=5 Err bitreich.org 70 i 27 Err bitreich.org 70 i 28 # logo to draw in background Err bitreich.org 70 i 29 logo="bitreichtv.vtv" Err bitreich.org 70 i 30 Err bitreich.org 70 i 31 ### CONFIGURATION END Err bitreich.org 70 i 32 Err bitreich.org 70 i 33 Err bitreich.org 70 i 34 temp="$(mktemp).png" Err bitreich.org 70 i 35 Err bitreich.org 70 i 36 title_slide() { Err bitreich.org 70 i 37 # Don't forget the whitespace at the end of the logo. Err bitreich.org 70 i 38 convert -font "Liberation-Mono" \ Err bitreich.org 70 i 39 -size "$video_resolution" \ Err bitreich.org 70 i 40 "${bgcontent}" \ Err bitreich.org 70 i 41 "${fgcontent}" \ Err bitreich.org 70 i 42 -gravity center \ Err bitreich.org 70 i 43 -composite \ Err bitreich.org 70 i 44 -stroke '#000000' \ Err bitreich.org 70 i 45 -strokewidth 2 \ Err bitreich.org 70 i 46 -fill '#FFFFFF' \ Err bitreich.org 70 i 47 -gravity north \ Err bitreich.org 70 i 48 -pointsize 13 \ Err bitreich.org 70 i 49 -draw "text -70,240 '$(cat "$logo")' " \ Err bitreich.org 70 i 50 -draw "text -70,520 'Playing: ${1}'" \ Err bitreich.org 70 i 51 "$temp" Err bitreich.org 70 i 52 Err bitreich.org 70 i 53 ffmpeg -y \ Err bitreich.org 70 i 54 -f lavfi \ Err bitreich.org 70 i 55 -i anullsrc=r=48000 \ Err bitreich.org 70 i 56 -i "$temp" \ Err bitreich.org 70 i 57 -t "${title_display_time}" \ Err bitreich.org 70 i 58 $ffmpeg_codec \ Err bitreich.org 70 i 59 "$2" < /dev/null Err bitreich.org 70 i 60 printf '%s\n' "$2" Err bitreich.org 70 i 61 } Err bitreich.org 70 i 62 Err bitreich.org 70 i 63 mkdir -p "$title" Err bitreich.org 70 i 64 Err bitreich.org 70 i 65 # make title slide for every tag in first column of stdin Err bitreich.org 70 i 66 # (if title slide doesn't already exist) Err bitreich.org 70 i 67 while read -r tag url; do Err bitreich.org 70 i 68 out="${title}/${tag#\#}.${video_ext}" Err bitreich.org 70 i 69 if [ ! -f "$out" ]; then Err bitreich.org 70 i 70 title_slide "$tag" "$out" Err bitreich.org 70 i 71 fi Err bitreich.org 70 i 72 done Err bitreich.org 70 .