telvertffmpeg.sh #!/bin/bash #programma per riduzione video con telefono verticale # 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 RITAGLIO VIDEO TELEFONO VERTICALE E ADATTAMENTO ORIZZONTALE OCCORRE ESSERE NELLA DIRECTORY DEL VIDEO' echo -e $BWhite'Titolo video o audio' read titolo #costruzione nome output titolipos=`expr index "${titolo}" "."` titolipos=$(( $titolipos-1 )) nuovo=${titolo:0:$titolipos}'mod.' nuovoopt=${titolo:0:$titolipos}'opt.' estensione=${titolo:$(($titolipos+1))} nuovotit=$nuovo$estensione ffmpeg -i $titolo -vf "crop=720:960:0:480" $nuovotit ffmpeg -i $nuovotit -c copy -metadata:s:v:0 rotate=0 tmp_norotate.mp4 convert -size 768x768 -define "gradient:bounding-box=768x38+0+0" -define "gradient:vector=0,37,0,0" gradient:none-black -define "gradient:bounding-box=768x768+0+730" -define "gradient:vector=0,730,0,767" gradient:none-black -composite -channel a -negate tmp_mask.png ffmpeg -i $nuovotit -loop 1 -i tmp_mask.png -filter_complex " [0:v]split [a][b]; [a]crop=720:720:0:280,scale=768:768,setdar=768/768 [crop]; [b]crop=720:720:0:280,scale=1366:768,setdar=16/9,avgblur=54 [back]; [1:v]alphaextract [mask]; [crop][mask]alphamerge [masked]; [back][masked]overlay=299:0 " video_out.mp4 # #ottimizzazione del video precedente # ffmpeg -i $nuovotit -vf scale=1280:720,setsar=16:9 persfondo.mp4 # #il passo seguente crea soltanto un video annebbiato di quello precedente # ffmpeg -i persfondo.mp4 -q:a 0 -filter_complex "[0:v]boxblur=10[bg];[0:v]crop=60:60:10:10[fg];[bg][fg]overlay=100:500" -map 0:v annebbiatovideo.mp4 # #fino a qui ha funzionato, ma la successiva non l'ha fatta # # #ffmpeg -i $nuovotit -loop 1 -i annebbiatovideo.mp4 -filter_complex " [0:v]split [a][b]; [a]crop=720:720:0:280,scale=768:768,setdar=768/768 [crop]; [b]crop=720:720:0:280,scale=1366:768,setdar=16/9,avgblur=54 [back]; [1:v]alphaextract [mask]; [crop][mask]alphamerge [masked]; [back][masked]overlay=299:0 " video_out.mp4 # ffmpeg -i video_out.mp4 -vf scale=1280:720,setsar=1:1 telvertscalato.mp4 echo -e $BYellow'File di output = telvertscalato.mp4' exit 0