Xbox Frontend

From MythTV Official Wiki
Revision as of 21:25, 25 November 2006 by Groggory (talk | contribs) (Install XBMC MythTV)

Jump to: navigation, search

An Xbox makes a wonderful standard definition MythTV front end due to its reasonably powerful CPU and graphics subsystem. The menus within MythTV aren't exactly snappy but it's good for the price. Sadly, the Xbox cannot handle decoding HDTV resolution (the CPU isn't that powerful).

Running Mythfrontend on Linux

Install a Linux distribution

MythTV can be installed on an Xbox by installing a Linux distribution on a modded/softmodded Xbox. One distribution that works well is Xebian - see the [1].

For the purposes of this HOWTO, follow the Xebian HOWTO but ignore the sections on digital audio output and Compiling the ALSA kernel-module.

Installing the MythTV front end

There are several options to install the MythTV front end:

  1. Install MythTV on Xebian stable (sarge) with pre-compiled binaries - see the Xbox_Frontend_on_Xebian_stable for more information.
  2. Install MythTV on Xebian unstable (sid) with pre-compiled binaries - see the MythTV on Xebian HOWTO for more information.
  3. Compile MythTV using the released source code
  4. Compile MythTV using the latest SVN snapshot
  5. Xbox Install using E Images - Theory is that you can ftp these files to the E: Drive on the xbox and just boot directly into a mythfrontend ready xebian environment.

Configuring the MythTV front end

Section for Configure the Xbox MythTV to talk to the MythTV Backend

Other configuration issues/notes

Section for other Xbox configuration issues eg. Digital sound eg. Video quality eg. Overscan

  • Had some audio sync issues with MythVideo so I forced mplayer to use alsa. It seemed to do the trick.
  • To enable mplayer to use lirc be sure to link ~/.mythtv/lircrc to ~/.lircrc. Also you have to add "lirc=yes" to your ~/.mplayer/config file.
  • To get the pause button to work in MythVideo aka mplayer create a file in ~/.mplayer/ called input.conf. It will let you map out certain keys. A small sample file might look like:
RIGHT seek +30
LEFT seek -15
PGUP seek -600
PGDWN seek 600
ESC quit
p pause
i osd
[ volume -2
] volume 2
  • If you run Hauppage cards or record to mpeg2 don't try picture in picture. The XBox is just too slow.
  • The XBox is incapable of doing high definition due to lack of processing power and XvMC.
  • When using the sample startup scripts on the howto's above it seems to startup two mythfrontends which brings the xbox to a halt.
  • The ALSA driver has no access to hardware volume controls. You can get around this by following the directions at Xbox Sound

Running XBMC MythTV Frontend

The XBMC (XBox Media Center) is an Open Source project (nothing to do with Microsoft!) that is based on MPlayer.

The XBMC MythTV frontend is a Python Script that works in a similar fashion to the original Mythfrontend without the overhead of running Linux or XWindows on your xbox.

Install XBMC

There are CD Images (somewhere on the net - due to legal reasons) that will boot in a modded xbox and install XBMC. Or you can use Xebian to transfer the XBMC files onto the C:\ and E:\ drives.

Install XBMC MythTV

Download and install as per the XBMC MythTV readme.txt instructions.

1. Xbmcmythtv requires that you share your mythtvbackend video recording via Samba.

  If Samba is not set up properly and xbmc can not connect to the Samba share 
  you have shared out the xbmcmythtv will fail. 
  From xbmcmythtv forum:
  ...I can't say for sure what the problem is except that maybe your samba share
  requires a username and password as part of the path. 
  Make your prefix something like smb://usersword@host_or_ip/service. 
  Also, I would test this with XBMC first and then try to get xbmcmythtv working. 
  Don't forget to check the permissions of the directories as well... 

  One setting that I have in smb.conf that is different than the default is in the global section.
  Keep in mind this is not considered very secure: 
  Edit /etc/smb.conf and add
  security = share 

  Here is the definition of my mythtv share: 

  comment = Television 
  browseable = yes 
  path = /var/video 
  public = yes 
  read only = yes 
  writable = no 

  My file prefix is: 


  My live prefix is: 


  This means that the ring buffer files are created in the same directory as the recorded show .nuv files (i.e. /var/video).
  Also, the myth database populates the host field in various tables so that %h expands correctly. Some people have had 
  problems with this so I sometimes suggest that they just replace it with the IP of the back end server...Gimblefoot 
  Restart samba. 

2. Upload the xbmcmythtv directory and everything below it to your XBMC/scripts directory on your xbox. So after you have done this, you should have a XBMC/scripts/xbmcmythtv/ dir on your xbox.

3. Run the script and go into the Settings screen to specify your connection details and paths.

  Mythtv host: Enter the hostname / ip-address of your mythtv backend
  Mythtv port: Use default setting value
  Mythtv statusport: Use default setting value
  Mythtv protocol: Edit to correct Mythtv Protocol Version
      mythProtocolVersion = "8"    # 0.15.1
      mythProtocolVersion = "13"   # 0.16
      mythProtocolVersion = "14"   # 0.17
      mythProtocolVersion = "15"   # 0.18
      mythProtocolVersion = "17"   # ???
      mythProtocolVersion = "19"   # ???
      mythProtocolVersion = "26"   # 0.19
      mythProtocolVersion = "27"   # 0.19 SVN
  Mythtv minlivebufsize: Use default setting value
      Set the XBMC LAN video cache size (Settings -> System -> Cache -> Video Cache - Local Network) 
      to 1024 (not higher than 1536). Xbmcmythtv use this cache setting when the LiveTV start.
      From xbmcmythtv forum: know you don't need to set any cache settings as xbmcmythtv 
      will just grab the settings straight from XBMC and use that. The one set in xbmcmythtv is redundant. Frooby
      ...your live TV issue has to do with your buffer settings in XBMC and xbmcmythtv. 
      You need to lower your Video/LAN buffer XBMC setting down to around 1MB 
      and set the xbmcmythtv min ring buffer size to 700000 bytes.
      The default Video/LAN buffer setting is 4MB so XBMC tries to read 4MB right away from the ring buffer. 
      However, the ring buffer doesn't have 4MB to start with so XBMC thinks it has reached the end of file 
      after 2 seconds of playback. 
      You can fix this in two ways: lower the Video/LAN buffer size or increase the minimum ring buffer size 
      before playback is started. The issue with the first option is that your video playback might be choppy 
      if the value is set too low. The issue with the second option is that the larger the minimum ring buffer size,
      the longer before playback will start. The values I suggested above are what I personally use. 
      They seem to be a fairly good compromise but you can fiddle with the values if you want to experiment...Gimblefoot

  Mythtv tunewait: Use default setting value 
      Time to wait while mythtvbackend tune to channel and record the livetv .mpg file
  Mythtv startpage: Change to the prefered default start page
      [2,"Recorded Shows"
      [3,"Program Guide"
      [5,"Upcoming Shows"
  Mysql host: Edit to mythtv backend ip-adresse
  Mysql port: Use default setting value
  Mysql database: Use default setting value
  Mysql user: Use default setting value
      You also need to grant xbmcmythtv access to your MythTV MySQL database.
      shell> mysql --user=root mysql
      -> ON mythconverg.*
      -> TO 'mythtv'@'xbox_ip'
      -> IDENTIFIED BY 'mythtv';
      AND make sure that mysql is accessible on the network:
      comment out skip-networking in /etc/mysql/my.cnf 
      (add a # before it so it looks like: #skip-networking)
   Mysql password: Use default setting value
   Paths recordedprefix: Change to mythbackend recordings SMB path
      smb://h%/mythtv/recordings (smb://h%/SMB_share_name/recording_catalog)
      One of the things I have noticed with xbmcmythtv is that you may have to use an ip-address 
      instead of the variable /%h/ in the recordings and the buffer path in the xbmcmythtv settings screen.
      From xbmcmythtv forum: The usual reason this does not work is if Myth TV 
      does not populate a fully qualified domain name. XBMC cannot resolve simple host names 
      but it can resolve fully qualified domain names (Gimblefoot). 
   Paths livetvprefix: Change to mythbackend buffer SMB path 
      With Mythtv 0.19 mythtv recordings and buffer path are the same
   Paths localcopypath: Use default setting value
      The catalog E:\videos must exist on the xbox

4. On the settings screen, make sure that the connections test successfully then save your settings.

5. You should now be able to use the rest of the buttons on the main menu displayed by

Common problems:

       - mysql database/table permissions 
       - mythbackend on visible ip 
       - not having a recent build of XBMC 
       - not using a version of XMBC MythTV that matches the MythTV backend 
       - not having samba shared recordings/livetv directory 

Optional installation includes adding a shortcut to the popup menu on the main XBMC screen:

1. Edit the XBMC/skin/Project Mayhem III/pal/DialogSubMenu.xml skin file (this is a XBMC skin file - not one included with these scripts). 2. Look for a "SubMenu button" that has the visible attribute set to "no". 3. Edit the control as follows:

   - set the visible attribute to "yes".
   - set the label attribute to "My TV".
   - set the execute attribute "q:\scripts\xbmcmythtv\".

4. Reboot xbox or reload skin to show the skin change.

Broken Link -> An excellent article on this can be found here:

Google Cache of Link

Xbmcmythtv forum can you find here:

Other guides and sources of information

Installing MythTV with MythTV-Xbox (MXB) Installer by Dennis Cartier - 0.4.5 seems to be for MythTV 0.18 only (Good reference, but out of date and the install script is not maintained anymore, which means it doesn't work.)

MythTV Xebian Installation Support forum

XBMC MythTV Script

XBMC - XBox Media Center

MythTV / Xebian guide - for 0.18.1 and upgrading to 0.19