Ticket #4527: mpg2avi

File mpg2avi, 2.1 KB (added by ebenblues@…, 16 years ago)

Script that converts mpeg2 file to avi and updates myth db.

Line 
1#!/bin/sh
2
3#
4# Replaces given mpeg2 recording with avi transcoded using xvid codec.
5#
6# The script automatically rebuilds the seek table and updates the myth database
7# with the new filename.
8#
9
10MENCODER=/usr/local/bin/mencoder
11MYSQL=/usr/bin/mysql
12DBUSER=mythtv
13DBPASS=mythtv
14DBNAME=mythconverg
15
16# error checking
17if [ $# -ne 2 ]; then
18        echo "Usage: $(basename $0) directory file.mpg" 1>&2
19        echo "  directory - MythTV recordings storage directory" 1>&2
20        echo "  file.mpg - MPEG recording file" 1>&2
21        exit 1
22fi
23
24DIR=$1
25FILE=$2
26
27if [ ! -d $DIR ]; then
28        echo "$(basename $0): Directory $DIR not found" 1>&2
29        exit 1
30fi
31
32if ! echo $FILE | grep -q '.mpg'; then
33        echo "$(basename $0): $FILE not recognized as an mpeg file (no .mpg extension)" 1>&2
34        exit 1
35fi
36
37BASENAME=$(basename $FILE .mpg)
38LOGFILE=${BASENAME}.log
39
40cd $DIR
41
42# transcode mpg to avi using xvid codec
43/usr/bin/nice -n 17 $MENCODER -passlogfile $LOGFILE $FILE -o /dev/null -vf kerndeint,scale=720:576 -oac mp3lame -ovc xvid -xvidencopts pass=1 #:max_bframes=1:trellis:vhq=4:chroma_me:chroma_opt:hq_ac:bvhq=1
44/usr/bin/nice -n 17 $MENCODER -passlogfile $LOGFILE $FILE -o ${BASENAME}.avi -vf kerndeint,scale=720:576 -oac mp3lame -ovc xvid -xvidencopts pass=2:bitrate=800 #:max_bframes=1:trellis:vhq=4:chroma_me:chroma_opt:hq_ac:bvhq=1
45
46# remove xvid pass 1 log file
47rm -f $LOGFILE 2> /dev/null
48
49# Sanity check: verify avi file exists and has size greater than zero
50if [ ! -s ${BASENAME}.avi ]; then
51        echo "$(basename $0): Transcoding of file $FILE failed" 1>&2
52        rm -f ${BASENAME}.avi 2> /dev/null
53        exit 2
54fi
55
56# Modify myth database file info
57FILEINFO="$(ls -l ${BASENAME}.avi)"
58FILESIZE="$(echo $FILEINFO | awk '{print $5}')"
59FILELASTMOD="$(echo $FILEINFO | awk '{print $6" "$7}')"
60
61echo "UPDATE recorded SET lastmodified='${FILELASTMOD}',filesize='${FILESIZE}',basename='${BASENAME}.avi' WHERE basename='$FILE';" | $MYSQL -u$DBUSER -p$DBPASS --batch $DBNAME
62
63# rebuild seek table for new avi file
64nice -n 17 mythcommflag -f ${BASENAME}.avi --rebuild
65
66# rename screenshot file
67if [ -f ${FILE}.png ]; then
68        cp ${FILE}.png ${BASENAME}.avi.png
69fi
70
71# remove original .mpg files
72# rm -f $FILE
73# rm -f ${FILE}.png