First, check if the mytharchive plugin does what you want. If not, then read on:
MythTV comes with a utility called mythtranscode which can decode nuv files into raw format for use with other applications. This command-line utility was not designed to be used by the end-user, but instead to be called by other applications or scripts. Programs like nuvexport ( http://forevermore.net/myth/) are better suited for the end user. However, since mythtranscode can be a useful tool, directions on using it follow.
mythtranscode creates raw streams, which means that they do not contain any container information such as resolution, frame-rate, or audio sampling rate. In order to process the output, you must supply this information to the processing utility. mythtranscode provides the relevant information on STDOUT.
There are two modes in which mythtranscode can create raw streams. The first has no synchronization and assumes that the processing utility will read audio and video at a constant rate. This method is useful when a single application will be processing the raw output, such as mencoder or ffmpeg. The second method assumes that two separate applications will be processing the audio and video streams independently, and there is no rate control between them which means that the two programs don't coordinate their efforts to maintain synchronization.
First, start mythtranscode. You will need to determine the channel and the start time manually.
$ mythtranscode --chanid 1036 --starttime 2003-10-20T15:30:00 --profile \
autodetect --fifodir . &
When mythtranscode begins executing, it will create two FIFOs ("audout" and "vidout") in the directory specified (in this case ".", meaning the current directory) and will print out information about the video stream.
The next step is to start the processing application. The following assumes that the stream is NTSC 640x480 with 32Kbps audio.
To use mencoder you would enter a command like:
mencoder -audiofile audout -audio-demuxer 20 -rawaudio rate=32000 \
-rawvideo on:w=640:h=480:fps=29.97 -ovc lavc -oac mp3lame -o out.avi \
vidout
Using ffmepg:
ffmpeg -f u16le -ar 32000 -ac 2 -i audout -f rawvideo -s 640x480 -r 29.97 \
-i vidout -vcodec mpeg4 -b 2000 -acodec mp3 -ab 128 out.avi
Or to play directly using mplayer (again 1.0PRE1 or later is needed):
mplayer -audiofile audout -audio-demuxer 20 -rawaudio rate=32000 \
-rawvideo on:w=640:h=480:fps=29.97 vidout
If you wanted to write the raw data to separate audio and video files for later processing, the following would work (note the use of --fifosync for rate-control):
$ mythtranscode --chanid 1036 --starttime 2003-10-20T15:30:00 \
--profile autodetect --fifodir . --fifosync &
$ cat audout > audio.raw &
$ cat vidout > video.yuv
MythTV is not dependent on any particular window manager. If you wish to
run a lightweight window manager, the contrib/configfiles/
directory has an
example of a .twmrc
and .fvwmrc
file you may use.
While MythTV allows you to set various GUI and capture resolutions, not all combinations make sense.
First, analog video signals have a defined vertical resolution. In NTSC, the video standard specifies that there are 525 vertical scan lines. Once the "extra" lines are removed (they're used to synchronize the video signal, and encode closed captioning data), you have 480 horizontal lines stacked vertically.
In PAL, there are 625 "raw" lines of resolution, with a net of 576 horizontal lines stacked vertically.
Horizontally, the maximum value allowed for a Bt8X8 chip is 720. However, due to limitations in the chip and other limitations of broadcast television, there may not be a noticeable improvement in image quality beyond 400 or 500 pixels.
With this in mind, there are certain commonly accepted values for resolution. While other values may be accepted for the vertical resolution, they will cause scan lines to be repeated or dropped.
From "best" to "worst", in NTSC:
As you can see, the lower quality values are half of the better ones. 720x240 is possible, but isn't a good tradeoff relative to the number of vertical lines lost. In a PAL country, the you would use values like 720x576 or x288.
The higher resolutions will be more CPU intensive if you're using software
encoding (PVR-250/350 will have minimal host CPU impact even if you're using
720x480). If the CPU is overtaxed, frames will be dropped causing uneven
motion. You will likely see the best results at resolutions which average at
least 10% CPU idle time. You can use system tools such as top
or
sar
to check the CPU % idle while recording. If the CPU average
usage is consistently exceeding 90%, frames will need to be dropped during
peak times when more than 100% of the available CPU would be needed to
process all of the frames.
If you'd like to read more on this, go to the vcdhelp website at http://www.vcdhelp.com/forum/userguides/94382.php.
MythTV is designed to be run as dedicated full screen TV application but can also be run as a desktop application on a computer monitor. Here are a few consideration for configuring sizes to best suit you needs.
For output to a Television, common resolutions are 640x480, 800x600, and some rare devices support 1024x768. Generally, higher resolutions are better. However, you may find that you prefer the picture quality at one of the lower resolutions. Everything in MythTV is scalable and should 'fit' regardless of the resolution you choose.
Edit your X configuration file, usually /etc/X11/XF86Config-4
for
XFree, or /etc/X11/xorg.conf
for Xorg, so that the resolution you
want to use is listed first in the lists under "Screen". If this resolution
is higher than the resolutions supported by your output device, you will see
a 'panning' effect where moving the mouse to the edge will scroll around a
desktop area which is larger than the display size. If this happens, edit
your X configuration file to match the display size then restart X.
From "mythfrontend" go to Setup->Appearance. The default for the height and width is "0" - this will cause MythTV to automatically size itself to full screen.
If the MythTV GUI width and height are not 0, mythfrontend uses these GUI dimensions and is anchored to the upper left corner of the X Desktop. If the GUI X and/or Y are not 0, the upper left corner is positioned at the specified coordinates. If the "Run the frontend in a window" box is checked, the window will have a frame and can then be dragged to any position on the desktop.
The fonts for the GUI and OSD will scale to whatever sizes you use. Most
font sizes can be changed in setup selections or in the .xml files under
/usr/local/share/mythtv/
. Make sure to use fonts large enough
to be read on a TV screen from a distance.
The full screen TV size is based on the X display size. For Xinerama, you can specify a screen in Setup->General. The TV picture will be stretched to fit the entire GUI area regardless of the capture resolutions used. However, during playback, the "W" key can to used to correct differences between 16:9 and 4:3.
Because picture edges can be ragged and screen edges aren't straight, Television is designed to project an image larger than the physical screen. This is called "overscan". Underscan is fitting the entire image inside the screen. Underscan is useful for computer monitors so that toolbars and scrollbars at the edges can be seen.
For best results, match the X display area as close as possible to the edges of the physical screen. This can only be adjusted by your tv-out device or by the settings for the television set. Many sets have these adjustments in a 'service mode'. If you cannot make these adjustments, there will be black borders around the edges of the X desktop, MythTV GUI and TV playback.
MythTV has settings for "Overscan" in Setup->Playback. These can not, and do not, cause the image to display beyond the edge of the X display area. The purpose of these settings are to cut off rough edges and to expand the image so that objects will appear to be the same size as a normal overscanned TV picture.
See the mysqldump manpage for more information.
$ mysqldump -u mythtv -pmythtv mythconverg -c > mythtv_backup.sql
To restore: (assuming that you've dropped the database)
$ mysql -u root
mysql>create database mythconverg;
mysql>exit
$ mysql -u mythtv -pmythtv mythconverg < mythtv_backup.sql
You may need to alter the MySQL permissions if this database is being shared with multiple systems. See the Modifying access to the MySQL database for multiple systems section for more information.
$ mysql -u root
mysql> drop database mythconverg;
mysql> quit
This assumes that you will be moving your data to newer / bigger hardware and don't want to lose your programs.
The first step is to create a database backup as demonstrated in an earlier section.
Next, you will extract only the data that is relevant to the programs:
$ grep "INSERT INTO record " mythtv_backup.sql > restore.sql
$ grep "INSERT INTO recorded " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO oldrecorded " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedprogram " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedrating " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedmarkup " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedseek " mythtv_backup.sql >> restore.sql
NOTE: Newer versions of mysqldump place backticks around the table names. Backticks are not the same as apostrophes! On a typical North American keyboard, backticks are located to the left of the "1" key, on the same key as the tilde. Also, because the bash shell may try to interpret the backticks, make sure you use a \ before each one.
If your restore.sql
file is empty, you'll need to re-run the
commands like this:
$ grep "INSERT INTO \`record\` " mythtv_backup.sql > restore.sql
$ grep "INSERT INTO \`recorded\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`oldrecorded\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedprogram\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedrating\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedmarkup\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedseek\` " mythtv_backup.sql >> restore.sql
Note the space after the table name and the ">>" to append to the file for all but the first grep. "recordedmarkup" and "recordedseek" are huge and there may be hundreds of thousands of lines if you had lots of hours of recordings.
After you have moved the data files to the new hardware, configure MythTV using the mythtv-setup program as you normally would with a standard MythTV installation.
At this point we will restore the information about your programs back into the database:
$ mysql -u mythtv -pmythtv mythconverg < restore.sql
After successful insertion of the data you may delete the
restore.sql
file.
btaudio allows you to obtain the audio data from your tuner card directly over the PCI bus without using a sound card. This is useful if you would like to use multiple tuner cards in a system without adding a sound card for each one, or if your existing sound card is not capable of full-duplex operation.
In order to use btaudio, your tuner card will need certain hardware installed on it, and that hardware must be wired correctly. The chip that will allow you to use the btaudio module is the MSP34xx. However, having a MSP34xx is no guarantee that you will be able to use the btaudio module.
As of 2003-03-31, this is the current list of cards and their status: Works with btaudio:
The following cards do not work:
The following cards have been reported to work, but have issues:
Once btaudio loads, it should register additional /dev/dsp
and
/dev/mixer
devices. Typing $ dmesg
will let you know
what's going on.
If mythfilldatabase grabbed a channel which you do not want to include in your TV listings, you can remove the entries from the grabber configuration and the MySQL database. This often happens with premium channels; for example, HBO or Showtime may be available on your cable TV system, but is scrambled because you're not a subscriber to that channel. Since you can never watch it, you want to get rid of it.
If you are using the DataDirect service, login to your account at http://labs.zap2it.com/ to modify your lineup. Uncheck the boxes for any unwanted channels, and they will no longer be included in your download.
If you are using a grabber from XMLTV, comment out the channel from the
~/.mythtv/<sourcename>.xmltv
file by inserting the word "not
" (including the space) in front of the unwanted entry. This will prevent
xmltv from grabbing future listings.
Next, delete the unwanted item from the channel table so that it will not
appear in the EPG or when changing channels. To delete the data from the
database we need to perform some steps. First, assuming that HBO is channel
15, we need to find out the internal chanid
used by MySQL:
$ mysql -u root mythconverg
mysql> select chanid from channel where channum=15;
+--------+
| chanid |
+--------+
| 1015 |
+--------+
1 row in set (0.00 sec)
mysql> delete from channel where chanid = 1015;
Old program data will be removed over the course of a week. However, you may want to immediately delete any current program listings for the channel that has been removed:
$ mysql -u root mythconverg
mysql> delete from program where chanid = 1015;
You may want to use a central server to store your files.
On the host machine, (in this case, the hostname is "masterbackend") you'll
want to edit your /etc/exports
file and use something like:
/var/video (rw)
To export the /var/video
directory with read / write privileges.
On the "slave" machine, you'll want to edit the /etc/fstab
file and
add something like:
masterbackend:/var/video /var/video nfs rsize=8192,wsize=8192,hard,intr,nfsvers=3,actimeo=0
Then run # mount -a
to re-read the file to mount the file system.
In this case, the source is a machine called "masterbackend" which is exporting the directory "/var/video", which we're mounting locally at "/var/video". The rsize and wsize options are used to increase the performance of NFS; "hard,intr" is there because that's the recommendation of the NFS-HOWTO, the nfsvers is required for filesizes over 2GB and actimeo is used to turn off file attribute caching. Attribute caching for a shared media point causes problems; you always want to see the latest state of the directory and files. See http://www.mythtv.org/wiki/index.php/Optimizing_Performance for additional information regarding performance optimization.
Here's an example submitted to the mythtv-dev list by Pat Pflaum mailto:pat@netburp.com using fvwm:
$ cat > .xinitrc
fvwm &
mythfrontend
^D
$ cat > .fvwmrc
Style myth* NoTitle, NoHandles, Sticky, WindowListSkip, SloppyFocus, GrabFocus, BorderWidth 0
^D
$
The following also works with blackbox:
$ cat > .xinitrc
xset -dpms s off &
irxevent &
mythfrontend &
blackbox
Make sure that your .blackboxrc
file has:
session.screen0.focusNewWindows: True
session.screen0.focusModel: SloppyFocus
in it.
Here's a method for automatically starting mythbackend submitted by Mike Thomson ( mailto:linux@m-thomson.net) and Stu Tomlinson ( mailto:stu@nosnilmot.com).
Copy the files from the MythTV contrib
directory or from Mike's web
site (
http://m-thomson.net/mythtv/) as follows:
etc.rc.d.init.mythbackend
should be made executable and copied to
/etc/rc.d/init.d/
:
$ cd contrib
$ su
# chmod a+x etc.rc.d.init.d.mythbackend
# cp etc.rc.d.init.d.mythbackend /etc/rc.d/init.d/mythbackend
etc.sysconfig.mythbackend
should be copied to
/etc/sysconfig/
:
$ cd contrib
$ su
# cp etc.sysconfig.mythbackend /etc/sysconfig/mythbackend
Edit /etc/sysconfig/mythbackend
if you want to change the defaults
(the userid that should start mythbackend, location of the logfile and (if
required) the name and location of the mythbackend binary).
Use chkconfig to make sure the script is called when entering runlevels 3, 4 or 5:
$ su
# chkconfig --level 345 mythbackend on
# exit
$
By default, the log file for mythbackend will be written to
/var/tmp/mythbackend.log
. This has been tested and is known to work
on Mandriva and Red Hat, but many people prefer to place logs under
/var/log/
.
To do this, create a group called mythtv
(or anything you prefer)
and add your usual MythTV users to that group. If you changed the user that
starts mythbackend from the default of root you must perform this
step.
Create the directory /var/log/mythtv
and set its
permissions as follows:
$ su
# mkdir /var/log/mythtv
# chown root:mythtv /var/log/mythtv
# chmod 0775 /var/log/mythtv
# exit
$ ls -ld /var/log/mythtv
drwxrwxr-x 2 root mythtv 4096 Apr 28 21:58 /var/log/mythtv/
$
Create a mythtv
file in /etc/logrotate.d
:
$ su
# cat > /etc/logrotate.d/mythtv
# Set default values for all log files first...
# Rotate the logs once a week, or more frequently if they
# exceed 10Mb in size (size is checked daily).
weekly
size 10M
# 'copytruncate' is used for logs generated by
# currently-running programs that should not be restarted
# (and can't be signalled to start a new log) after the
# rotation. It duplicates the existing log file and then
# sets the length of the existing file to 0. The only time
# this would break would be if the program writing the log
# was using lseek.
copytruncate
# After rotating the files, leave the most recent rotated
# copy alone but gzip everything else to save space.
compress
delaycompress
# If a log isn't present then don't worry about it.
missingok
# Don't rotate an empty file.
notifempty
# end of the global options
/var/log/mythtv/mythbackend.log /var/log/mythtv/mythfrontend.log {
# Keep logs until they are 2 months old or the number of
# logs reaches 12. If the log files stay small, the age will
# kick in first and you'll only have 8 log files. If they
# get larger than 10Mb then you won't keep all 60 days.
rotate 12
maxage 60
}
# Different options for mythfilldatabase:
/var/log/mythtv/mythfilldatabase.log {
rotate 2
}
^D
#
Mandriva adds one more twist in the form of the msec
utility,
which runs regularly and (at the default or any higher security level) sets
permissions on many files, including those under /var/log
.
To tell msec about the MythTV log files and their directory, you need to
edit the /etc/security/msec/perm.local
file to include the
following:
# /etc/security/msec/perm.local
# Local overrides to the msec program
#
# Full file path user.group permissions
/var/log/mythtv/ root.mythtv 775
/var/log/mythtv/* root.mythtv 664
A copy of the above has been included in the contrib/ directory. You may add it by typing:
$ cd contrib
$ su
# cat etc.security.msec.perm.local >> /etc/security/msec/perm.local
# exit
Finally run the msec
tool to check and implement your
changes.
$ su
# msec
# exit
$
The portage file for MythTV has scripts that will allow you to run mythbackend at startup.
To run mythbackend as a daemon which starts at boot time:
# rc-update add mythbackend default
To stop mythbackend as a daemon:
# /etc/init.d/mythbackend stop
To obtain a list of options:
# /etc/init.d/mythbackend
MythTV is flexible in the way that you define multiple backend tuner configurations. The only hard-and-fast rule is that the Master backend must have a capture device defined, but shouldn't imply that the capture device in the Master backend must be the first capture card defined in the database.
One example of an advanced configuration is the round-robin scheme. Rather than defining all of the cards on the master, you could first go into mythtv-setup on the master to define globals such as the general configuration and the channel lineup but not the host-specific configuration item like the capture card. In this example, we will use a 4 tuner configuration, where two slaves have one card each and the master has two.
Using this scheme, the master backend will not use both capture cards until one of the following happens:
The scheduler in MythTV checks whether an encoder is available; if a slave backend isn't running, its encoder isn't available, so the scheduler will look for the next available encoder. This makes MythTV very flexible; slave tuners can come and go, and as long as there are enough tuners for what you'd like to record it doesn't matter which tuner in particular is going to be used.
Using this round-robin scheme along with a shared storage directory like NFS and enabling the Master Backend Override setting will allow you to view content even if the slave backend that recorded a program is not available.
MythTV's built-in transcoder re-encodes recordings from one codec to another. The transcoder has three primary uses; it can transcode MPEG-2 files captured using a hardware encoder (PVR cards, DVB cards, ATSC HD, etc.) to MPEG-4, it can be used to transcode RTjpeg files (usually only used on systems that can not real-time encode to MPEG-4 using a framegrabber) to MPEG-4, and finally it can be used to remove commercials from a MPEG-2 file while leaving the file in MPEG-2 format.
When MythTV transcodes a file to MPEG-4 or RTjpeg the resulting file format
is NuppelVideo (nuv). NuppelVideo is a container which provides a method of
keeping the audio and video in sync throughout the recording, which is why
it is used instead of the .avi
format. You may have difficulty
playing .nuv
files in non-MythTV systems.
The original file is removed when the transcoding process is complete. Unless you're sure that you will be satisfied with the result you may want to enable the mythtv-setup option which causes mythbackend to keep the original file after transcoding. This option is on the second page of the General section in mythtv-setup. Enabling this allows you to compare the two files and restore the original if you like. Outside of the initial setup phase it usually isn't necessary to leave this option enabled. A recording can be transcoded in two ways:
The second method can be used on files that have already been transcoded (or files which were are already in the desired format), so only the frames immediately following a cut section will be re-encoded, resulting in a minimal loss of quality when removing commercials with the added benefit of being extremely quick.
The current transcoding system has a lot flexibility, but there are a number of steps involved in setting it up. In order to automatically transcode a given recording you must do the following:
Enter the Utilities/Setup > Setup > TV Settings > Recording Profiles section in mythfrontend. Choose the option that corresponds to your capture source (ignore the Transcoders for now.) Choose the quality profile you are interested in using for transcoding. Ensure that "Enable auto-transcode after recording" is checked.
Enter the Recording Profiles > Transcoders menu. There are three quality settings to choose from and a two special Autodetect settings. Later, when scheduling recordings you'll have to choose one of Autodetect, High, Medium, and Low Quality transcode settings in addition to the recording profile we set up above. If you choose the Autodetect transcoding profile for a recording, MythTV will use the "Autodetect from RTjpeg/MPEG-4" profile for recordings which are RTjpeg/MPEG-4 files. Otherwise, it will use the "Autodetect from MPEG-2" profile provided it's an MPEG-2 recording. If you choose one of the others (High, Medium, Low) it will use the settings in that profile regardless of the codec of the original recording.
There are a number of options for transcoding but the simplest is to enable lossless transcoding (the first option) which subsequently removes all other options. Enabling lossless encoding simply removes commercials (if you've marked them) and attempts to clean up MPEG-2 streams. Note that with this option MythTV will not apply any sort of filters and will only attempt to normalize the stream into something cleaner and less likely to have trouble with other less forgiving MPEG-2 hardware/software (including players, video editors, etc.)
If you enable resizing of the recording the next page has the settings for choosing the final resolution. MythTV will scale the video as appropriate, not crop it to this resolution.
The final two pages allow configuration of the video and audio codecs. Although RTjpeg is an option for video codec there is no reason to transcode to this format because it will produce larger files than MPEG-4 and the recording will take more CPU power to play back. The MPEG-4 settings are described in the documentation for the ffmpeg project at http://ffmpeg.sourceforge.net/ffmpeg-doc.html. It's a matter of trial and error to discover which settings achieve a good compromise between size and quality.
If you wish to return to the default settings, they are Bitrate: 2200-2500, MaxQ: 2, MinQ: 15, MaxQDiff: 3, and "Scale bitrate for frame size" is enabled. The other options are unchecked.
Transcoding is actually enabled on a per-recording basis. Two things must be true before any given recording will be auto-transcoded, however. The first is that the recording must have been made with a recording profile that has auto-transcode enabled. Under "Storage Options" for the recording you must set the "Record using the "X" profile" to the profile you configured in the first step. In addition, under the "Post Recording Options" section of the recording you must also set "Transcode new recordings." This is also where you specify the Transcoding profile to use (Auto, High, Medium, Low.)
It may not be obvious from above but the flexibility of this system is primarily to make it possible to auto-transcode a show recorded via one source (ie: pcHDTV 3000), and not transcode that same show if it's recorded on another kind of card (ie: PVR-250.) There are other uses however. You could have a PVR-250 and a V4L card. You may want to transcode the MPEG-2 from the PVR-250 but there is no need to transcode the recordings made with the V4L card, as it's already likely to be MPEG-4.
As an example, you could configure the Default profile for "Hardware DVB Encoders" (the profile group used for DVB cards, including ATSC cards like the pcHDTV 3000) to "Enable auto-transcoding". In the Default profile for MPEG-2 Encoders (PVR cards) you'd leave "Enable auto-transcoding" unchecked. For programs that are available on both kinds of cards you'd set the recording profile to Default and enable auto-transcoding in the record settings. Then you pick your transcoding profile. The result is that when a program is recorded on your DVB card, it will get transcoded. When it plays on a channel available via your PVR card, it won't be.
Manually transcoding is activated while watching a show by hitting 'x', from the OSD menu by choosing the Transcode option, or by choosing Job Options/Transcode from the info menu from the Watch or Delete Recordings screens.
The transcoding profile used for manual transcoding is whatever was set when the recording was originally configured, even if you didn't enable auto-transcoding. The only way to change what transcoding profile will be used is to alter the transcoder column in the recorded table in the database. The transcoder column contains a number which corresponds with the id column in the recordingprofiles table. You can find out the id number for each profile in the transcoder group with an SQL command like:
mysql> select r.* from recordingprofiles r,profilegroups p where p.name='Transcoders' and p.id=r.profilegroup;
+----+----------------+------------+------------+--------------+
| id | name | videocodec | audiocodec | profilegroup |
+----+----------------+------------+------------+--------------+
| 21 | RTjpeg/MPEG4 | MPEG-4 | MP3 | 6 |
| 22 | MPEG2 | MPEG-4 | MP3 | 6 |
| 27 | High Quality | MPEG-4 | MP3 | 6 |
| 28 | Medium Quality | MPEG-4 | MP3 | 6 |
| 29 | Low Quality | MPEG-4 | MP3 | 6 |
+----+----------------+------------+------------+--------------+
5 rows in set (0.01 sec)
mysql>
Armed with the knowledge of what the profile ID's are you can also choose to
run mythtranscode from the command line and explicitly specify the transcoder
profile. Run mythtranscode --help
for usage information.
If you need to change the name of the computers used with MythTV you'll need to perform a sequence of steps. There are a number of pieces of information that MythTV keeps track of which are tied to the hostname of the box, so changing the hostname involves altering the name in the operating system and in the MySQL database. In the examples below, the old name of the system was "frontend1" and we're going to change it to "kidsroom".
1. Stop all backends. If you run mythbackend from a terminal session, press control-c. If your backends are started with an init script, you would do something like the following:
$ su
# /etc/init.d/mythbackend stop
2. Change the hostname.
For Red Hat and derived distributions, edit the
/etc/sysconfig/network
file. Look for
HOSTNAME=frontend1
and change this to
HOSTNAME=kidsroom
or whatever you'll be using. For other
distributions, refer to the documentation, such as the
hostname(1)man page.
To alter the hostname in the current session, run:
# hostname kidsroom
3. Dump the database.
$ mysqldump -u mythtv -pmythtv mythconverg -c > mythtv_backup.sql
4. Rename the host in the database. First, ensure that the new hostname you'll be using isn't already in the database.
$ grep kidsroom mythtv_backup.sql
Now we're actually going to change the name. The following should all be
typed on the same line:
$ cat mythtv_backup.sql | sed s/\'frontend1\'/\'kidsroom\'/g >> mythtv_restore.sql
If you don't feel comfortable using sed, you can open the
mythtv_backup.sql
file in a text editor and perform a global search
and replace. When saving the file, make sure you use the new name,
mythtv_restore.sql
or the rest of the steps below will fail.
5. Drop and recreate the database.
$ mysql -u root
mysql>drop database mythconverg;
mysql>create database mythconverg;
mysql>exit
6. Restore the database using your edited version.
$ mysql -u mythtv -pmythtv mythconverg < mythtv_restore.sql
If you are running slave backends or frontends, don't forget to re-enable access as detailed in Modifying access to the MySQL database for multiple systems.
7. Start the backends. If you use init scripts, do the following, otherwise start them from terminal consoles.
# /etc/init.d/mythbackend start
8. Quit and restart all frontends. Delete the mythtv_backup.sql
and mythtv_restore.sql
files.
No.
While it is true that the TiVo runs the Linux kernel, and TiVo has released their changes to the kernel under the GPL, the TiVo is not a general-purpose computer, and there is no programming information available for the custom hardware contained within a TiVo. TiVo is under no obligation to release the source code to their application.
The ReplayTV runs VxWorks, a Real Time Operating System from Wind River Systems.
Yes, assuming that your wireless connection has sufficient bandwidth to maintain the datarate between the frontend and the backend. 802.11b should be sufficient if the encoded bitrate of the content is less than the datarate of your wireless connection, which in the case of 802.11b would be approximately 4 Mbps. (The advertised rate of 11Mbps gives an actual throughput of 4 Mbps.) 802.11a and 802.11g, if operating in their high-speed modes, or proprietary 802.11b "Turbo" schemes should be adequate. Multiple wireless frontends, poor signal strength or other factors can severely impact the viewing experience on the frontend.
Use the mytharchive plugin.
The configuration of the DBoxII for use within MythTV is tricky (as of May 16 2005), that's why it's covered here. Your DBoxII has to be running linux and the Neutrino GUI instead of the stock BetaNova firmware. For further information, please refer to http://www.tuxbox.org. Additionally, you need to enable the SPTS mode in Neutrino.
You may leave the Setup now and proceed as usual.
Press "1" or F1 to get a popup.
These letters let you know what's going on with the backend as it tries to tune to a channel.
Lower case = seen
Upper Case = seen & good
This is covered in the hardware section, and extensively covered on the Hauppauge website. ( http://www.hauppauge.com/pages/compare_pvr.html) Please check the Hauppauge website for the most accurate information.
A PVR-150 comes in a number of versions:
A PVR-250 (Model 980) is a retail kit which comes with an IR receiver and a remote control.
The PVR-250 MCE (Model 975) contains a FM radio tuner. The PVR-250 MCE does not contain a IR receiver or a remote.
The PVR-250 Rev 1 contained an MPEG-2 decoder. However, this function was not connected to any output jacks, and there doesn't appear to be any way to pull decoded video from the card, so it's a fairly useless feature.
The PVR-350 (model 990) has the features of the PVR-250 as well as being able to decode MPEG-2. The encode and decode functions may be used simultaneously. The MPEG-2 decoder function gives superior video quality compared to what you'll find on a standard video card. However, the decoder function is only available once Linux has started, so you will not see any boot-time messages. Also, the card is not capable of resolutions higher than 720x480, so it cannot be used with HDTV. Make a conscious decision (and ask for advice on the mailing list) that you want to tradeoff potential HDTV use in the future compared to video quality.
The X-driver for the PVR-350 support playback using Xv efficiently but does not support any other 2D or 3D acceleration. For some application this may place a large load on the host CPU, some will run without any problem and others (mplayer, xine, xmame etc.) should be configured to utilize the Xv interface.
Note that for the PVR-350 there are some considerations regarding the way audio is handled.
The PVR-500 is a dual-encoder version of the PVR-150 card, so you can simultaneously record two different programs at the same time, because there are two encoder chips on the PCI card. Hauppuage has also installed an onboard splitter, so you can use one COAX to feed both tuners. Current versions of the PVR-500 should come with an adapter to allow you to connect a second S-Video or composite input, but this will take up a second PCI slot. Early adopters may need to purchase this item separately.
If you need to use an external Set Top Box (STB), such as for satellite TV or for digital cable you will need some way for MythTV to tell the STB to switch to a new channel. There are several methods:
6200ch.c
in the MythTV
contrib directory which may work for you.Commercial flagging can be CPU intensive. By default, the backend that created a recording is the one which will flag commercials. You may wish to use a different machine to run commercial flagging.
On the slower machine:
Start the mythtv-setup program. Advance through the pages until you get to the Job Queue page. Turn off the setting that says "Allow Commercial Detection jobs", thereby preventing any commercial flagging jobs from running on this machine.
Next, make sure that "Run Jobs only on original recording host" is turned OFF so that new jobs are allowed to run anywhere.
Restart mythbackend since it only reads this setting when it starts up.
On the faster machine:
Start the mythtv-setup program. Advance through the pages until you get to the Job Queue page. Ensure that "Allow Commercial Detection jobs" is turned ON for this machine.
Run mythjobqueue. mythjobqueue will examine the JobQueue and run any jobs it finds. mythjobqueue should be left running so that it will pick up any new commercial flagging jobs that are added to the queue, otherwise new jobs will be added to the queue and your programs won't be flagged until you run manually run mythjobqueue.
Using this technique it's possible to add commercial flagging machines as needed, even on systems that aren't running a backend. It's also possible to run the commercial flagger in a virtual machine environment such as VMWare.