Offloading MythTV Transcoding to another computer

In this example, I’m going to use the mythtv@mythbackend account to access mythtv@superfast to transcode recordings on the superfast computer.  In this example, I will be pulling the video files from an SMB share on the mythbackend and saving them to a folder that is mounted on my data server.

Source: \\mythbackend\recordings mounted as /mnt/recordings

Destination: \\data\data mounted as /mnt/data

 

(For more info on auto mounting, check out this article: Automount smb share with….

 

1) Create ‘mythtv’ account on a super fast computer with a super strong password.

 

2) Log into the myth backend as ‘mythtv’ user (In my case, that is what mythbackend runs as).

 

3) run ssh-keygen and press enter for everything, including the passphrase.

 

4) ls .ssh to verify you have the following files:

 

$ ls .ssh
id_rsa  id_rsa.pub

 

5) vi id_rsa.pub and copy the contents.

 

6) ssh to superfast computer with new account.

 

7) mkdir .ssh

 

8) vi .ssh/authorized_keys (this will create a new file)

 

9) Paste what you copied from the id_rsa.pub file on mythbackend.

 

10) save the file and log out.  Now, you should be able to ‘ssh superfast’ and it log in without a password.  Test and log back out.

 

11) Now, to setup the scripts.  create a bin folder for mythtv@mythbackend:

 

/home/mythtv/bin

 

12) create the following file :  $vi ~/bin/forward-transcode.sh for mythtv@mythbackend

 

#!/bin/bash
ssh mythtv@10.10.10.108  “/home/mythtv/bin/mythtv-transcode-xbox.sh ${1} ${2// /_} $3 $4”

 

13)  Ssh mythtv@superfast and create a bin folder for mythtv@superfast:

 

/home/mythtv/bin

 

14) create the following file: $ vi ~/bin/ mythtv-transcode-xbox.sh for mythtv@superfast.  In my case, I am doing all this to transcode HD to SD so that my XBMC (running on an original Xbox) can play back shows recorded with the HD Homerun).

 

#!/bin/sh
mencoder /mnt/recordings/$1 -oac mp3lame -xvidencopts bitrate=300 -vf scale=320:240 -ovc xvid -o /mnt/data/MythTV/$2

 

15) Setup MythTV to run the scripts after each show is recorded.

– Stop the mythtv-backend

– Launch mythtv-setup

– General, next a bunch of times till you get to the “Job Queue (Backend Specific)” Screen.

– Check the “Allow User Job #1 jobs” and hit next till you get to the “Job Queue (Job Commands)” Screen.

– Enter a description for “User Job #1 Description.

– Enter the following for the “User Job #1 Command” :

 

/home/mythtv/bin/forward-transcode.sh “%FILE%” “%DIR%/%TITLE% – %PROGSTART%.avi”

 

16) Final step.  Using the web interface, go into your “Recording Schedules”, select a show, check the box next to the description you entered, and save it.

 

Now, after the show has completed recording, mythbackend should run the User Job #1 command and you should be all set.

 

Testing/Troubleshooting:

 

Testing mencoder command:

$ mencoder /mnt/recordings/1265_20120218093000.mpg -oac mp3lame -xvidencopts bitrate=300 -vf scale=320:240 -ovc xvid -o /mnt/data/MythTV/Test2.avi

 

Testing mythtv-transcode-xbox.sh:

$ ./mythtv-transcode-xbox.sh 1265_20120218093000.mpg Test3.avi

 

Testing forward-trasncode.sh

$ ./forward-transcode.sh 1265_20120218093000.mpg Test4.avi