#!/usr/bin/env nuxr-nuxsh type ffmpeg > /dev/null 2>&1 && FFMPEG_OR_LIBAV=ffmpeg type avconv > /dev/null 2>&1 && FFMPEG_OR_LIBAV=avconv type gm /dev/null 2>&1 && NUX_MAGICK=gm QUALITY=${QUALITY:=90} @namespace task. { function :video.change.container { CONTAINER=$1; shift; echo "Using $FFMPEG_OR_LIBAV for conversion." for video in "$@"; do echo "Starting processing Video: $video"; $FFMPEG_OR_LIBAV -i "$video" -vcodec copy -acodec copy "${video}.$CONTAINER" echo "Processing done."; done } function :nikon-mp4 { task.video.change.container mp4 "$@" } function :downscale TARGET SIZE { local i=0; local count="$#"; mkdir -p $TARGET; for image in "$@"; do let "i=i+1" name=$(basename $image); target_file=$TARGET/$name; if [ -n "$PRESERVE" ]; then target_dir="${TARGET}/$(dirname "$image")"; mkdir -p "$target_dir"; target_file="${target_dir}/$name"; fi echo "Image: $i/$count Downsampling $image -> $target_file" $NUX_MAGICK convert $image \ -filter Lanczos -sampling-factor 1x1 \ -resize "${SIZE}x${SIZE}>" \ -quality $QUALITY \ $target_file done } ## to:: ## ## Convert image to ## function :to target { if ! nux.check.function "media.to.$target" ; then echo Target type "$target" is not supported. return -1 fi for file in "$@"; do target_dir=$(dirname "$file"); target_file=$(basename "$file" | sed -re 's/\.[a-z0-9_]+$//g' -e "s/\$/.$target/g" ); target_full="$target_dir/$target_file"; media.to.$target "$file" "$target_full" echo $file $target_file done } } function media.to.jpg { $NUX_MAGICK convert "$1" -quality $QUALITY -auto-orient "$2" }