84 lines
1.4 KiB
Bash
Executable File
84 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
## Set color
|
|
Red="\e[31m"
|
|
Green="\e[32m"
|
|
Yellow="\e[33m"
|
|
NoColor="\e[0m"
|
|
|
|
|
|
## help
|
|
Usage(){
|
|
|
|
echo "$(basename "${0}") [mp4 file path]"
|
|
exit
|
|
}
|
|
|
|
Action () {
|
|
|
|
echo -ne "$1 : "
|
|
shift
|
|
ResStdout=$("${@}" 2> /dev/null)
|
|
Res=$?
|
|
if [[ ${Res} -eq 0 ]]
|
|
then
|
|
echo -e "[${Green}OK${NoColor}] ${ResStdout}"
|
|
else
|
|
if [[ ${Res} -eq 255 ]]
|
|
then
|
|
echo -e "[${Yellow}N/A${NoColor}] ${ResStdout}"
|
|
else
|
|
echo -e "[${Red}Failed${NoColor}] ${ResStdout}"
|
|
exit
|
|
fi
|
|
fi
|
|
}
|
|
|
|
CheckFile() {
|
|
Return=0
|
|
[[ ! -e ${File} ]] && ((Return++))
|
|
file "${File}"| grep -q "MP4"
|
|
Res=${?}
|
|
[[ ${Res} -ne 0 ]] && ((Return++))
|
|
return "${Return}"
|
|
}
|
|
|
|
CreateEnv() {
|
|
if [[ ! -d "${BaseDir}" ]]
|
|
then
|
|
mkdir -p "${BaseDir}"
|
|
Return=$?
|
|
else
|
|
Return=1
|
|
echo " - Directory \"${BaseDir}\" exist"
|
|
fi
|
|
return "${Return}"
|
|
}
|
|
|
|
Generate() {
|
|
ffmpeg -i "${File}" -pix_fmt bgr8 "${BaseDir}"/"${BaseName}"_%04d.bmp &> /dev/null
|
|
Res=${?}
|
|
if [[ "${Res}" -eq 0 ]]
|
|
then
|
|
Return=0
|
|
echo "- $(find "${BaseDir}" -name "*.bmp" | wc -l) Files generated"
|
|
else
|
|
Return=1
|
|
rm -Rf "${BaseDir}"
|
|
echo " - FFmpeg FAILED - ${BaseDir} deleted"
|
|
fi
|
|
return ${Return}
|
|
}
|
|
|
|
[[ -z $1 ]] && Usage
|
|
|
|
# Env
|
|
File=$(realpath "${1}")
|
|
BaseName=$(basename "${1}" | sed 's/\.mp4$//g')
|
|
BaseDir="$(xdg-user-dir PICTURES)/dwm-anime-wallpaper/${BaseName}"
|
|
|
|
# Main
|
|
Action "Check File" CheckFile
|
|
Action "Create Env" CreateEnv
|
|
Action "Generate bmp files" Generate
|