MythTV 0.25 added support for AirTunes and AirPlay for streaming audio and video from iOS devices to MythFrontend.
AirTunes does not work out the box because AirTunes is a proprietary format and is encrypted in order to enable vendor lock-in. Fortunately the encryption key has been discovered which enables use of AirTunes in open source applications such as MythTV.
When starting the frontend, you will get the following message in the log:
RAOP Conn: Failed to read key from: /home/<user>/.mythtv/RAOPKey.rsa
Simply copy the entire section:-
-----BEGIN RSA PRIVATE KEY----- (and everything inbetween) -----END RSA PRIVATE KEY-----
Paste into a new file at /home/<user>/.mythtv/RAOPKey.rsa and restart your frontend.
The correct RSA private key will have the SHA-1 sum
7a07afcdf4cbb5653318a329906afe5367cb8b13. You can check this with the command
shell> openssl rsa -in ~/.mythtv/RAOPKey.rsa -outform der | sha1sum
Enabling AirPlay (video support)
AirPlay support is disabled by default, you have to manually enable it at the command line.
Enabling In All Operating Systems
Set the environment variable named MYTHTV_AIRPLAY before starting the frontend from the command line, for example:-
shell> export MYTHTV_AIRPLAY="1" shell> mythfrontend
where shell> denotes the command-line prompt, not something you type.
Permanently Enabling in OSX Finder
If you want it enabled for starting MythFrontend from the Finder, run
shell> echo setenv MYTHTV_AIRPLAY 1 | launchctl
and if you want it enabled this way permanently then run
shell> echo setenv MYTHTV_AIRPLAY 1 >> ~/.launchd.conf
Not seeing AirPlay device
If you are not seeing the AirPlay device on your iPhone/iPad, make sure the avahi daemons is running (Linux/FreeBSD only)
A message like the following in your logs would show, you can then lookup the error code below
RAOPDevice bonjourregister.cpp:56 (Register) - Bonjour: Error: -65563
(taken from the freely available mDNSResponder source code)
kDNSServiceErr_Unknown = -65537, /* 0xFFFE FFFF */ kDNSServiceErr_NoSuchName = -65538, kDNSServiceErr_NoMemory = -65539, kDNSServiceErr_BadParam = -65540, kDNSServiceErr_BadReference = -65541, kDNSServiceErr_BadState = -65542, kDNSServiceErr_BadFlags = -65543, kDNSServiceErr_Unsupported = -65544, kDNSServiceErr_NotInitialized = -65545, kDNSServiceErr_AlreadyRegistered = -65547, kDNSServiceErr_NameConflict = -65548, kDNSServiceErr_Invalid = -65549, kDNSServiceErr_Firewall = -65550, kDNSServiceErr_Incompatible = -65551, /* client library incompatible with daemon */ kDNSServiceErr_BadInterfaceIndex = -65552, kDNSServiceErr_Refused = -65553, kDNSServiceErr_NoSuchRecord = -65554, kDNSServiceErr_NoAuth = -65555, kDNSServiceErr_NoSuchKey = -65556, kDNSServiceErr_NATTraversal = -65557, kDNSServiceErr_DoubleNAT = -65558, kDNSServiceErr_BadTime = -65559, /* Codes up to here existed in Tiger */ kDNSServiceErr_BadSig = -65560, kDNSServiceErr_BadKey = -65561, kDNSServiceErr_Transient = -65562, kDNSServiceErr_ServiceNotRunning = -65563, /* Background daemon not running */ kDNSServiceErr_NATPortMappingUnsupported = -65564, /* NAT doesn't support NAT-PMP or UPnP */ kDNSServiceErr_NATPortMappingDisabled = -65565, /* NAT supports NAT-PMP or UPnP but it's disabled by the administrator */ kDNSServiceErr_NoRouter = -65566, /* No router currently configured (probably no network connectivity) */ kDNSServiceErr_PollingMode = -65567, kDNSServiceErr_Timeout = -65568
Audio glitched in OS X
When using MythFrontend on OSX, you may not experience perfect audio playback, this issue is linked to a bug with IPv6 in the Qt software framework used by myth (Bug 25634)
Seeking on some streaming content hang the frontend
When seeking on some online content, such as when using the YouTube application, may result in the frontend showing "Searching..." and become non-responsive. You can usually interrupt it by stopping playback on the iPhone and restarting it.