MythStream Installation

This text covers the installation of MythStream v0.18_x
For installation of older versions see the INSTALL file in the source tarball.

1. Runtime requirements

MPlayer
MythStream delegates stream play to MPlayer. Use a recent MPlayer version, and make sure it has the codecs for the streams you want to play. If experiencing problems, start the stream with mplayer from the command line, or use the MythStream dump window (press "D").

PERL XML modules
Install the perl modules XML::Simple, XML::DOM, XML::XQL. Use the package manager of your distribution to get the perl modules (like apt-get install libxml-simple-perl libxml-dom-perl libxml-xql-perl for debian) OR do
 
shell> perl -MCPAN -e shell
cpan> install XML::Simple
...

Note1: If you use parsers not included in the tarball you might need additional PERL modules. Check the parser documentation or run mythfrontend from the commandline to view PERL errors dumped to stdout.

Note2: It is possible to use MythStream with binary parsers. See the README in the alt_parsers directory for more information.

ESpeak synthesizer
Install the Speech synthesizer espeak if you want feedback during stream browsing. This way you can start a stream without turning on your TV. Support is pre-alpha. It runs fine on my system, but during tests on a (ALSA) system espeak was put to nanosleep forever (or until I killed it by pressing "END" in MythStream). To test: run espeak "[long line of text]" from two consoles at the same time and see if it hangs.


2. Upgrading

2.1 Custom player and GUI settings

If you changed player.xml or one of the stream-ui.xml files, copy them elsewhere before installing mythstream and run diff.

2.2 Parser upgrade

When the upgraded MythStream plugin loads for the first time:

2.3 Demo stream storage: new features demo

To load another stream storage, first press 0. Then press the storage index number:

The demo stream storage contains example stream items. The stream items in the "Interaction" folder use muti-stage parsers to query sites like worldwidemediaproject.com, shoutcast.com and uitzendinggemist.nl. The "Video" folder contains stream items pointing to DailyMotion and Youtube video feeds. The "playlist demo" stream items in this folder can be used to create playlists: mark a video (key "M") to include it in the playlist and start the top item. Not every parser is used in the demo database, check the parser directory for more.


3. Compilation and installation

Requirements

cd mythstream
ln -s [path to mythtv source]/libs/lib* .

echo $QTDIR

Configure QTDIR in $HOME/.bash_profile or set it on command line with QTDIR=/usr/lib/qt3; export QTDIR
If QTDIR is not set properly, make will say it's not able to make ....mkspecs/default/qmake.conf

Note: if you set QTDIR after running qmake you have to remove Makefile and mythstream/Makefile before running qmake again.

Installation

  1. type qmake mythstream.pro in the main directory to create the Makefile.

  2. type make in the main directory to begin compiling

  3. type make install

Note: the [local/] part depends on the PREFIX in settings.pro

4. MythTV menu and themes

Since MythTV v0.20, MythStream menu entries are included in MythTV's menu xml files.

Note: MythTV 0.20 users must correct a typo in /usr/share/mythtv/library.xml: mythtream should read mythstream.

Some themes still need manual editing to define the STREAM button in the theme's theme.xml file. This entry provides the icon in the menu entries. Examples:

In themes/blue/theme.xml,

<buttondef name="STREAM">
<image>stream.png</image>
<offset>60,30</offset>
</buttondef>

In themes/MythCenter[-wide]/theme.xml,

<buttondef name="STREAM">
<image>ui/button_off.png</image>
<watermarkimage>watermark/stream.png</watermarkimage>
<offset>0,0</offset>
</buttondef>

5. Optional configuration

5.1 Video scaling

The file player.xml holds mplayer command line parameters. If you have a proper display driver installed, you might want to remove this (enables software scaling):

<item>
<name>-zoom</name>
<value></value>
</item>

5.1 Changing the default download directory

When a parser (podcast, dailymotion/feed or a custom parser) adds a handler field with value STREAM_DL or FUZZY_DL to a stream item, the stream item (pointing to a media file, not a stream) will be downloaded before play. This file is stored in the $HOME/.mythtv/mythstream/downloads directory, and a reference to the download is stored in the active stream storage.

By symlinking and (nfs) mounting this download path to a common file storage the downloads can be shared between users and frontends.

A) To store the downloaded files in the local directory /var/downloads:

cd /var
mkdir downloads
chgrp -R users downloads
chmod -R 2775 downloads

cd $HOME/.mythtv/mythstream
cp -dpR downloads/* /whatever/path/to/whatever/directory/
ln -s /whatever/path/to/whatever/directory downloads
ln -s /var/downloads .

B) To NFS mount a shared download directory on a remote machine (media):

/var/downloads desktoppc(rw,no_root_squash)

media:/var/downloads /home/me/.mythtv/mythstream/downloads nfs rw,rsize=4096,wsize=4096,hard,intr,async,nodev 0 0

Make sure the NFS server runs, MythStream will lockup when the server is unavailable.

Short notes about the download process:

  1. upon selection of a item with STREAM_DL or FUZZY_DL handler, wget will download the uri to the download dir.
  2. the downloading file will be renamed as <filename>_temp, a reference to the download is added to the special "download" folder
  3. if a downloading stream item is selected again, the partially downloaded file will play
  4. the process that started wget is aware of the running download
  5. when the download finishes the file will be renamed as <filename>
  6. if mythstream is exited the download continues, but the filename (and the reference to it) is not renamed
  7. other mythstream processes will regard the <filename>_temp as a failed download and will start a new download upon selection. What happens next is specified in the wget documentation (I guess).
  8. If a stream item in the download folder is deleted, the file it references is deleted too
  9. If a stream item is moved from the download folder and then deleted, the downloaded file is not removed.

6. Troubleshooting

6.1 No MythStream menu entry.

The MythStream menu entry can be found behind the "Media Library" menu entry in mythfrontend. If it doesn't appear:


6.2 No stream items

If no stream items are displayed after first install and first run, restart the plugin after deleting the streams table in the mythconverg database:
shell> mysql mythconverg -u root
mysql> drop table streams;
The next time mythstream is started, the file /usr/share/mythtv/mythstream/streams.res is loaded into the database.


6.3 RTSP streams won't play, Windows Media streams won't play

If you can't play a stream check if MPlayer is complaining about missing codecs in /usr/local/lib/win32 or other paths. Review the mplayer output in the dump window (press D), or take the stream url and run mplayer from the command line.

If MPlayer mentiones the path of the missing codecs, just create that path and copy the proper codecs to it. Download them from:
http://www.mplayerhq.hu/DOCS/HTML/en/codecs.html


6.4 No song title visible while playing Shoutcast streams, cannot play Flashvideo directly

Check if your mplayer version is recent enough:


6.5 Video plays in a small box topleft, switching to fullscreen results in a single horizontal or vertical line

Check your .mplayer/config file, and remove the option really-quiet=yes