Rip option using backup method in MakeMKV and main-feature in HandBrake (#6)
* Add ability to rip using backup method in MakeMKV and main-feature in Handbrake * Added logic for when backup method is selected but all files wanted.
This commit is contained in:
committed by
Benjamin Bryan
parent
2a4a2ff7e1
commit
4c57df2672
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,4 +2,4 @@ logs/*
|
||||
test.sh
|
||||
archive/
|
||||
config
|
||||
|
||||
temp/
|
||||
|
||||
@@ -35,6 +35,13 @@ LOGLIFE=1
|
||||
#Minimum length of track for MakeMKV rip (in seconds)
|
||||
MINLENGTH="600"
|
||||
|
||||
#Method of MakeMKV to use for Blu Ray discs. Options are "mkv" or "backup".
|
||||
#mkv is the normal method of ripping mkv files directly from the DVD
|
||||
#backup decrypts the dvd and then copies it to the hard drive. This allows HandBrake to apply some of it's
|
||||
#analytical abilities such as the main-feature identification. This method seems to offer success on bluray
|
||||
#discs that fail in "mkv" mode. *** NOTE: MakeMKV only supports the backup method on BluRay discs. Regular
|
||||
#DVD's will always default back to the "mkv" mode.
|
||||
RIPMETHOD="backup"
|
||||
|
||||
##########################
|
||||
## HandBrake Parameters ##
|
||||
@@ -50,13 +57,22 @@ DEST_EXT=mkv
|
||||
#Handbrake binary to call
|
||||
HANDBRAKE_CLI=HandBrakeCLI
|
||||
|
||||
#Have HandBrake transcode the main feature only. BluRay discs must have RIPMETHOD="backup" for this to work.
|
||||
#If MAINFEATURE is true, blurays will be backed up to the HD and then HandBrake will go to work on the backed up
|
||||
#files. For normal DVDs, ARM will by pass MakeMKV and be accessed directly by HandBrake. This will require
|
||||
#libdvdcss2 be installed.
|
||||
#NOTE: For the most part, HandBrake correctly identifies the main feature on movie DVD's, although it is not perfect.
|
||||
#However, it does not handle tv shows well at all. You will likely want this value to be false when ripping tv shows.
|
||||
#MAINFEATURE=false
|
||||
MAINFEATURE=false
|
||||
|
||||
#############################
|
||||
## Notification Parameters ##
|
||||
#############################
|
||||
|
||||
#Pushbullet API Key
|
||||
#Leave empty or comment out to disable Pushbullet notifications
|
||||
#PB_KEY=""
|
||||
PB_KEY=""
|
||||
|
||||
#IFTTT API KEY
|
||||
#Leave empty or comment out to disable IFTTT notifications
|
||||
|
||||
16
video_rip.sh
16
video_rip.sh
@@ -12,14 +12,26 @@ source /opt/arm/config
|
||||
RIPSTART=$(date +%s);
|
||||
mkdir $DEST
|
||||
|
||||
if [ $RIPMETHOD = "backup" ] && [ $ID_CDROM_MEDIA_BD = "1" ]; then
|
||||
echo "Using backup method of ripping." >> $LOG
|
||||
DISC="${DEVNAME: -1}"
|
||||
echo "Sending command: "makemkvcon backup --decrypt -r disc:$DISC $DEST/""
|
||||
makemkvcon backup --decrypt -r disc:$DISC $DEST/
|
||||
eject $DEVNAME
|
||||
elif [ $MAINFEATURE = true ] && [ $ID_CDROM_MEDIA_DVD = "1" ] && [ -z $ID_CDROM_MEDIA_BD ]; then
|
||||
echo "Media is DVD and Main Feature parameter in config file is true. Bypassing MakeMKV." >> $LOG
|
||||
|
||||
makemkvcon mkv dev:$DEVNAME all $DEST --minlength=$MINLENGTH -r
|
||||
else
|
||||
echo "Using mkv method of ripping." >> $LOG
|
||||
makemkvcon mkv dev:$DEVNAME all $DEST --minlength=$MINLENGTH -r
|
||||
eject $DEVNAME
|
||||
fi
|
||||
|
||||
RIPEND=$(date +%s);
|
||||
RIPSEC=$(($RIPEND-$RIPSTART));
|
||||
RIPTIME="$(($RIPSEC / 3600)) hours, $((($RIPSEC / 60) % 60)) minutes and $(($RIPSEC % 60)) seconds."
|
||||
|
||||
eject $DEVNAME
|
||||
#eject $DEVNAME
|
||||
|
||||
echo /opt/arm/notify.sh "\"Ripped: ${ID_FS_LABEL} completed from ${DEVNAME} in ${RIPTIME}\"" |at now
|
||||
|
||||
|
||||
@@ -8,28 +8,42 @@ LABEL=$2
|
||||
TIMESTAMP=$3
|
||||
TRANSSTART=$(date +%s);
|
||||
|
||||
|
||||
echo "Start video transcoding script" >> $LOG
|
||||
|
||||
DEST=${ARMPATH}/${LABEL}_${TIMESTAMP}
|
||||
mkdir $DEST
|
||||
|
||||
for FILE in `ls $SRC`
|
||||
do
|
||||
filename=$(basename $FILE)
|
||||
extension=${filename##*.}
|
||||
filename=${filename%.*}
|
||||
|
||||
echo "Transcoding file $FILE" >> $LOG
|
||||
if [ $RIPMETHOD = "backup" ] && [ "$MAINFEATURE" = true ] && [ $ID_CDROM_MEDIA_BD = "1" ]; then
|
||||
echo "Transcoding BluRay main feature only." >> $LOG
|
||||
$HANDBRAKE_CLI -i $SRC -o $DEST/$LABEL.$DEST_EXT --main-feature --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
|
||||
rmdir -rf $SRC
|
||||
elif [ $RIPMETHOD = "backup" ] && [ "$MAINFEATURE" = false ] && [ $ID_CDROM_MEDIA_BD = "1" ]; then
|
||||
echo "Transcoding BluRay all titles above minlength." >> $LOG
|
||||
$HANDBRAKE_CLI -i $SRC -o $DEST/$LABEL.$DEST_EXT --min-duration $MINLENGTH --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
|
||||
rmdir -rf $SRC
|
||||
elif [ $MAINFEATURE = true ] && [ $ID_CDROM_MEDIA_DVD = "1" ]; then
|
||||
echo "Transcoding DVD main feature only." >> $LOG
|
||||
$HANDBRAKE_CLI -i $DEVNAME -o $DEST/$LABEL.$DEST_EXT --main-feature --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
|
||||
eject $DEVNAME
|
||||
rmdir $SRC
|
||||
else
|
||||
echo "Transcoding all files." >> $LOG
|
||||
for FILE in `ls $SRC`
|
||||
do
|
||||
filename=$(basename $FILE)
|
||||
extension=${filename##*.}
|
||||
filename=${filename%.*}
|
||||
|
||||
$HANDBRAKE_CLI -i $SRC/$FILE -o $DEST/$filename.$DEST_EXT --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
|
||||
#TIMESTAMP=`date '+%Y_%m_%d__%H_%M_%S'`;
|
||||
#mv $SRC/$FILE $SRC/done/$TIMESTAMP.$FILE
|
||||
#mv $DEST/$FILE $DEST/done/$FILE
|
||||
rm $SRC/$FILE
|
||||
echo "Transcoding file $FILE" >> $LOG
|
||||
|
||||
done
|
||||
$HANDBRAKE_CLI -i $SRC/$FILE -o $DEST/$filename.$DEST_EXT --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
|
||||
rm $SRC/$FILE
|
||||
done
|
||||
rmdir $SRC
|
||||
fi
|
||||
|
||||
rmdir $SRC
|
||||
#rmdir $SRC
|
||||
|
||||
TRANSEND=$(date +%s);
|
||||
TRANSSEC=$(($TRANSEND-$TRANSSTART));
|
||||
@@ -37,5 +51,7 @@ TRANSTIME="$(($TRANSSEC / 3600)) hours, $((($TRANSSEC / 60) % 60)) minutes and $
|
||||
|
||||
echo "STAT: ${ID_FS_LABEL} transcoded in ${TRANSTIME}" >> $LOG
|
||||
|
||||
#echo /opt/arm/rename.sh $DEST
|
||||
|
||||
echo /opt/arm/notify.sh "\"Transcode: ${ID_FS_LABEL} completed in ${TRANSTIME}\"" |at now
|
||||
|
||||
|
||||
Reference in New Issue
Block a user