#!/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