bonelifer

MythTV HandBrakeCLI transcode "Android Tablet"

Sep 28th, 2015
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # First does a lossless MPEG-2(honorcutlist) transcode removing commericals(cutlist must be manually made before
  4. # hand), then rebuilds the seek table. It then uses handbrakecli to transcode the mpg to a m4a(H264, AAC).
  5. #
  6. # Loosely based on mythtv-transcode-h264 version 0.8 by Defcronyke Webmaster.
  7. #
  8.  
  9. # Arguments
  10. # $1 must be the directory/file to be transcoded.
  11. # $2 must be the output directory / file name. The directory must be writeable by the mythtv user
  12. # $3 must be chanid
  13. # $4 must be starttime
  14. # the full userjob command in mythtv-setup should look like this:
  15. #
  16. # Format for TV:
  17. # /usr/bin/mythtv-transcode-mkv.sh "%DIR%/%FILE%" "/media/Store/incoming/TV/%TITLE% - S%SEASON%E%EPISODE% - %SUBTITLE%.m4v" "%CHANID%" "%STARTTIMEUTC%"
  18. #
  19. # Format for MOVIES:
  20. # /usr/bin/mythtv-transcode-mkv.sh "%DIR%/%FILE%" "/media/Store/incoming/Movies/%TITLE%.m4v" "%CHANID%" "%STARTTIMEUTC%"
  21. #
  22. #
  23.  
  24. # MythTV Install Prefix (make sure this matches with the directory where MythTV is installed)
  25. #
  26. INSTALLPREFIX="/usr/bin"
  27.  
  28. # don't change these
  29. #
  30. MYPID=$$
  31. DIRNAME=`dirname "$1"`
  32. DIRNAME2=`dirname "$2"`
  33. BASENAME=`echo "$2" | awk -F/ '{print $NF}' | sed 's/://g' | sed 's/?//g' | sed 's/\?//g' | sed 's/*//g' | sed 's/!//g' | sed s/"'"/""/g`
  34. CHAN="$3"
  35. START="$4"
  36.  
  37.  
  38. #Get mythtv database information
  39. #
  40. DBSERVER=""
  41. DBUSER=""
  42. DBNAME=""
  43. DBPASS=""
  44.  
  45. #Try getting mythtv database information from existent files in the following order
  46. #
  47. MYTHCONFIGFILE="/etc/mythtv/config.xml"
  48. MYCONFIGFILE="/home/mythtv/.mythtv/config.xml"
  49.  
  50. if [ -f "$MYTHCONFIGFILE" ]; then
  51. DBSERVER="$( grep -E -m 1 -o "<DBHostName>(.*)</DBHostName>" $MYTHCONFIGFILE | sed -e 's,.*<DBHostName>\([^<]*\)</DBHostName>.*,\1,g' )"
  52. DBUSER="$( grep -E -m 1 -o "<DBUserName>(.*)</DBUserName>" $MYTHCONFIGFILE | sed -e 's,.*<DBUserName>\([^<]*\)</DBUserName>.*,\1,g' )"
  53. DBNAME="$( grep -E -m 1 -o "<DBName>(.*)</DBName>" $MYTHCONFIGFILE | sed -e 's,.*<DBName>\([^<]*\)</DBName>.*,\1,g' )"
  54. DBPASS="$( grep -E -m 1 -o "<DBPassword>(.*)</DBPassword>" $MYTHCONFIGFILE | sed -e 's,.*<DBPassword>\([^<]*\)</DBPassword>.*,\1,g' )"
  55. elif [ -f "$MYCONFIGFILE" ]; then
  56. DBSERVER="$( grep -E -m 1 -o "<Host>(.*)</Host>" $MYCONFIGFILE | sed -e 's,.*<Host>\([^<]*\)</Host>.*,\1,g' )"
  57. DBUSER="$( grep -E -m 1 -o "<UserName>(.*)</UserName>" $MYCONFIGFILE | sed -e 's,.*<UserName>\([^<]*\)</UserName>.*,\1,g' )"
  58. DBNAME="$( grep -E -m 1 -o "<DatabaseName>(.*)</DatabaseName>" $MYCONFIGFILE | sed -e 's,.*<DatabaseName>\([^<]*\)</DatabaseName>.*,\1,g' )"
  59. DBPASS="$( grep -E -m 1 -o "<Password>(.*)</Password>" $MYCONFIGFILE | sed -e 's,.*<Password>\([^<]*\)</Password>.*,\1,g' )"
  60. fi
  61.  
  62. # play nice with other processes
  63. #
  64. renice 19 $MYPID
  65. ionice -c 3 -p $MYPID
  66.  
  67. # remove commercials and rebuild index
  68. #
  69. $INSTALLPREFIX/mythtranscode --chanid "$3" --starttime "$4" -m --honorcutlist -p autodetect
  70.  
  71. # Rebuild Index
  72. #
  73. $INSTALLPREFIX/mythcommflag --file "$1" --rebuild
  74.  
  75. # Handbrake
  76. #
  77. $INSTALLPREFIX/HandBrakeCLI -i "$1".tmp -o "$DIRNAME2/$BASENAME" --preset="Android Tablet"
  78.  
  79.  
  80. # Delete the TEMPORARY commercial edited file
  81. cd $DIRNAME
  82. rm "$1".tmp
Advertisement
Add Comment
Please, Sign In to add comment