[mythtv-users] Frames per second?

Ray Olszewski ray at comarre.com
Tue Apr 22 23:41:17 UTC 2003


At 03:29 PM 4/22/2003 -0500, Robert Kulagowski wrote:
[...]
> > >There isn't really any documentation for the debian packages other
> > >than what mdz has put together.  I don't run Debian; if someone
> > >wants to write Debian specific instructions for inclusion in the
> > >HOWTO I'm more than willing to accept them.
> >
> > I'll be pleased to do this once I actually manage to get Myth
> > running.
>
>Sure, go for it.

Will do. In the meantime, it strikes me that the HowTo would benefit from 
expanded discussion of hardware and software prerequisites. Though I am a 
newcomer to MythTV, I've been doing vidcaps for over a year now (with 
avifile for capturing, xine and mplayer for playback), so I know the 
hardware side moderately well.

So here is a first draft of an expanded section on hardware. It 
incorporates the old material, adds a lot of new material, and includes a 
few pieces that someone else will have to write. It also includes a guess 
or two, so others should read it for accuracy.

If you like it, I'll do something similar for software ... but I'll wait on 
that for some feedback on this attempt.

------------------BEGIN DRAFT-----------------------

3.3 Hardware

Hardware selection is a complex topic, one this HowTo can touch on only 
briefly and in general terms. The following subsections offer some general 
guidence but stop short of offering specific recommendations.

For more detail about actual configurations that others have used, Mark 
Cooper has setup a hardware database at 
http://www.goldfish.org/~mcooper/pvrhw/. The website will let you browse 
what other users have reported as their hardware configuration, and how 
happy they are with the results.

To find out more about the suitability of specific hardware choices, you 
can also consult the archives of the mythtv-users mailing list, or post a 
question on that list.


3.3.1 CPU Type and Speed

Selection of CPU type and speed is the trickiest element of hardware 
selection, mainly because there are so many tradeoffs one can make, among 
number of things the MythTV device can do simultaneously, capture size, and 
encoding quality.

MythTV has two modes of operation. It can function as a software video 
encoder, which means that it uses a fairly generic "dumb" video capture 
card to get frames of video, encodes them using the CPU on your motherboard 
and writes them to disk. High-end video capture cards and devices like the 
Tivo and RePlay have dedicated encoder chips which use specialized hardware 
to convert the video stream to the MPEG-2 format without using the 
motherboard CPU. The main CPU has the responsibility of running the 
Operating System and reading and writing the encoded frames to the disk. 
These tasks have fairly low CPU requirements compared to encoding video, 
which is why a device like a Series 1 Tivo can run with only 16MB of RAM 
and a 54Mhz CPU.

There are many variables that go into the question: "How fast a CPU do I 
need to run MythTV"? Obviously, the faster your CPU, the better your 
experience will be with MythTV. If you are using the software MPEG-4 
encoder and performing the "Watch TV" function, where the CPU is both 
encoding and decoding video simultaneously to allow Pause, Fast Forward and 
Rewind functions for live TV requires more CPU then just encoding or 
decoding. MythTV also supports multiple encoder cards in a single PC, 
thereby increasing the CPU requirements if you plan on simultaneously 
encoding multiple programs.

NOTE:  As of 2003-04-15 the current IVTV driver does not support multiple 
hardware encoder cards in the same chassis.

Here are a few data points:

         A PIII/733Mhz system can encode one video stream using the MPEG-4 
codec using 480x480 capture resolution. This does not allow for live TV 
watching, but does allow for encoding video and then watching it later.
         The developer states that his AMD1800+ system can almost encode 
two MPEG4 video streams and watch one program simultaneously.
         A PIII/800Mhz system with 512MB RAM can encode one video stream 
using the RTJPEG codec with 480x480 capture resolution and play it back 
simultaneously, thereby allowing live TV watching.
         A dual Celeron/450Mhz is able to view a 480x480 MPEG4/3300Kbps 
file created on a different system with 30% CPU usage.
         A P4 2.4Ghz machine can encode two 3300Kbps 480x480 MPEG4 files 
and simultaneously serve content to a remote frontend.


3.3.2 Memory

A MythTV host that is both a backend and a frontend, and that uses software 
encoding with a single capture card, should run fine in 128 MB of RAM. Any 
common type of RAM in use today is fast enough. Additional RAM is useful, 
but it mainly serves as buffer space to smooth the process of sync'ing to 
the hard disk. For that reason, a swap partition is effectively useless.


3.3.3 Hard Disk(s)

Encoded video takes up a lot of hard disk space. The exact amount depends 
on the encoding scheme, the size of the raw images, and the frames per 
second, but a typical value for MythTV is 2 GB/hour. Allow enough space.

Because a lot of data is being written to disk, the disk used for video 
storage must support DMA transfers. This is not just a disk issue. The 
Linux kernel must be set tp use DMA, and the motherboard's IDE chipset must 
support it. These are kernel-level issues, so all we will say here is that 
you need to be sure that your kernel will support DMA and your 
motherboard's chipset (look in the "ATA/IDE/MFM/RLL support" section in 
"make menuconfig" for more information).

If DMA works but is not active in the kernel ... these days, this is the 
default of most Limux distributions ... you can change that from the 
command line or during the boot/init sequence. You do this with the command 
"hdparm". As root, or from a suitable init script, run it as follows

         hdparm -d 1 /dev/hdc

replacing "hdc" with the appropriate device entry for your capture drive 
(the drive, not the partition). For more on this, see the Troubleshooting 
Section for instructions <href ???>.


3.3.4 Video Capture Card

The system needs one of more video-capture cards for which Linux kernel 
modules exist.  For a complete list of viedo-capture cards known to work 
with Linux, please see <add a reference here>. The most common, inexpensive 
cards available are cards that use the bt848 or bt878 vidcap chip; examples 
are the "Hauppauge WinTV Go" card and the "AverTV Desktop PVR" card. They 
use the bttv kernel module.

After you have installed a suitable card in a pci slot, you can check that 
the kernel sees it with "lspci". Look for an entry labeled "Multimedia 
video controller". To get more detailed information about the card, use 
"lspci -v" or "lspci -vv".

While inexpensive video-capture cards just capture raw frames, leaving 
encoding to software, some higher-end cards incorporate hardware-level 
encoding. Using either a G200 MJPEG encoder card, or a WinTV PVR-250 or 350 
from Hauppauge and the driver from the IvyTV project 
http://ivtv.sourceforge.net/ will allow you to use dedicated hardware 
encoders rather than your CPU. As of 2003-04-15, the CVS version MythTV is 
now able to use the PVR-250/350 cards as an input device for live TV and 
for scheduled recordings. Seek support is still being written. Using the 
onboard MPEG-2 encoder drastically reduces the CPU requirements for 
encoding. Here are some data points:

         An Athlon 1800XP can decode a 720x480 8Mbps MPEG-2 file using 10% CPU
         An Athlon 1Ghz can decode a 720x480 16Mbps MPEG-2 file using 
30-50% CPU, can decode a 480x480 16Mbps
         MPEG-2 using 30% CPU and approximately 30% for Live TV at 416x480.
<This section needs more work, but I lack the required expertise.>


3.3.5  Sound card

The system needs a sound card, or an onboard equivalent on the motherboard, 
to play back sound and, in most cases, to record sound. Any sound card that 
can be operated by the alsa (Advanced Linux Sound Architecture) kernel 
modules will work with MythTV.

The usual practice for recording the audio associated with video captures 
is to run a jumper cable from an audio output on the video-capture card to 
the Line input on the sound card. Some video-capture cards use internal 
audio tuners that work with the Linux kernel's btaudio module, but a 
definitive list of these cards is hard to come by (in part because card 
makers often change tuners without changing card model designations, a 
practice called "slipstreaming").


3.3.6 Video Display Card

If you want to view television on a computer monitor, then you can use any 
video card for which there is an XFree86 driver that supports xVideo (xv) 
extensions. Check the XFree86 documentation for details if you are 
uncertain about your preferred card.

Most people, though, want to view television on a television set. For this, 
you need either (a) one of the relatively small number of cards with TV-out 
outputs that are supported by Linux and XFree86, or (b) an external 
VGA-to-TV converter.

For choice (a), recent nVidea cards (<would someone who uses nVidea provide 
examples, please?>) are reported to work with the nvtv drivers, available 
at http://sourceforge.net/projects/nv-tv-out/;  and recent Matrox cards 
(the G450 and G550) are reported to work with kernel patches (for Linux 
2.4.19) available at http://www.bglug.ca/matrox_tvout/. <Someone who uses 
nVidea needs to confirm ALL the nVidea stuff here. I use a Matrox 
Millennium 550GX so can confirm it.>

Cards made by ATI have no official support for TV out under Linux and 
XFree86, though some people report making them work with the experimental 
version of the GATOS drivers, available at 
http://gatos.sourceforge.net/watching_tv.php. Savage card with TV out are 
completely unsupported under Linux and XFree86.

For choice (b), <someone who has done it this way should write this part>.



------------------END DRAFT-------------------------




More information about the mythtv-users mailing list