Frederik Baerentsen
4 years ago
1 changed files with 156 additions and 0 deletions
@ -0,0 +1,156 @@ |
|||||
|
#!/bin/bash |
||||
|
skipfile () { |
||||
|
echo |
||||
|
echo "------------- FILE -------------" |
||||
|
echo -en '\t\t' |
||||
|
echo $1 |
||||
|
echo "--------------------------------" |
||||
|
echo "Press n to skip" |
||||
|
echo "Press y to continue" |
||||
|
echo "Press x/q to exit the script" |
||||
|
read -n 1 -p "Input Selection:" "mainmenuinput" |
||||
|
echo |
||||
|
if [ "$mainmenuinput" = "n" ];then |
||||
|
skip=1 |
||||
|
elif [ "$mainmenuinput" = "y" ];then |
||||
|
skip=0 |
||||
|
elif [ "$mainmenuinput" = "x" ];then |
||||
|
exit |
||||
|
elif [ "$mainmenuinput" = "q" ];then |
||||
|
exit |
||||
|
else |
||||
|
echo "You have entered an invallid selection!" |
||||
|
echo "Please try again!" |
||||
|
echo "" |
||||
|
echo "Press any key to continue..." |
||||
|
read -n 1 |
||||
|
clear |
||||
|
mainmenu |
||||
|
fi |
||||
|
} |
||||
|
mainmenu () { |
||||
|
#echo "-- $1" |
||||
|
basename=$1 |
||||
|
directory=$2 |
||||
|
extension=$3 |
||||
|
newname=$4 |
||||
|
echo "Press y to accept format" |
||||
|
#echo "Press e to accept and set extended" |
||||
|
#echo "Press t to accept and set theatrical" |
||||
|
echo "Press n to skip" |
||||
|
echo "Press x/q to exit the script" |
||||
|
read -n 1 -p "Input Selection:" "mainmenuinput" |
||||
|
echo |
||||
|
if [ "$mainmenuinput" = "y" ]; then |
||||
|
mv "$directory/$basename.$extension" "$directory/$newname.$extension" |
||||
|
#elif [ "$mainmenuinput" = "e" ]; then |
||||
|
# echo "extended" |
||||
|
#elif [ "$mainmenuinput" = "t" ]; then |
||||
|
# echo "theatrical" |
||||
|
elif [ "$mainmenuinput" = "n" ];then |
||||
|
echo "Skipping - $filename" |
||||
|
elif [ "$mainmenuinput" = "x" ];then |
||||
|
exit |
||||
|
elif [ "$mainmenuinput" = "q" ];then |
||||
|
exit |
||||
|
else |
||||
|
echo "You have entered an invallid selection!" |
||||
|
echo "Please try again!" |
||||
|
echo "" |
||||
|
echo "Press any key to continue..." |
||||
|
read -n 1 |
||||
|
clear |
||||
|
mainmenu |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
convertsecs() { |
||||
|
h=$(bc <<< "${1}/3600") |
||||
|
m=$(bc <<< "(${1}%3600)/60") |
||||
|
s=$(bc <<< "${1}%60") |
||||
|
printf "%02dh %02dm %02ds" $h $m $s |
||||
|
echo " - $(($h*60+$m))m" |
||||
|
} |
||||
|
|
||||
|
path="../Videos/Movies/" |
||||
|
|
||||
|
list="" |
||||
|
IFS=$'\n' |
||||
|
for filex in "`find ../Videos/Movies/[A-Z]* -maxdepth 1 -type f -regex '.*/.*\.\(m4v\|avi\|mkv\|mp4\)'`"; do |
||||
|
list=$filex |
||||
|
done |
||||
|
|
||||
|
for file in $list; do |
||||
|
|
||||
|
filename=$(echo -e `basename "$file"`) |
||||
|
bsn="${filename%.*}" |
||||
|
extension="${filename##*.}" |
||||
|
directory="${file%/*.*}" |
||||
|
skipfile "$filename" |
||||
|
|
||||
|
if [[ $skip -eq 1 ]]; then |
||||
|
echo "Skipping - $filename" |
||||
|
skip=0 |
||||
|
else |
||||
|
json=$(ffprobe -v quiet -print_format json -show_format -show_streams "$directory/$filename") |
||||
|
|
||||
|
codexName=$(echo $json | jq -r '.streams[0].codec_name') |
||||
|
audioChannel=$(echo $json | jq -r '.streams[1].channel_layout') |
||||
|
audioCodec=$(echo $json | jq -r '.streams[1].codec_name') |
||||
|
|
||||
|
resolutionW=$(echo $json | jq -r '.streams[0].width') |
||||
|
resolutionH=$(echo $json | jq -r '.streams[0].height') |
||||
|
duration=$(echo $json | jq -r '.format.duration') |
||||
|
|
||||
|
resu=" " |
||||
|
|
||||
|
if [[ $resolutionW -gt 1500 ]]; then |
||||
|
if [[ $resolutionW -gt 3000 ]]; then |
||||
|
resu="2160p" |
||||
|
fi |
||||
|
if [[ $resolutionW -lt 2000 ]]; then |
||||
|
resu="1080p" |
||||
|
fi |
||||
|
elif [[ $resolutionW -gt 1000 ]]; then |
||||
|
resu="720p" |
||||
|
elif [[ $resolutionW -gt 800 ]]; then |
||||
|
resu="480p" |
||||
|
elif [[ $resolutionW -gt 400 ]]; then |
||||
|
resu="DVD-360p" |
||||
|
elif [[ $resolutionW -gt 300 ]]; then |
||||
|
resu="240p" |
||||
|
fi |
||||
|
|
||||
|
formats=("352 x 240" "480 x 360" "858 x 480" "1280 x 720" "1920 x 1080" "3860 x 2160") |
||||
|
resolutions=("240p" "DVD-360p" "480p" "720p" "1080p" "2160p") |
||||
|
|
||||
|
echo |
||||
|
echo "------------ FORMAT ------------" |
||||
|
for i in {0..5}; do |
||||
|
if [ "$resu" = "${resolutions[$i]}" ];then |
||||
|
echo "${resolutions[$i]} = ${formats[$i]} ------> $resolutionW x $resolutionH" |
||||
|
else |
||||
|
echo "${resolutions[$i]} = ${formats[$i]}" |
||||
|
fi |
||||
|
done |
||||
|
newname=$(echo "$bsn - [$resu][$audioCodec $audioChannel][$codexName]") |
||||
|
echo "------------ INFO --------------" |
||||
|
echo -en '\t\t' |
||||
|
echo $directory |
||||
|
echo |
||||
|
echo -en '\t\t' |
||||
|
echo "[$resu][$audioCodec $audioChannel][$codexName]" |
||||
|
echo |
||||
|
echo -en '\t\t' |
||||
|
convertsecs "${duration%.*}" |
||||
|
echo |
||||
|
echo -en '\t\t' |
||||
|
echo "$newname.$extension" |
||||
|
echo "--------------------------------" |
||||
|
|
||||
|
mainmenu "$bsn" "$directory" "$extension" "$newname" |
||||
|
fi |
||||
|
|
||||
|
done |
||||
|
|
||||
|
exit |
Loading…
Reference in new issue