X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Favi2mp4;h=620f6bce43207e3c76d042354ee9781d4532b27f;hb=758aee0240809e9c4aa3428dd332055b7d21a013;hp=c9c3042ec18edf646fc25b734c41140a18addb3b;hpb=1f1daa9003bda7b3c5beb0f30c8912b292043989;p=hvutilities.git diff --git a/scripts/avi2mp4 b/scripts/avi2mp4 index c9c3042..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 +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}"