summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/linhes-scripts/myth2x264
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/linhes-scripts/myth2x264')
-rwxr-xr-xabs/core-testing/linhes-scripts/myth2x264223
1 files changed, 0 insertions, 223 deletions
diff --git a/abs/core-testing/linhes-scripts/myth2x264 b/abs/core-testing/linhes-scripts/myth2x264
deleted file mode 100755
index 014fcbe..0000000
--- a/abs/core-testing/linhes-scripts/myth2x264
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/bin/sh
-# convert recording to x264 encoded avi
-# version 0.6
-
-# usage:
-# first parameter must be %DIR%/%FILE% of the recording
-# second parameter must be the desired base name of the output
-# third parameter must be %CHANID% if you set USECUTLIST=Y
-# fourth parameter must be %STARTTIME% if you set USECUTLIST=Y
-# fifth parameter must be %JOBID% for the User Job status to be updated in MythTV
-# in the mythtv setup screen invoke this script like this:
-# MYTHTV User Job Command:
-# /usr/LH/bin/myth2x264 "%DIR%/%FILE%" "%TITLE% - %SUBTITLE%" "%CHANID%" "%STARTTIME%" "%JOBID%"
-
-# options:
-RESOLUTION=960:544 # to keep the source resolution use -1 or to scale down use xxx:xxx (ie 960:544)
-BITRATE=2500 # use negative bitrate to set output file size in KB (ie. -700000)
-USECUTLIST=Y # Y or N
-
-# where the converted video is stored
-OUT_DIR=/myth/video
-
-# database settings
-BACKEND_HOSTNAME=${BACKEND_HOSTNAME:-"localhost"}
-DBUSERNAME=${DBUSERNAME:-"mythtv"}
-DBPASSWORD=${DBPASSWORD:-"mythtv"}
-SQLCMD="mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -e"
-
-#------FUNCTIONS---------------
-update_comment()
-# Arg_1 = COMMENT
-{
-if [ $NO_JOBID = 0 ]; then
- `$SQLCMD "update jobqueue set comment=\"$1\" where id=\"$JOBID\";"`
-fi
-}
-
-update_status()
-# Arg_1 = status code
-{
-if [ $NO_JOBID = 0 ]; then
- `$SQLCMD "update jobqueue set status=\"$1\" where id=\"$JOBID\";"`
-fi
-}
-
-check_background_progress()
-# check mencoder progress in background
-# Arg_1 = PROGRESS CALCULATION
-{
-while [ `tail -1 $STATUSFILE | grep -c "^x264 \[info\]: kb/s:"` = 0 ]
-do
- sleep 10
- check_myth_jobcmds
- current_status=`tail -1 $STATUSFILE | grep "([ 0-9]\{1,\}%)"`
- prog_percent=`echo "$current_status" | sed 's_.*(\([ 0-9][ 0-9]\)%).*_\1_'`
- current_FPS=`echo "$current_status" | sed 's_.*\([ 0-9][ 0-9].[ 0-9][ 0-9]\)fps.*_\1_'`
- if [ -n "$prog_percent" ]; then
- prog_percent=`expr $prog_percent / $1`
- echo "$prog_percent% Completed @ $current_FPS fps"
- update_comment "$prog_percent% Completed @ $current_FPS fps"
- fi
- sleep 10
-done
-}
-
-check_myth_jobcmds()
-# check the myth database for stop pause or resume commands
-{
-if [ $NO_JOBID = 0 ]; then
- CURRENT_CMD=`$SQLCMD "select cmds from jobqueue where id=\"$JOBID\";" | sed '/[0-9]/!d'`
- case "$CURRENT_CMD" in
- # JOB_RUN
- 0) ;;
- # JOB_PAUSE
- 1) update_status 6
- kill -s STOP $mencoder_pid ;;
- # JOB_RESUME
- 2) update_status 4
- `$SQLCMD "update jobqueue set cmds=\"0\" where id=\"$JOBID\";"`
- kill -s CONT $mencoder_pid ;;
- # JOB_STOP
- 4) update_status 5
- `$SQLCMD "update jobqueue set cmds=\"0\" where id=\"$JOBID\";"`
- kill -9 $mencoder_pid $command_pid
- clean_up_files
- echo "Encode Cancelled" >> $LOGFILE
- update_status 320
- exit ;;
- esac
-fi
-}
-
-get_mencoder_pid()
-{
-process_name=""
-i1=1
-while [ "$process_name" != "found" ]; do
- if [ "`ps $mencoder_pid | grep mencoder | sed 's_.*\(mencoder\).*_\1_'`" = "mencoder" ]; then
- process_name="found"
- else
- mencoder_pid=`expr $mencoder_pid + 1`
- fi
- i1=`expr $i1 + 1`
- if [ $i1 -gt 20 ]; then
- break
- fi
-done
-}
-
-clean_up_files()
-# clean up left over files
-{
-unlink $TMPFILE 2> /dev/null
-unlink $TMPCUTFILE 2> /dev/null
-unlink $TMPCUTFILE.map 2> /dev/null
-unlink $TWOPASSFILE 2> /dev/null
-unlink $TWOPASSFILE.tmp 2> /dev/null
-unlink $STATUSFILE 2> /dev/null
-unlink $MENCODER_RETURN_CODE 2> /dev/null
-unlink $MENCODER_RETURN_CODE_2 2> /dev/null
-}
-
-#-------MAIN SCRIPT------------
-
-# check if %JOBID% is passed from command line
-JOBID=$5
-if [ -z "$JOBID" ]; then
- NO_JOBID=1
-else
- NO_JOBID=0
-fi
-
-# create temp filename so multiple instances won't conflict
-TMPNAME=toX264-$$
-TMPFILE=/myth/tmp/$TMPNAME.avi
-TMPCUTFILE=/myth/tmp/$TMPNAME.mpg
-MENINPUTFILE=$1
-TWOPASSFILE=/myth/tmp/$TMPNAME-2pass.log
-STATUSFILE=/myth/tmp/$TMPNAME-status.log
-MENCODER_RETURN_CODE=/myth/tmp/$TMPNAME-mencoder_return_code
-MENCODER_RETURN_CODE_2=/myth/tmp/$TMPNAME-mencoder_return_code_2
-
-# log file location
-LOGFILE=/var/log/mythtv/myth2x264.log
-CDate="`date`"
-echo "" >> $LOGFILE
-echo $CDate >> $LOGFILE
-echo "File to encode: $MENINPUTFILE Name: $2" >> $LOGFILE
-
-# start timer
-beforetime="$(date +%s)"
-
-check_myth_jobcmds
-
-# check if using cutlist
-if [ $USECUTLIST = Y ]; then
- MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $MENINPUTFILE | grep 'Cutlist:' | cut -d \ -f 2`
- if [ -n "$MYTHCOMMFRAMES" ]; then
- echo "Extracting Cutlist..." >> $LOGFILE
- update_comment "Extracting Cutlist"
- /usr/bin/nice -n19 /usr/bin/mythtranscode --chanid "$3" --starttime "$4" --outfile "$TMPCUTFILE" --mpeg2 --honorcutlist
- MENINPUTFILE=$TMPCUTFILE
- fi
-fi
-
-# run mencoder in background to do 1st pass conversion
-echo "Encoding 1st Pass at $RESOLUTION..." >> $LOGFILE
-( /usr/bin/nice -n19 /usr/bin/mencoder $MENINPUTFILE -passlogfile $TWOPASSFILE \
--oac copy -ovc x264 -vf lavcdeint,scale=$RESOLUTION \
--x264encopts threads=auto:pass=1:turbo=1:subq=1:frameref=1:bframes=3:bitrate=$BITRATE \
--o /dev/null > $STATUSFILE 2>&1 ; echo $? > $MENCODER_RETURN_CODE ) &
-mencoder_pid=$!
-command_pid=$mencoder_pid
-get_mencoder_pid
-
-check_background_progress "2"
-
-# run mencoder in background to do 2nd pass conversion
-echo "Encoding 2nd Pass at $RESOLUTION..." >> $LOGFILE
-( /usr/bin/nice -n19 /usr/bin/mencoder $MENINPUTFILE -passlogfile $TWOPASSFILE \
--oac copy -ovc x264 -vf lavcdeint,scale=$RESOLUTION \
--x264encopts threads=auto:pass=2:subq=5:8x8dct:frameref=3:bframes=3:b_pyramid:weight_b:bitrate=$BITRATE \
--o "$TMPFILE" > $STATUSFILE 2>&1 ; echo $? > $MENCODER_RETURN_CODE_2 ) &
-mencoder_pid=$!
-command_pid=$mencoder_pid
-get_mencoder_pid
-
-check_background_progress "2 + 50"
-
-ERROR=$?
-
-# make output filename unique
-OUTPUTFILE=$OUT_DIR/$2.avi
-i=1
-while [ -e "$OUTPUTFILE" ]
-do
- OUTPUTFILE=$OUT_DIR/$2-$i.avi
- i=`expr $i + 1`
-done
-
-# move temp file to output location
-chown mythtv "$TMPFILE" && mv "$TMPFILE" "$OUTPUTFILE"
-
-# stop timer
-aftertime="$(date +%s)"
-seconds="$(expr $aftertime - $beforetime)"
-
-if [ $ERROR -eq 0 ]; then
- echo "File Encoded Successfully: $OUTPUTFILE" >> $LOGFILE
- hours=$((seconds / 3600))
- seconds=$((seconds % 3600))
- minutes=$((seconds / 60))
- seconds=$((seconds % 60))
- echo "Encoding took $hours hour(s) $minutes minute(s) $seconds second(s) @ $current_FPS fps." >> $LOGFILE
- update_status 272
- update_comment "Encode Successful. Encoding Time: $hours hour(s) $minutes minute(s) $seconds second(s)"
-else
- update_status 304
- update_comment "Encode Failed. Exit status: $ERROR"
- echo "ERROR: $ERROR" >> $LOGFILE
-fi
-
-clean_up_files