[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