X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Favi2mp4;h=620f6bce43207e3c76d042354ee9781d4532b27f;hb=758aee0240809e9c4aa3428dd332055b7d21a013;hp=8ad5487612387decd05089e12968cecfb6142244;hpb=fa37c01979686fe0a32001b8f2687b248c7eb16a;p=hvutilities.git diff --git a/scripts/avi2mp4 b/scripts/avi2mp4 index 8ad5487..620f6bc 100755 --- a/scripts/avi2mp4 +++ b/scripts/avi2mp4 @@ -2,23 +2,25 @@ PROG_NAME=$(basename $0) -VIDEO_OPTS="-c:v libx264 -preset veryslow -crf 15" - print_usage() { - echo "${PROG_NAME} -- Conversion AVI à MP4 (x264)" + echo "${PROG_NAME} -- Conversion MP4 (x264)" echo "Usage: ${PROG_NAME} [OPTIONS...] FICHIER" echo echo "Options:" echo " -a Conversion trame audio AAC (défaut=copier)" - echo " -b Si option a sélectionnée, bitrate (défaut=192k)" + echo " -c Copie trame vidéo (défaut=conversion)" + echo " -b Si option \"a\" sélectionnée, bitrate (défaut=192k)" + echo " -q Qualité (CRF). plus bas = meilleur (défaut=23)" } # Default values bitrate=192k aac=0 +video_copy=0 +crf=23 -while getopts "ab:" flag ;do +while getopts "ab:chq:" flag ; do case ${flag} in a) aac=1 @@ -26,6 +28,12 @@ while getopts "ab:" flag ;do b) bitrate=${OPTARG} ;; + c) + video_copy=1 + ;; + q) + crf=${OPTARG} + ;; h) print_usage exit 0 @@ -39,12 +47,6 @@ while getopts "ab:" flag ;do done shift `expr "${OPTIND}" - 1` -if [ x"${aac}" = x1 ]; then - audio_opts="-c:a aac -b:a ${bitrate}" -else - audio_opts="-c:a copy" -fi - # `$#' now represents the number of arguments after the options. # `$1' is the first argument, etc. if [ $# -gt 1 ]; then @@ -59,15 +61,29 @@ if [ ${#} -ne 1 ]; then exit 1 fi -src=${1} +if [ x"${aac}" = x1 ]; then + audio_opts="-c:a aac -b:a ${bitrate}" +else + audio_opts="-c:a copy" +fi + +if [ x"${video_copy}" = x1 ]; then + video_opts="-c:v copy" +else + video_opts="-c:v libx264 -preset veryslow -crf ${crf}" +fi + +src="${1}" # Checking if input file exist. -if [ ! -f $1 ]; then +if [ ! -f "${src}" ]; then echo "$0: File ${src} not found." print_usage exit 1 fi -dest=`echo "${src}" | sed s/\.avi$/.mp4/g` +# Cut everything after the last dot using sed: +dest=`echo "${src}" | sed s/\.[^.]*$//` +dest="${dest}.mp4" -ffmpeg -i ${src} ${VIDEO_OPTS} ${audio_opts} ${dest} +ffmpeg -i "${src}" ${video_opts} ${audio_opts} "${dest}"