blob: 715d0ddcd95e7631e97b3a82220ccb9d10386543 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
#!/bin/bash
# /usr/LH/bin/ripD_eject.sh
# A DVD rip and eject script.
########################################################################
DEV='/dev/sr0' # DVD device
MPNT='media/cdrom' # Mount Point
Ddir='/myth/video' # DVD output dir List
Bsnd='/usr/share/sounds/init.wav' # Begin sound file
Esnd='/usr/share/sounds/complete.wav' # End sound file
DATE=$(date +%Y%m%d_%H%M) # current date/time
LOG='/var/log/mythtv/ripD.log' # name of Log file.
TRACK=$(lsdvd | grep -i longest | awk '{print $3}') #Finds longest track
FILE=$TITLE
#-----------------------------------------------------------------------
[ -r /etc/rip.cfg ] && . /etc/rip.cfg
#-----------------------------------------------------------------------
LOCK=/tmp/.ripLock.$$
[ "$DISPLAY" == "" ] && export DISPLAY=:0
########################################################################
function osd { # $1=text, $2=delay
msg_client.py --kill
msg_client.py --msg "$1" --timeout $2
} >& /dev/null
function osd_loop() {
FN=$1 ; shift
TXT="to $dir/$FILE"
N=0
while [ -f "$LOCK" ]; do
osd "Backing up '$TITLE' $TXT" 70
N=$(($N+1))
# [ -d "$FN" ] && SIZE=$(du -sh $FN | awk '{print $1}')
# TXT="$SIZE of $MAX @ $N min. elapsed"
TXT="($N min. elapsed)"
sleep 60
done
}
########################################################################
osd "Detecting DVD..." 60 &
echo "`date` detected DVD" >> $LOG
rm -f /tmp/.ripLock.*
#=======================================================================
for dir in $Ddir ; do
if [ -d $dir -a -w $dir ]; then
break
fi
done
#-----------------------------------------------------------------------
if [ ! -d "$dir" ]; then
echo "no $dir" >> $LOG
osd "$dir Not Found!" 10 &
eject ; eject
exit 0
fi
if [ ! -w "$dir" ]; then
echo "$dir not writable" >> $LOG
osd "$dir Not Writable!" 10 &
eject ; eject
exit 0
fi
#-----------------------------------------------------------------------
mount $DEV >& /dev/null
dev=$(readlink $DEV)
df=$(df -h /dev/$dev | grep /dev/$dev)
MAX=$(echo $df | while read d v r ; do echo $v ; done)
echo " backup $MAX to $dir" >> $LOG
#=======================================================================
# first make sure DMA is on:
sudo hdparm -d1 -u1 $DEV >& /dev/null
# attempt to get the DVD information:
TITLE=$(dvdbackup -i /dev/sr0 -I | grep information | awk '{ s = ""; for (i = 8; i <= NF; i++) s = s $i " "; print s }' | tr -d '"' | sed 's/ /_/g' | sed 's/_$//g')
if [ "$TITLE" == "DVD_VIDEO" -o "$TITLE" == "" \
-o "$TITLE" == " " -o "$TITLE" == "[ ].*" ]; then
# if not a good title,
TITLE="dvdbackup_$DATE"
fi
echo " $TITLE" >> $LOG
if [ $1 = m ]
then
COMMAND="dvdbackup -M -i $DEV -o $dir -n $TITLE"
elif [ $1 = h ]
then
# COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=320:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 720 -o $dir/$TITLE.avi"
COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "High\ Profile" --main-feature"
FILE=$TITLE.mp4
elif [ $1 = n ]
then
# COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=160:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 512 -o $dir/$TITLE.avi"
COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Normal" --main-feature"
FILE=$TITLE.mp4
elif [ $1 = l ]
then
# COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=96:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 320 -o $dir/$TITLE.avi"
COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Classic" --main-feature"
FILE=$TITLE.mp4
elif [ $1 = i ]
then
COMMAND="dd if=$DEV of=$dir/$TITLE.iso bs=2048"
FILE=$TITLE.iso
fi
{ # for the redir below:
# Begin:
touch $LOCK
osd_loop "$dir/$TITLE" "$TITLE" &
dvdbackup -i $DEV -I
sleep 1 ; aplay $Bsnd
$COMMAND
# Finish:
rm -f $LOCK
osd "Done Backing up '$TITLE' to $dir/$FILE" 5 &
sleep 1 ; aplay $Esnd
# Eject the media:
sudo eject ; sudo eject
} > $dir/.$TITLE.log 2>&1
echo " `du -sh $dir/$FILE`" >> $LOG
echo " `date` finished DVD" >> $LOG
exit 0
########################################################################
# End
|