79 lines
1.4 KiB
Bash
Executable File
79 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
#set -x
|
|
|
|
die() {
|
|
>&2 echo "error: $@"
|
|
exit 1
|
|
}
|
|
|
|
usage() {
|
|
>&2 echo "usage: $0 [OPTIONS] FILENAME"
|
|
>&2 echo
|
|
>&2 echo "options:"
|
|
>&2 echo " -h|--height set video height, default is 720"
|
|
>&2 echo " -265 encode with H.265"
|
|
>&2 echo
|
|
exit 1
|
|
}
|
|
|
|
do_webdlrip() {
|
|
filename="$(basename -- "$FILE")"
|
|
filename="${filename%.*}"
|
|
|
|
newname="$filename.mp4"
|
|
|
|
audio_params="-c:a aac -b:a 128k"
|
|
if [ "$HEVC" = "1" ]; then
|
|
video_params="-c:v libx265 -crf 27 -preset slow -vtag hvc1 -x265-params no-info=1"
|
|
else
|
|
video_params="-c:v libx264 -preset slow -crf 23 -bsf:v 'filter_units=remove_types=6'"
|
|
fi
|
|
|
|
ffmpeg -i "$FILE" -vf scale=-1:$HEIGHT,format=yuv420p \
|
|
-map_metadata -1 -map_chapters -1 \
|
|
-fflags +bitexact -flags:v +bitexact -flags:a +bitexact \
|
|
-metadata:s handler_name='' \
|
|
-metadata:s DURATION='' \
|
|
-metadata:s VENDOR_ID='' \
|
|
-metadata:s encoder='' \
|
|
-empty_hdlr_name 1 \
|
|
$video_params $audio_params \
|
|
-vf sidedata=delete,metadata=delete \
|
|
"webdlrip_$newname"
|
|
rm "$FILE"
|
|
mv "webdlrip_$newname" "$FILE"
|
|
}
|
|
|
|
[ -z "$1" ] && usage
|
|
|
|
FILE=
|
|
HEIGHT=720
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
-h|--height)
|
|
HEIGHT="$2"
|
|
shift
|
|
;;
|
|
-265)
|
|
HEVC=1
|
|
;;
|
|
*)
|
|
[ -n "$FILE" ] && die "unexpected argument: $1"
|
|
FILE="$1"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
[ -z "$FILE" ] && usage
|
|
[ -f "$FILE" ] || die "$FILE: file not found"
|
|
|
|
echo "filename: $FILE"
|
|
echo " height: $HEIGHT"
|
|
echo
|
|
|
|
do_webdlrip
|