#!/bin/bash

# Bold
BBlack='\e[1;30m'       # Nero
BRed='\e[1;31m'         # Rosso
BGreen='\e[1;32m'       # Verde
BYellow='\e[1;33m'      # Giallo
BBlue='\e[1;34m'        # Blu
BPurple='\e[1;35m'      # Viola
BCyan='\e[1;36m'        # Ciano
BWhite='\e[1;37m'       # Bianco

Color_Off='\e[0m'       # Text Reset
reset_console="\E[37;40m" #biancoBold
echo -e $BRed'PROGRAMMA shell PER mosaico 4 VIDEO con video sfondo'
echo -e $BWhite'Immetti titolo video di sfondo'
read fond
echo -e $BYellow$fond
echo -e $BWhite'Immetti titolo primo video in alto a sinistra'
read fhl
echo -e $BYellow$fhl
echo -e $BWhite'Immetti titolo secondo video in alto a destra'
read shr
echo -e $BYellow$shr
echo -e $BWhite'Immetti titolo terzo video in basso a sinistra'
read tll
echo -e $BYellow$tll
echo -e $BWhite'Immetti titolo ultimo video in basso a destra'
read llr
# echo -e $BYellow$llr
# echo -e $BRed'Immetti titolo da assegnare al video mosaico'
# read out
echo -e $BYellow$out
echo -e $BYellow'Posizione overlay (0:0 = angolo superiore sinistro PRIMO VIDEO)
0----------1280--x------------+
|                             |
|    VIDEO DI BASE            |
720 y                      y 720
|                             |
+---------x--1280-------------+=1280:720
ATTEZIONE: MEGLIO USARE NUMERI PARI!'
read over
echo -e $BWhite$over
#
sep=":"
#------------calcolo dei 4 overlay e dimensione video 
prefix=${over%%$sep*}
 posizionetrovata=${#prefix}
 posiniz=0
  posizionetrovatafin=${#prefix}
 lung=$(($posizionetrovata-$posiniz))
 overx=${over:$posiniz:$lung}
echo -e $BRed$overx' (overx iniziale)'
 #----------------------------
 lstr=${#over}
 lungy=$((lstr-posizionetrovata))
 overy=${over:$((posizionetrovata+1)):$lungy}
  echo -e $BYellow$overy' (over y iniziale)'
  #--dimensione dei video interni: x=(1280-3*overx)/2
  #--y=(720-3*overy)/2
  xdim=$(( (1280-3*overx)/2))
  ydim=$(( (720-3*overy)/2))
  strvid=$xdim':'$ydim
  echo -e $BRed'Formato video '$BWhite$strvid
overx2=$((overx+overx+xdim)) 
echo 'overx2='$overx2
  yinf=$((overy*2+ydim))
  echo -e $BYellow'Posizione y inferiore '$BWhite$yinf
    pos2=$overx2':'$overy
  echo -e $BRed$pos2' <--pos.x 2° video'
  pos3=$overx':'$yinf
  echo -e $BYellow$pos3' <--pos.3° video'
  pos4=$overx2':'$yinf
  echo -e $BRed$pos4' <--pos.4° video'
#-----------fine calcolo-----------------------------
echo 'Digitare il nome del titolo che si vuole dare al video elaborato'
read nuovotitolo
echo -e $BRed'TUTTO CORRETTO? (y /N)
Se una delle dimensioni del video è dispari (es.:
550:285) viene abortito. In tal caso premere N'
read ok
if [[ "$ok" == "n" || "$ok" == "N" ]]
then
echo -e $BRed'PROGRAMMA INTERROTTO!'
exit 0
else
echo -e $BWhite'Elaborazione del video mosaico...'
fi

nuovofondo='sc'$fond
#----------------scalo video sfondo
ffmpeg -i $fond -vf scale=1280:720,setsar=1:1 $nuovofondo
#----------------scalo 1 video alto sinistra
 ffmpeg -i $fhl -vf scale="$strvid",setsar=1:1 inter1.mp4
# riporto su sfondo
 ffmpeg -i 'sc'$fond -i inter1.mp4 -filter_complex "overlay="$over",loop=1"  -t 10 videos1.mp4
 rm $nuovofondo
# #---------2° video
 ffmpeg -i $shr -vf scale="$strvid",setsar=1:1 inter2.mp4
ffmpeg -i videos1.mp4 -i inter2.mp4 -filter_complex "overlay="$pos2",loop=1"  -t 10 videos2.mp4 
#----------3° video
 ffmpeg -i $tll -vf scale="$strvid",setsar=1:1 inter3.mp4
ffmpeg -i videos2.mp4 -i inter3.mp4 -filter_complex "overlay="$pos3",loop=1"  -t 10 videos3.mp4 
#---------4° video
  ffmpeg -i $llr -vf scale="$strvid",setsar=1:1 inter4.mp4
ffmpeg -i videos3.mp4 -i inter4.mp4 -filter_complex "overlay="$pos4",loop=1"  -t 10 videos4.mp4   
    #comando ffmpeg per uniformazione video finale nel titolo scelto 
ffmpeg -i videos4.mp4 -vf scale=1280:720,setsar=1:1 $nuovotitolo
echo -e $Bred'Il tuo video '$BYellow$nuovotitolo$Bred' è stato elaborato'
rm videos*.mp4
rm inter*.mp4


exit 0