Skip to content

Instantly share code, notes, and snippets.

@shinkbr
Last active May 21, 2023 10:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shinkbr/9b4d855f9123211c66f3fed5ad3f11f9 to your computer and use it in GitHub Desktop.
Save shinkbr/9b4d855f9123211c66f3fed5ad3f11f9 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Encodes a bluray disc into mp4.
# ffmpeg parameters are tuned for blu-ray anime.
usage(){
echo "Usage: sudo $(basename $0) BD_ISO"
}
if [ $# -ne 1 ]
then
usage
exit 1
fi
FFMPEG=ffmpeg
NUM_THREADS=$(nproc)
INPUT_FILE=$1
FILE_NAME=$(basename "$INPUT_FILE")
BASE_NAME=${FILE_NAME%.*}
OUTPUT_DIR="/mnt/Volume1/tmp/encoded"
OUTPUT_FILE="${OUTPUT_DIR}/${BASE_NAME}.mp4"
MOUNT_DIR="/mnt/ffmpeg"
OWNING_USER="shin"
OWNING_GROUP="staff"
PARAM="-f mp4 \
-map 0:0 -map 0:1 \
-c:v libx264 -crf 18 \
-s 1920x1080 \
-aspect 16:9 \
-subq 9 -cmp chroma \
-vsync 1 \
-c:a libfdk_aac -ac 2 -ar 48000 -b:a 256k -cutoff 20000 \
-threads ${NUM_THREADS}"
mount "$INPUT_FILE" "$MOUNT_DIR"
${FFMPEG} -i bluray:"${MOUNT_DIR}" ${PARAM} "${OUTPUT_FILE}"
umount "$MOUNT_DIR"
chown "${OWNING_USER}":"${OWNING_GROUP}" "${OUTPUT_FILE}"
chmod 644 "${OUTPUT_FILE}"
exit 0
#!/bin/bash
# Encodes a video file into mp4.
# ffmpeg parameters are tuned for bluray anime.
usage(){
echo "Usage: $(basename $0) BDTS_FILE"
}
if [ $# -ne 1 ]
then
usage
exit 1
fi
FFMPEG=ffmpeg
NUM_THREADS=$(nproc)
INPUT_FILE=$1
FILE_NAME=$(basename "$INPUT_FILE")
BASE_NAME=${FILE_NAME%.*}
OUTPUT_DIR=$(dirname "$INPUT_FILE")
OUTPUT_DIR="/mnt/Volume1/tmp/encoded"
OUTPUT_FILE="${OUTPUT_DIR}/${BASE_NAME}.mp4"
PARAM="-f mp4 \
-map 0:0 -map 0:1 \
-c:v libx264 -crf 18 \
-s 1920x1080 \
-aspect 16:9 \
-subq 9 -cmp chroma \
-vsync 1 \
-c:a libfdk_aac -ac 2 -ar 48000 -b:a 256k -cutoff 20000 \
-threads ${NUM_THREADS}"
${FFMPEG} -i "${INPUT_FILE}" ${PARAM} "${OUTPUT_FILE}"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment