mirror of
https://github.com/levogevo/ffmpeg-av1-builder.git
synced 2026-01-15 16:56:18 +00:00
fix recc enc
This commit is contained in:
@@ -9,15 +9,15 @@ SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
|
|||||||
BUILDER_DIR="$(dirname "$SCRIPT_DIR")"
|
BUILDER_DIR="$(dirname "$SCRIPT_DIR")"
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "encode -i input_file [-p -c -s true/false] [-g NUM] [output_file_name] [-I] [-U] [-v]"
|
echo "encode -i input_file [-p] [-c] [-s] [-v] [-g NUM] [output_file_name] [-I] [-U] "
|
||||||
echo -e "\t-p print the command instead of executing it"
|
echo -e "\t-p print the command instead of executing it"
|
||||||
echo -e "\t-c use cropdetect [default=false]"
|
echo -e "\t-c use cropdetect"
|
||||||
echo -e "\t-s use same container as input [default=false, always mkv]"
|
echo -e "\t-s use same container as input, default is mkv"
|
||||||
echo -e "\t-g set film grain for encode"
|
echo -e "\t-g set film grain for encode"
|
||||||
|
echo -e "\t-v Print relevant version info"
|
||||||
echo -e "\n\toutput_file_name if not set, will create at $HOME/\n"
|
echo -e "\n\toutput_file_name if not set, will create at $HOME/\n"
|
||||||
echo -e "\t-I Install this as /usr/local/bin/encode"
|
echo -e "\t-I Install this as /usr/local/bin/encode"
|
||||||
echo -e "\t-U Uninstall this from /usr/local/bin/encode"
|
echo -e "\t-U Uninstall this from /usr/local/bin/encode"
|
||||||
echo -e "\t-v Print relevant version info"
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,8 +138,10 @@ encode() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
OPTS='vi:p:c:s:g:IU'
|
OPTS='vi:pcsg:IU'
|
||||||
NUM_OPTS="${#OPTS}"
|
NUM_OPTS="${#OPTS}"
|
||||||
|
# default values
|
||||||
|
CROP='false'
|
||||||
PRINT_OUT="false"
|
PRINT_OUT="false"
|
||||||
SAME_CONTAINER="false"
|
SAME_CONTAINER="false"
|
||||||
GRAIN=""
|
GRAIN=""
|
||||||
@@ -149,8 +151,7 @@ MIN_OPT=1
|
|||||||
MAX_OPT=$(( NUM_OPTS + 1 ))
|
MAX_OPT=$(( NUM_OPTS + 1 ))
|
||||||
test "$#" -lt $MIN_OPT && echo "not enough arguments" && usage && exit 1
|
test "$#" -lt $MIN_OPT && echo "not enough arguments" && usage && exit 1
|
||||||
test "$#" -gt $MAX_OPT && echo "too many arguments" && usage && exit 1
|
test "$#" -gt $MAX_OPT && echo "too many arguments" && usage && exit 1
|
||||||
# default crop value
|
OPTS_USED=0
|
||||||
CROP='false'
|
|
||||||
while getopts "$OPTS" flag; do
|
while getopts "$OPTS" flag; do
|
||||||
case "${flag}" in
|
case "${flag}" in
|
||||||
I)
|
I)
|
||||||
@@ -168,7 +169,7 @@ while getopts "$OPTS" flag; do
|
|||||||
;;
|
;;
|
||||||
v)
|
v)
|
||||||
SCRIPT_VER="$(cd "$BUILDER_DIR" && git rev-parse --short HEAD)"
|
SCRIPT_VER="$(cd "$BUILDER_DIR" && git rev-parse --short HEAD)"
|
||||||
FFMPEG_VER="$(ffmpeg -version 2>&1 | grep version | cut -d' ' -f1-3)"
|
FFMPEG_VER="$(ffmpeg -version 2>&1 | head -n 1 | grep version | cut -d' ' -f1-3)"
|
||||||
SVTAV1_VER="$(SvtAv1EncApp --version | head -n 1)"
|
SVTAV1_VER="$(SvtAv1EncApp --version | head -n 1)"
|
||||||
LIBOPUS_VER="$(ldd "$(which ffmpeg)" | grep -i libopus | cut -d' ' -f3 | xargs readlink)"
|
LIBOPUS_VER="$(ldd "$(which ffmpeg)" | grep -i libopus | cut -d' ' -f3 | xargs readlink)"
|
||||||
LIBOPUS_VER+="-g$(cd "$BUILDER_DIR/opus" && git rev-parse --short HEAD)"
|
LIBOPUS_VER+="-g$(cd "$BUILDER_DIR/opus" && git rev-parse --short HEAD)"
|
||||||
@@ -185,30 +186,19 @@ while getopts "$OPTS" flag; do
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
INPUT="${OPTARG}"
|
INPUT="${OPTARG}"
|
||||||
|
OPTS_USED=$((OPTS_USED + 2))
|
||||||
;;
|
;;
|
||||||
p)
|
p)
|
||||||
PRINT_OUT="${OPTARG}"
|
PRINT_OUT="true"
|
||||||
if [[ "$PRINT_OUT" != "false" && "$PRINT_OUT" != "true" ]]; then
|
OPTS_USED=$((OPTS_USED + 1))
|
||||||
echo "unrecognized argument for -p: $PRINT_OUT"
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
CROP="${OPTARG}"
|
CROP="true"
|
||||||
if [[ "$CROP" != "false" && "$CROP" != "true" ]]; then
|
OPTS_USED=$((OPTS_USED + 1))
|
||||||
echo "unrecognized argument for -c: $CROP"
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
s)
|
s)
|
||||||
SAME_CONTAINER="${OPTARG}"
|
SAME_CONTAINER="true"
|
||||||
if [[ "$SAME_CONTAINER" != "false" && "$SAME_CONTAINER" != "true" ]]; then
|
OPTS_USED=$((OPTS_USED + 1))
|
||||||
echo "unrecognized argument for -c: $SAME_CONTAINER"
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
g)
|
g)
|
||||||
if [[ ${OPTARG} != ?(-)+([[:digit:]]) || ${OPTARG} -lt 0 ]]; then
|
if [[ ${OPTARG} != ?(-)+([[:digit:]]) || ${OPTARG} -lt 0 ]]; then
|
||||||
@@ -217,6 +207,7 @@ while getopts "$OPTS" flag; do
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
GRAIN="film-grain=${OPTARG}:film-grain-denoise=1:adaptive-film-grain=1:"
|
GRAIN="film-grain=${OPTARG}:film-grain-denoise=1:adaptive-film-grain=1:"
|
||||||
|
OPTS_USED=$((OPTS_USED + 2))
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "wrong flags given"
|
echo "wrong flags given"
|
||||||
@@ -227,16 +218,25 @@ while getopts "$OPTS" flag; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# allow optional output filename
|
# allow optional output filename
|
||||||
if [[ $(($# % 2)) != 0 ]]; then
|
if [[ $(($# - OPTS_USED)) == 1 ]]; then
|
||||||
OUTPUT="${@: -1}"
|
OUTPUT="${*: -1}"
|
||||||
else
|
else
|
||||||
OUTPUT="${HOME}/av1_${INPUT}"
|
OUTPUT="${HOME}/av1_${INPUT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# use same container for output
|
# use same container for output
|
||||||
if [[ "$SAME_CONTAINER" == "true" ]]; then
|
if [[ "$SAME_CONTAINER" == "true" ]]; then
|
||||||
INP_FILENAME=$(basename -- "$INPUT")
|
|
||||||
EXT="${INP_FILENAME##*.}"
|
INP_FORMAT="$(mediainfo --Output="General;%Format%" "$INPUT")"
|
||||||
|
EXT=""
|
||||||
|
if [[ "$INP_FORMAT" == 'MPEG-4' ]]; then
|
||||||
|
EXT='mp4'
|
||||||
|
elif [[ "$INP_FORMAT" == 'Matroska' ]]; then
|
||||||
|
EXT='mkv'
|
||||||
|
else
|
||||||
|
echo "unrecognized input format"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
OUTPUT="${OUTPUT%.*}"
|
OUTPUT="${OUTPUT%.*}"
|
||||||
OUTPUT+=".${EXT}"
|
OUTPUT+=".${EXT}"
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user