MythTV on Mac OS X
New users: before attempting to install MythTV for the first time, please familiarize yourself with the distinction between frontend and backend.
MythTV works just fine on OSX (but see the gotchas below). To watch TV at acceptable speeds, you'll want at least an 800 MHz G4 or better. For HDTV nearly any Intel-based Mac released from 2008 onwards will suffice. MythTV will not use GPU acceleration on OSX until #2381 or an equivalent has been finished.
Contents
Installing pre-built binaries
Pre-built Downloads
Version | Download |
---|---|
0.22-fixes |
|
0.21-fixes |
|
0.21 |
|
0.20.2 |
|
0.20-fixes |
|
0.20 |
|
0.19-fixes |
|
0.19 | |
0.18.1-fixes | |
0.18.1 | |
0.18 | |
0.16 | |
older |
Nigel Pearson can also provide a 0.15 or 0.17 binary, if you really need one. |
svn (nightly builds) |
|
You're now ready to run mythfrontend! Find the MythFrontend.app icon and double click it to start mythfrontend. If it doesn't start, open a console window to see the mythfrontend output which may give you some clues as to what's wrong.
Installing MythTV Backend on Mac OS X using prebuilt binaries
Note: To use an OS X backend, it may be easier to start with a Linux machine running a recent SVN version of MythTV to act as a backend. If you've never installed MythTV, you can first set up Linux version such as MythBuntu, and only look at the OS X version once everything's working properly there. That said, don't be discouraged; many people use a OS X with FireWire STBs, IPTV, and the HD Home Run.
Install Wget
The MythFillDatabase program (fetches schedule info) depends on wget which is not included in the default install of Mac OSX. It can be installed directly, via Fink or MacPorts, or by downloading and building it. MythTV-Setup.app
also uses wget when trying to obtain the channel list so one must install wget before trying to use the backend.
Set Up MySQL
The MythTV backend relies on having a MySQL database available for storing information about upcoming and past recordings, channel setup, and the like.
Download and Install
Grab and install MySQL 5.0 for Mac OS X from the Mysql site.
Server Startup
After installation, the mysql server needs to be started. The MySQL distribution sets itself to start automatically on boot by creating a startup item called /Library/StartupItems/MySQLCOM and setting a value in /etc/hostconfig. Therefore the easiest way to start the mysqld daemon is simply to reboot after installing MySQL. To start MySQL manually you can use /usr/local/bin/mysql/bin/mysqld
. This may prompt an error message for lack of access to the directory. If it does type chmod oug+rwX directory
to enable it, then start the database server again.
Initial Database Setup
Open Terminal
. Type in the following and press enter:
cd /usr/local/mysql/bin/
Configuring Default Database Users
Delete the anonymous mysql accounts by entering the following commands:
shell> ./mysql -u root mysql> DROP USER '';
If you don't know your machine's hostname, look it up in the table produced by entering
mysql> SELECT Host, User FROM mysql.user;
Then, set passwords for the root account by entering the below commands and substituting your desired password for newpwd and your backend machine's hostname for host_name.
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd'); mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
Database Privileges and Character Set
Finally, create the mythtv user and database in MySQL, substituting your desired password for that user where it says "mythtv-password":
CREATE DATABASE if not exists mythconverg; GRANT ALL ON mythconverg.* TO mythtv@localhost IDENTIFIED BY "mythtv-password"; FLUSH PRIVILEGES; GRANT CREATE TEMPORARY TABLES ON mythconverg.* TO mythtv@localhost IDENTIFIED BY "mythtv-password"; FLUSH PRIVILEGES; ALTER DATABASE mythconverg DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
The above commands are equivalent to the setup script that runs automatically when you install MythTV on other *nix distributions.
Finishing Backend Setup
Now download the backend (from one of the servers above).
Launch MythTV-Setup.app
and go through the configuration steps. Follow the instructions (it will tell you to run MythFillDatabase.app
once you've setup your capture card).
You're done! Watch and record TV using MythFrontend.app
.
Automatic Backend Startup
One way to start the backend is to make it a Login Item for the DVR user using the Accounts section of the control panel. However, MythBackend is really a daemon, and it is nice to control it as such. The approved way to automatically start processes in OSX is to use launchd
. Placing the following property list in ~/Library/LaunchAgents/MythBackend.plist
of the relevant user account will cause MythBackend to be started whenever that user logs in, and restarted if killed or crashed.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>MythBackend</string> <key>ProgramArguments</key> <array> <string>/Applications/MythBackend/MythBackend.app/Contents/MacOS/MythBackend</string> <string>-l</string> <string>/var/log/MythBackend</string> </array> </dict> </plist>
Note that the path to the MythBackend application binary should be set to where you happen to keep it. If you need to stop the process, you cannot just kill
it. Instead use
launchctl unload -w ~/Library/LaunchAgents/MythBackend.plist
and once you are ready to start it again type
launchctl load -w ~/Library/LaunchAgents/MythBackend.plist
Gotchas and Warnings
Limited Tuners
As of v0.21, the Mac OS X backend does not support the majority of tuners listed as being supported by the (Linux) version of MythTV. The following tuners are known to work using the Mac version of Myth backend: HDHomeRun. Recording via firewire from set top boxes such as the Motorola 6412 or Motorola DCT 6200 is also known to work. Plans (if any) for additional support are unknown.
Dolby AC3 Sound
(As of mythtv 22-fixes-20091115) You cannot yet use AC3 passthrough of Dolby digital audio, due to the bug discussed in #5552. Do not enable this option in your setup.
Channel Scan
(As of mythtv 21-fixes-20090215) Multicore machines are likely to run afoul of bug #5832, crashing setup while trying to perform a scan for channels. While on some operating systems one can use the taskset
command to restrict to a single core, OSX lacks any equivalent. The problem is claimed to be fixed in the "mythtv-channel-scan" branch of SVN, but as of this writing no prebuilt backend binaries are available for this branch. The best workaround is presently to set up a temporary backend on Linux, scan channels, and then copy the channel
and dtv-multiplex
tables back to the Mac using mysqldump
. (Not everyone runs into this problem)
Firewire Recording
(As of mythtv 0.21-fixes-20090316) There is one important note if trying to record via FireWire on an Intel Mac. The MythBackend cannot get a LAM lock signal when recording TV via FireWire. The solution is to check the "Open with Rosetta" checkbox on the Get Info panel of MythBackend.app. See this post for information.
Because of this, it's important to open MythBackend.app from the Finder and not from a Terminal window because it won't open with Rosetta. There must be some PPC-specific FireWire code in there.
This method had successfully been used to record HD over FireWire on a Intel Mac Mini (Macmini3,1) on a Motorola DCT 6200 cable box.
Monitoring
Process View and CPU Usage
To see if you have processes running, you can use the ps
command in a terminal, or even better, you can use the Activity Monitor supplied by Apple (usually found in /Applications/Utilities/
). Sort by process name. You should see MySQL as mysqld
and MythBackend as MythBackend
.
Log Files
By default, MythBackend logs to standard output (often /var/log/system.log
), which can be painful to separate from unrelated messages. If you launch the backend with the -l logfilename
directive then it will log there instead. You can view the logs with /Applications/Utilities/
in a command-line window, or more conveniently using Console.app
, also in /Applications/Utilities/
.
MythFillDatabase sends messages both to the standard output and the standard error. You may find it convenient to similarly redirect that output.
Building MythTV Yourself
Building Automatically
The easiest way to build MythTV from source is to download the packager script. Either http://svn.mythtv.org/svn/branches/release-0-22-fixes/mythtv/contrib/OSX/osx-packager.pl or http://svn.mythtv.org/svn/trunk/packaging/OSX/build/osx-packager.pl. This script just needs XCode and an internet connection - it downloads and builds all the dependencies, and if you are lucky gives you several double-clickable applications.
Building Manually
Sadly, the packager script doesn't always work. Maybe one of the downloadable dependencies has been outdated, and someone needs to try building against a newer one. Maybe the MythTV source code has changed and broken Mac builds. Look on the Myth_on_Mac_-_Build_status page for hints about this. For instructions about building by hand, see Building MythTV on Mac OS X
If you just want to watch TV on your Mac, and you aren't planning to do development, you're better off using a prebuilt binary.
Tips and Tricks
Playback Settings
In the setup screens, explore the "TV Settings" -> "Playback" options. You'll find two pages of Mac-specific settings there. If your machine isn't fast enough, you can choose to drop frames here. If you have cycles to spare, you'll find fun settings like video in the Dock, on the Desktop, or in a floating (and optionally translucent) window.
Remote Control
Apple Remote
The standard keys work as expected: Directional keys generate arrow keys, Play/Pause: Enter, Menu: Escape. Holding down keys will generate alternate inputs: Hold Play/Pause: P (play/pause playback), Hold Menu: M (Menu in playback), Hold Left/Right: Home/End. The Apple Remote will not work properly on versions of Snow Leopard prior to 10.6.2 (#7112).
Other Infrared Remotes
Bluetooth Control
If you want to try controlling MythTV via Bluetooth, Brad came up with a 'Salling Clicker' action http://members.shaw.ca/dignon/MythTV%20Remote%20Suite%20v1_1.cgz
Computer To Computer Network Control
If you want to try controlling MythTV from another Mac (perhaps by a PowerBook from the couch), Generally Helpful Software has released an early beta of a remote control application, Remote Remote GH for MythTV http://web.mac.com/grhowes/iWeb/Generally%20Helpful%20Software/Remote%20Remote%20GH.html
Another Mac OS X network remote control is available at http://ignasiak.googlepages.com/mythremote
MythGrowl Notifications
There is an application for Mac OS X called 'MythGrowl' that generates Growl notifications when your MythTV backend starts or finishes a recording. Not part of Mythfrontend but worth a mention. It can be downloaded at http://mythgrowl.sourceforge.net/
Performance Tweaks for Underpowered Systems
To improve playback performance try new 'Use libmpeg2' setting (on the first page of Setup, Settings, TV Settings, Playback. Running TV playback in a smaller window can also improve performance, as can customising your backend recording settings. (e.g. Smaller capture from analog cards, 44.1KHz audio is a better match to some Macs than 48KHz)
For more information
Mailing Lists
If you have problems with this guide, the mythtv-users mailing list is the best place to start. Check the searchable archive to see if your problem has already been discussed. Also, you can check the mythtv-dev list to see if it's a problem with SVN; if you can't compile MythTV, you may just have to wait a few days and try again.
When posting to the -users list, mention this guide and put "OS X" in the subject line. If you don't do those two steps, your humble guide author (Jeremiah Morris) may miss or ignore your message.
External Links
- Mac Mini frontend and backend Hardware and software setup guide
- Mini usage report Success report
Wiki
For MythTV on Mac OS X on Intel machines, there is also also Myth on Mac x86. (However, that page is very out of date in many respects.)
Help Improve This Page
Finally, remember that this is a Wiki. If you find an inaccuracy, or have advice that may be helpful to others, improve this guide by adding your information!