diff --git a/check_audio_framemd5.sh b/check_audio_framemd5.sh new file mode 100755 index 0000000..e49d3b1 --- /dev/null +++ b/check_audio_framemd5.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + SCRIPT=$(basename "${0}") + VERSION='2017-04-15' + AUTHOR='ffmprovisr' + RED='\033[1;31m' + BLUE='\033[1;34m' + NC='\033[0m' + +if [[ ${OSTYPE} = "cygwin" ]] || [ ! $(which diff) ]; then + echo -e "${RED}Error: 'diff' is not installed by default. Please install 'diffutils' from Cygwin.${NC}" + exit 1 +fi + +_output_prompt(){ + cat < -m ] +EOF + exit 1 +} + +_output_help(){ + cat < -m + Pass to the script the audio-visual file and the corresponding MD5 + file to check. +Dependency: + ffmpeg +About: + Version: ${VERSION} + Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/check_audio_framemd5.sh +EOF + exit 0 +} + +unset input_file +unset input_hash + +while getopts ":hi:m:" opt; do + case "${opt}" in + h) _output_help ;; + i) input_file=$OPTARG ;; + m) input_hash=$OPTARG ;; + :) echo -e "${RED}Error: option -${OPTARG} requires an argument${NC}" ; _output_prompt ;; + *) echo -e "${RED}Error: bad option -${OPTARG}${NC}" ; _output_prompt ;; + esac +done + +[[ -z "${#}" || ! ${input_file} || ! ${input_hash} ]] && _output_prompt +echo -e "${BLUE}Please wait...${NC}" +unset md5_tmp +if [[ $OSTYPE = "cygwin" ]]; then + md5_tmp="${USERPROFILE}/$(basename "${input_hash}").tmp" +else + md5_tmp="${HOME}/$(basename "${input_hash}").tmp" +fi +# Find audio frame size for hash calculation +sample_rate=$(grep -v '^#' "${input_hash}" | head -n 1 | tr -d ' ' | cut -d',' -f4) +ffmpeg -i "${input_file}" -loglevel 0 -af "asetnsamples=n='$sample_rate'" -f framemd5 -vn "${md5_tmp}" +[[ ! -f ${md5_tmp} ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; } +unset old_file +unset tmp_file +unset sample_rate +old_file=$(grep -v '^#' "${input_hash}") +tmp_file=$(grep -v '^#' "${md5_tmp}") +if [[ "${old_file}" = "${tmp_file}" ]]; then + echo -e "${BLUE}'$(basename "${input_file}")' matches '$(basename "${input_hash}")'${NC}" + rm "${md5_tmp}" +else + echo -e "${RED}The following differences were detected between '$(basename "${input_file}")' and '$(basename "${input_hash}")':${NC}" + diff "${input_hash}" "${md5_tmp}" + rm "${md5_tmp}" +fi diff --git a/check_framemd5.sh b/check_video_framemd5.sh similarity index 71% rename from check_framemd5.sh rename to check_video_framemd5.sh index d5519a4..3dc8b10 100644 --- a/check_framemd5.sh +++ b/check_video_framemd5.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash SCRIPT=$(basename "${0}") - VERSION='2016-12-31' + VERSION='2017-04-16' AUTHOR='ffmprovisr' RED='\033[1;31m' BLUE='\033[1;34m' @@ -32,7 +32,7 @@ Dependency: ffmpeg About: Version: ${VERSION} - Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/check_framemd5.sh + Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/check_video_framemd5.sh EOF exit 0 } @@ -54,21 +54,21 @@ done echo -e "${BLUE}Please wait...${NC}" unset md5_tmp if [[ $OSTYPE = "cygwin" ]]; then - md5_tmp=""${USERPROFILE}/$(basename ${input_hash}).tmp"" + md5_tmp="${USERPROFILE}/$(basename "${input_hash}").tmp" else - md5_tmp="${HOME}/$(basename ${input_hash}).tmp" + md5_tmp="${HOME}/$(basename "${input_hash}").tmp" fi -$(ffmpeg -i ${input_file} -loglevel 0 -f framemd5 -an ${md5_tmp}) -[[ ! -f ${md5_tmp} ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; } +ffmpeg -i "${input_file}" -loglevel 0 -f framemd5 -an "${md5_tmp}" +[[ ! -f "${md5_tmp}" ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; } unset old_file unset tmp_file -old_file=$(grep -v '^#' ${input_hash}) -tmp_file=$(grep -v '^#' ${md5_tmp}) +old_file=$(grep -v '^#' "${input_hash}") +tmp_file=$(grep -v '^#' "${md5_tmp}") if [[ "${old_file}" = "${tmp_file}" ]]; then - echo -e "${BLUE}'$(basename ${input_file})' matches '$(basename ${input_hash})'${NC}" + echo -e "${BLUE}'$(basename "${input_file}")' matches '$(basename "${input_hash}")'${NC}" rm "${md5_tmp}" else - echo -e "${RED}The following differences were detected between '$(basename ${input_file})' and '$(basename ${input_hash})':${NC}" + echo -e "${RED}The following differences were detected between '$(basename "${input_file}")' and '$(basename "${input_hash}")':${NC}" diff "${input_hash}" "${md5_tmp}" rm "${md5_tmp}" fi diff --git a/index.html b/index.html index cec4ef0..e222463 100644 --- a/index.html +++ b/index.html @@ -1172,7 +1172,7 @@ foreach ($file in $inputfiles) {
-an
ignores the audio stream (audio no)
output_file
path, name and extension of the output file
-

You may verify an MD5 checksum file created this way by using a Bash script.

+

You may verify an MD5 checksum file created this way by using a Bash script.

@@ -1187,13 +1187,14 @@ foreach ($file in $inputfiles) {