                                   MythVideo
                                 Version 0.21


GENERAL INFO
------------

MythVideo is a MythTV module (see http://www.mythtv.org) that allows you
to play videos, DVDs and (optionally) VCDs. It can also be configured to
let you rip DVDs and transcode their video and audio content to other
(generally smaller) formats. The player can either use the MythTV
internal software (which now supports DVD menus), or simply to invoke
your favorite DVD/XVCD playing software (mplayer, ogle, xine, etc) as an
external command. The transcoding is based on and derived from the
excellent transcode package (see below).


BUILD/CONFIGURATION INSTRUCTIONS
--------------------------------

Requirements:
    MythTV 0.21 or higher installed and working

Compiling note: If you get an error on building this, that says
                something about 'mkspecs', then you don't have the
                QTDIR environment variable set.  On Debian, this
                should be set to /usr/share/qt.  I hear on
                mandrake, it's /usr/lib/qt3.  You'll need to
                figure out what it should be on your system, set
                the variable, and attempt to compile again.

In addition to MythTV's prerequisites, you'll have to have the following
software packages installed for *transcoding* to work:

   libdvdread - Needed by transcode and most direct DVD players.
                No longer required directly by MythVideo.
                http://www.dtek.chalmers.se/groups/dvd/downloads.shtml

         nasm - Not *strictly* required, but transcode seems happier
                if it's around. Using 0.98.36. You may want to do
                a ./configure --prefix=/usr/local
                http://nasm.sourceforge.net/

   mjpegtools - If you're using a hardware mjpeg capture card, you 
                almost certainly already have this. Transcode wants
                it in any case. Currently using 1.6.1.
                http://mjpeg.sourceforge.net/
                Note that mjpegtools has dependencies of its own,
                (libmovtar etc.) but that those packages are all 
                available at the mjpegtools site. This includes 
                avifile (0.7.38).

         xvid - A useful MPEG-4 compliant video codec, which is far
                more free than divx. 
                Currently using 0.9.1
                http://www.xvid.org/

       liba52 - Library for dealing with ATSC A/52 (AC-3) to handle
                DVD audio.
                http://liba52.sourceforge.net/

      libfame - Transcode will use this if it's installed.
                Currently 0.9.0
                http://fame.sourceforge.net/

    transcode - The core of the re-encoding process (most of the items
                above are actually things that transcode wants for
                full functionality). The more codecs you have
                installed, the better. You almost certainly want to
                install the divx codec, even if you plan to use xvid
                (see below).  Developers currently using 0.6.12, but
                you can probably use an earlier version (unless you're
                using subtitles, in which case you'll almost certainly
                _need_ 0.6.12 or later).  http://www.transcoding.org

If you want to be able to read encrypted DVD's, you might want to have
this installed as well:

    libdvdcss - A way to access the bits on that DVD you payed for.
                Probably want 1.2.9
                http://downloads.videolan.org/pub/videolan/libdvdcss/

If the internal player can't play your DVDs, you will need a player.
These have their own dependencies, none of which are listed here.
Depending on your distribution, there may be pre-packaged versions of
these applications available. You'll want one or more of:

      mplayer - You probably already have this working if you have
                MythVideo installed. Try to install as many codecs as
                possible while you're at it.
                http://www.mplayerhq.hu/

         ogle - Another player.
                http://www.dtek.chalmers.se/groups/dvd/

         xine - Another player. Almost certainly required for
                fully functional XVCD playback. 
                http://xinehq.de/

Once the make is completed, you should switch to root and do a
'make install'.  

- libmythvideo.so will go into /usr/local/lib/mythtv/plugins/


RUNNING MYTHVIDEO
-----------------

All the configuration is now done within the program.


INTERNET INFORMATION
--------------------
 
MythVideo now supports contacting internet sites to grab information
about the videos found. It does this by cutting out unnecessary
information in the filename and doing a search. MythVideo will also grab
a movie poster or coverart if it is available.

In order to start this process, once your videos have been scanned by
MythVideo, in the 'Video Manager' screen, simply select the video you
want to find information/artwork for. MythVideo will contact imdb.com.
If there is just one result returned, MythVideo will use the information
from that page. Otherwise, MythVideo will present you with a list of
movies and the year of the movie.

IF MYTHVIDEO DOES NOT FIND YOUR MOVIE OR JUST SEEMS TO DO NOTHING - Do
not despair! MythVideo also allows you to enter the IMDB Movie number
manually.  To enter a movie number manually or reset an entry in the
event of bad information, simply hit 'M' and select either 'Reset Entry'
or 'Manually Enter IMDB #' (depending on what you want to do).

If that fails, or you wish to set the cover art by hand, then just hit a
number key on your remote. All will be well.

Note: the imdb.pl script has dependencies you may need to install before
using.

imdb.pl Dependencies
    libwww-perl 


PARENTAL LEVEL INFORMATION
--------------------------

MythVideo now (really ... honest) supports the ability to limit what can
be viewed without a password/pin. There are 4 different levels that a
video/file can be set at. From within the configuration you can select a
default level. Any videos/files at or below that level will show up in
the list. 

MythVideo will only stay at that level until you try to change the level
(by hitting keys 1-4 in the Browse or List screens).

Note: A video that is set to level 0 will not be seen in any lists other
than the video manager. The Video Manager has complete control over the
parental levels of each video. For this reason, if the level 4 password
is set, you will be prompted upon entering the Video Manager for the
level 4 password.


VCD INFO AND DEPENDENCIES
-------------------------

To get xine working with the vcdx plugin, you will need to follow these
instructions in the sequence indicated:

    1. compile and install xine-lib (build from source)

    2. compile and install xine-ui (build from source)

    3. compile and install libcdio (build from source)

    4. compile and install vcdimager (build from source)

    5. compile and install libcdio (yes, again - rebuild it from source)
       Make sure that you re-run the configure script to pick up libvcd
       from vcdimager.

    6. compile and install xine-vcdx plugin

Unfortunately the package I had for xine did not have the xine-config
script so it was impossible to build any plugins without going back to
the original source.
    
Keybindings with xine are also another area of great joy. In order to
emulate existing usability characteristics, we want the Escape key to
take us back to the MythTV menu. This means that we need to change the
key bindings slightly for xine.

The keybindings file can be found at:

    ~/.xine/keymap

    1. Locate the value for "Menu" and change it to the following:

        # Jump to Menu.
        Menu {
            key = Escape
            modifier = control
        }

    2. Locate the value for "Quit" and change it to the following:

        # Quit the program.
        Quit {
            key = Escape
            modifier = none
        }

The following versions of xine are recommended for XVCD playback:

    xine-lib-1-rc0a
    xine-ui-0.9.22
    xine-vcdx-1-rcd0

Other required libraries

    libcdio-0.62
    vcdimager-0.7.17-cdio


FILESYSTEMS
-----------

MythVideo can often generate very large files. If you are doing perfect
rips, you probably want to make sure that your MythVideo file location
(where final files end up) is on a filesystem (ext3, etc.) that can
handle files larger than 2 gigabytes. Alternatively, you can set the MB
limit for perfect rip sizes in the setup screen. This limit is also used
for intermediate (perfect) files used during real transcoding jobs, so
it should be possible to rip *and* transcode a source file which is
larger than 2 gigabytes on a filesystem which has a 2 gigabyte maximum
file size.


SUBTITLES
---------

Subtitling with transcode is pretty much a hit or miss affair. Some DVDs
work extremely well, and some generate awful results. If you find that
MythVideo transcodes a title with subtitles badly, you are encouraged to
try and use transcode from the command line. Hopefully, future versions
of transcode will offer more robust subtitling capabilities.


CONFIGURATION
-------------

You have to go into Setup (Top Level Myth Menu --> Setup --> DVD
Settings) and make some choices. A few (more or less random) thoughts on
these:

    * DVD device should probably be /dev/dvd

    * The command to play a DVD will often be something like
      "mplayer dvd://". But if you need to do special things to your
      sound card (to make it do 5.1 passthrough, for example) or
      otherwise mess with your system, there's no reason it can't be
      a custom shell script. This is also where you want to set 
      language and/or subtitle preferences, decide on menu mode, etc.
      If you come up with a decent shell script that might be of use
      to others, think about contributing it.

    * You can keep AC3 audio in the transcoded files. For Dolby 5.1,
      this is probably a good choice as long as your myth box has
      some way to handle 6 channel sounds (e.g. SB Live passthrough). 

    * Try and use xvid. It's free and open.


FURTHER INFORMATION
-------------------

Feel free to subscribe to the development mailing list at:
http://www.mythtv.org/mailman/listinfo/mythtv-dev

A list that's restricted to the svn commit messages is available at:
http://www.mythtv.org/mailman/listinfo/mythtv-commits
