#!/bin/bash

cat << "EOF"
---

 -----------------------------
/                             \
|    NN  FFMPEG BATCH v0.2    |
\                             /
 -----------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
EOF

case "$OSTYPE" in
  darwin*)
        echo "on OSX"
        ;; 
  linux*)
        echo "on LINUX"
        ;;
  msys*)
        echo "on WINDOWS"
        ;;
  *)
        echo "on unknown: $OSTYPE"
        ;;
esac

cat << "EOF"
---

STARTING

EOF
## if no argument give some help
if [[ $# -eq 0 ]] ; then
  echo 'Salut'
  echo 'Ce script compile des movies avec FFmpeg'
  echo 'ex: nnFFmpeg image_00001.tga son.wav'
  exit 0
fi

# variables
NOW=$(date +"%y%m%d")

# traitement du nom de fichier
fullFile=${1} #recup le chemin du fichier
fileDir=$(dirname "${fullFile}") #extrait le chemin
fileParentDir=$(dirname "${fileDir}") #extrait le chemin parent
fileName=$(basename "${fullFile}") #extrait le nom du fichier
fileExt="${fileName##*.}" #extrait l'extension
fileNameNoExt="${fileName%.*}" #nom de fichier sans extension
fileSequDigits=${fileNameNoExt##*[^0-9]} #numero du fichier dans une sequence
fileSequDigitsNum=${#fileSequDigits}
fileNameNoExtNoSequDigits=${fileNameNoExt%$fileSequDigits} #nom de fichier sans le numero de fichier
fullFileDest=${fileParentDir}'/'${fileNameNoExtNoSequDigits}
fullFileRewrited=${fileDir}'/'${fileNameNoExtNoSequDigits}'%0'${fileSequDigitsNum}'d''.'${fileExt}

# Audio
fullAudioFile=${2} #recup le chemin du fichier

# tests
#echo 'fileDir' ${fileDir}
#echo 'fileExt' ${fileExt}
#echo 'fileNameNoExt' ${fileNameNoExt}
#echo 'fileSequDigits' ${fileSequDigits}
#echo 'fileSequDigitsNum' ${fileSequDigitsNum}
#echo 'fileNameNoExtNoSequDigits' ${fileNameNoExtNoSequDigits}
#echo '---------   old path   -------------'
#echo ${1}
#echo '--------- rewrited path ------------'
#echo ${fileDir}${fileNameNoExtNoSequDigits}'%0'${fileSequDigitsNum}'d''.'${fileExt}



# questions

defaultQUAL="22"
read -p "Enter H264 Quality [$defaultQUAL]: " QUAL
QUAL=${QUAL:-$defaultQUAL}

defaultVFSCALE="iw:ih"
read -p "Enter a new Size [$defaultVFSCALE]: " VFSCALE
VFSCALE=${VFSCALE:-$defaultVFSCALE}

read -p "Options ex: [-ss 5 -to 10] ]: " OPTION

CMD='-r 25 -codec:v libx264 -crf '$QUAL' '$OPTION' -vf scale='$VFSCALE' -profile:v high -level:v 4.1 -preset slow -movflags faststart -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -shortest'
CODEC='_@25p_q22_h264'
EXT='.mp4'


#recap
echo "DEST: ${fullFileDest}"
echo "CODEC: ${CODEC}"
echo "EXT: ${EXT}"
echo "NOW: ${NOW}"

# Increment nom de fichier si il y en en deja eu un dans la journee
if [[ -e ${fullFileDest}${NOW}_v1${CODEC}${EXT} ]] ; then
    i=1
    while [[ -e ${fullFileDest}${NOW}_v$i${CODEC}${EXT} ]] ; do
        let i++
    done
    DESTINATION=${fullFileDest}${NOW}_v$i${CODEC}${EXT} ; else
    DESTINATION=${fullFileDest}${NOW}_v1${CODEC}${EXT} 
fi

# test voir si il y a un fichier audio
if [ ! -z ${fullAudioFile} ]; then
	ENCODE='ffmpeg -y -i '${fullFileRewrited}' -i '${fullAudioFile}' '${CMD}' '${DESTINATION} ; else
	ENCODE='ffmpeg -y -i '${fullFileRewrited}' '${CMD}' '${DESTINATION}
fi

# final test
echo "-> $ENCODE"

# lance l'encodage
eval $ENCODE


####
# manque le start number d'une sequence de fichier -start_number 100