summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
8d01f1f)
- feat(user/mp4_make_480.sh): Also add start and end time stats.
# arg2 dir output dir (optional)
# Output: dir ./out/
# file ./out/[files]_480.mp4
# arg2 dir output dir (optional)
# Output: dir ./out/
# file ./out/[files]_480.mp4
# Depends: GNU parallel 20161222, ffmpeg 4.3.6-0
# Ref/Attrb: [1]: FFmpeg wiki: https://trac.ffmpeg.org/wiki/Scaling
declare -g dir_in dir_out;
check_input() {
dir_in="$1";
# Depends: GNU parallel 20161222, ffmpeg 4.3.6-0
# Ref/Attrb: [1]: FFmpeg wiki: https://trac.ffmpeg.org/wiki/Scaling
declare -g dir_in dir_out;
check_input() {
dir_in="$1";
+ if [[ ! -d "$dir_in" ]]; then echo "FATAL:Not a dir:$dir_in" 1>&2; exit 1; fi;
if [[ $# -le 0 ]]; then echo "FATAL:Insufficient args:$#" 1>&2; exit 1; fi;
if [[ $# -eq 2 ]]; then
dir_out="$2";
else
if [[ $# -le 0 ]]; then echo "FATAL:Insufficient args:$#" 1>&2; exit 1; fi;
if [[ $# -eq 2 ]]; then
dir_out="$2";
else
+ dir_out="${dir_in}/out_480";
- if [[ ! -d "$dir_in" ]]; then echo "FATAL:Not a dir:$dir_in" 1>&2; exit 1; fi;
mkdir -p "$dir_out";
declare -p dir_in dir_out; # debug
};
mkdir -p "$dir_out";
declare -p dir_in dir_out; # debug
};
path_in="$1";
path_out="$2";
file_in="$(basename "$path_in")";
path_in="$1";
path_out="$2";
file_in="$(basename "$path_in")";
- path_out=./"$dir_out"/"${file_in%.[mM][pP]4}"_480.mp4;
+ path_out="${dir_out}/${file_in%.[mM][pP]4}"_480.mp4;
opt_scale="scale=-2:480"; # See [1]
declare -p path_in path_out file_in dir_out path_out opt_scale;
ffmpeg -nostdin -i "$path_in" -vf "$opt_scale" "$path_out";
opt_scale="scale=-2:480"; # See [1]
declare -p path_in path_out file_in dir_out path_out opt_scale;
ffmpeg -nostdin -i "$path_in" -vf "$opt_scale" "$path_out";
export -f job_ffmpeg;
main() {
export -f job_ffmpeg;
main() {
+ SECONDS=0;
+ ti="$(date -Is)";
check_input "$@";
convert_video;
check_input "$@";
convert_video;
+ tf="$(date -Is)";
+ printf "%s\n" "STATUS:Finished in $SECONDS seconds with status $?.";
+ printf "%s\n%s\n%s\n" "STATUS:Job start and end times:" "$ti" "$f";
# arg2 dir output dir (optional)
# Output: dir ./out/
# file ./out/[files]_small.mp4
# arg2 dir output dir (optional)
# Output: dir ./out/
# file ./out/[files]_small.mp4
# Depends: GNU parallel 20231122, ffmpeg 6.1.1
# Ref/Attrb:
declare -g dir_in dir_out;
check_input() {
dir_in="$1";
# Depends: GNU parallel 20231122, ffmpeg 6.1.1
# Ref/Attrb:
declare -g dir_in dir_out;
check_input() {
dir_in="$1";
+ if [[ ! -d "$dir_in" ]]; then echo "FATAL:Not a dir:$dir_in" 1>&2; exit 1; fi;
if [[ $# -le 0 ]]; then echo "FATAL:Insufficient args:$#" 1>&2; exit 1; fi;
if [[ $# -eq 2 ]]; then
dir_out="$2";
else
if [[ $# -le 0 ]]; then echo "FATAL:Insufficient args:$#" 1>&2; exit 1; fi;
if [[ $# -eq 2 ]]; then
dir_out="$2";
else
+ dir_out="${dir_in}/out_small";
- if [[ ! -d "$dir_in" ]]; then echo "FATAL:Not a dir:$dir_in" 1>&2; exit 1; fi;
mkdir -p "$dir_out";
declare -p dir_in dir_out; # debug
};
mkdir -p "$dir_out";
declare -p dir_in dir_out; # debug
};
path_in="$1";
path_out="$2";
file_in="$(basename "$path_in")";
path_in="$1";
path_out="$2";
file_in="$(basename "$path_in")";
- path_out=./"$dir_out"/"${file_in%.[mM][pP]4}"_small.mp4;
+ path_out="${dir_out}/${file_in%.[mM][pP]4}"_small.mp4;
- declare -p path_in path_out file_in dir_out path_out opt_scale;
+ declare -p path_in path_out file_in dir_out path_out;
ffmpeg -nostdin -i "$path_in" -c:v libx264 -preset veryslow -crf 26 -pix_fmt yuv420p "$path_out";
};
export -f job_ffmpeg;
main() {
ffmpeg -nostdin -i "$path_in" -c:v libx264 -preset veryslow -crf 26 -pix_fmt yuv420p "$path_out";
};
export -f job_ffmpeg;
main() {
+ SECONDS=0;
+ ti="$(date -Is)";
check_input "$@";
convert_video;
check_input "$@";
convert_video;
+ tf="$(date -Is)";
+ printf "%s\n" "STATUS:Finished in $SECONDS seconds with status $?.";
+ printf "%s\n%s\n%s\n" "STATUS:Job start and end times:" "$ti" "$f";