Difference between revisions of "Hardware Requirements"

From MythTV Official Wiki
Jump to: navigation, search
(Multiple backends: wikilink diskless frontends)
(note OpenGL requirement)
 
(25 intermediate revisions by 9 users not shown)
Line 2: Line 2:
  
 
==Basic requirements for a MythTV setup==
 
==Basic requirements for a MythTV setup==
As you probably know, Linux will run on pretty much anything, although at the time of writing I believe MythTV is only designed to run on x86 (and, more recently, x86-64) processors such as those made by Intel and AMD, so firstly you'll need a computer with one of those, which shouldn't be too difficult! Some of the wiki's contributors list the hardware they're using on their [[:Category:User_Systems|user pages]] and these are a great source of example configurations which might work for you; also check out the page on [[Choosing_Frontend_Hardware|choosing frontend hardware]].
+
As you probably know, Linux will run on pretty much anything. MythTV relies on the [[FFmpeg]] codecs for any video handling, so either a relatively modern CPU or a supported hardware video codec is recommended.  Encoding, and thus transcoding, are much more computationally intensive than decoding, so if you are only watching digital TV, the requirements are less demanding.  For watching recordings, any modern sound card and GPU supported by Linux should work.  Since [[Release_Notes_-_31_Video_decoding_and_playback|V31]], playback requires OpenGL - any version from OpenGL 2.0 and OpenGL ES 2.0 and above should work. In addition to a standard keyboard and mouse, optionally, with LIRC, a [[:Category:Remote_Controls|remote control]] can be used.
 
 
At this point you may want to refer to the [[Cooling Quietly]] How To which contains some information on keeping your processors cool and quiet. You'll need to make sure that the motherboard for your desired Myth box will be able to support things like large hard drives and lots of DMA traffic (some older VIA chipsets have very buggy DMA transfers which make them highly unstable when running MythTV).
 
 
 
Aside from that, the basic components of a MythTV setup are:
 
  
 
===Video capture card===
 
===Video capture card===
:''Main article: [[Video capture card]], category: [[:Category:Video capture cards|Video capture cards]]''
+
:''Main article: [[Video capture card]]''
 
 
You will need as many of these as the number of shows you want to record and watch simultaneously. (That is, you can record as many shows simultaneously (or which overlap) as you have cards, '''unless''' you're using one (or two) of them to watch LiveTV.) A lot of people settle for 1 or 2 of them. Some have an on-board sound digitizer, so you don't need a loopback cable and (an extra) soundcard. Machines running only the [[MythFrontend]] front end don't need a capture card because they receive the captured digitized signals from [[Mythbackend]].
 
 
 
===Video display (graphics) card===
 
:''Main article: [[Video display card]], category: [[:Category:Video display cards|video display cards]]''
 
 
 
Depending on your needs you will want one with ''S-Video out'' (normal TV), ''SVGA'' (monitor/most HDTV screens) or
 
''DVI-D / DVI-I'' (projector/LCD/plasma/HDTV screens). The [[Hauppauge PVR-350|PVR-350]] has a TV-Out built in. Quite a
 
few motherboards have TV-out on-board nowadays, though the quality varies.
 
 
 
===Sound card===
 
:''Main article: [[Sound card]], category: [[:Category:Sound cards|Sound cards]]''
 
 
 
You need a separate one for each grabber card, if it doesn't have an on-board sound digitizer. Nowadays
 
most motherboards have built-in sound'cards'. Be sure the card is full duplex if you want to record and
 
playback using the same card. The PVR350 has its own audio-out.
 
 
 
==Performance issues==
 
Whilst the basic hardware configuration is simple, with this being the world of PC hardware and Linux, there are a million and one options that you may wish to take into account.
 
 
 
Most MythTV users seem to prefer hardware capture devices such as the Hauppauge [[Hauppauge PVR-250|PVR-250]] and [[Hauppauge PVR-350|PVR-350]] TV cards (or digital DVB cards), which do all of the capture and compression on board. This means your CPU doesn't have to compress the TV stream itself, making the basic CPU requirements very low indeed.  (e.g. A K2/266MHz system can use a [[Hauppauge PVR-350|PVR-350]] to record one stream while simultaneously using it to watch such a recording.)  People who use "dumb" capture cards (i.e. those without onboard compression) have to compress the TV stream in software using either [[MPEG-4]] or [[RTjpeg]], and so will require free CPU time in order to watch and record TV. Here are some rough guidelines taken from mythtv.org as regards software encoding:
 
  
* 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.
+
All recording through MythTV is performed by the backend. The backend can handle as many tuners as you can physically fit in the system, and if that is not enough, you can run multiple backends located on additional hardware to expand your capabilities. Each simultaneous recording and Live TV session requires a tuner input. If you want to have padding on back-to-back recordings, you need additional tuners. Note that only one backend is needed on the network, and additional PCs can be configured as frontends with no local capture card.
* A developer states that his AMD1800+ (~1.6Ghz) system can almost encode two [[MPEG-4]] 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 [[MPEG-4]]/3300kbps file created on a different system with 30% CPU usage.
 
* A P4 2.4GHz machine can encode two 3300Kbps 480x480 [[MPEG-4]] files and simultaneously serve content to a remote frontend.
 
* A Pentium Celeron 600 MHz with a [[Hauppauge PVR-150|PVR-150]] can record and playback [[MPEG-2]] material simultaneously.
 
  
Further information can be found at the [http://pvrhw.goldfish.org/ PVR hardware database], which is a list where users report their system configurations and performance under various conditions.
+
Some users will have access to IPTV based off the [[FreeBox]] model, for which MythTV can use a virtual network tuner. Most users will need some form of digital tuner. North American users need [[ATSC]] whereas European, Australian, Japanese and South American users need [[DVB]]. Both IP and digital television makes use of streams compressed by the broadcaster. MythTV merely copies this data to disk for pristine, lossless quality.
  
An important addendum applies to all of you wishing to use HDTV with a '''PCHDTV''' card. Playback of HDTV is *very* computationally intensive, and requires a Pentium class processor of at least 1.3GHz or equivalent in conjunction with a graphics card with accelerated drivers, according to the documents at http://www.pchdtv.com. Pretty much any system built in the last two years with an nVidia graphics card will be fine.
+
For users with no access to digital broadcasts, or broadcasts restricted by encryption, analog capture devices are needed. Cheap capture devices are called ''framegrabbers'', and require independent capture and software encoding of audio and video. Very cheap ones cannot capture audio, meaning they must be used with a separate sound card. These are nothing but a hassle to deal with. The recommended type is a hardware encoder. These will output compressed MPEG files similarly to how the digital tuners behave.
  
 
==System architecture==
 
==System architecture==
 
One of the most perplexing decisions facing a newcomer is the mystical frontend/backend configuration, which I'll attempt to explain here. MythTV actually comes in two parts:
 
One of the most perplexing decisions facing a newcomer is the mystical frontend/backend configuration, which I'll attempt to explain here. MythTV actually comes in two parts:
  
* [[backend|backend server]] - handles all the complicated stuff (control of the TV cards, commercial detection, file serving to frontends, the program database)
+
* [[Mythbackend|backend server]] - handles all the complicated stuff (control of the TV cards, commercial detection, file serving to frontends, the program database)
* [[frontend]] - the bit you (hopefully) see on your screen, which handles the display of the interface, decoding and playback of audio/video streams and user interaction (such as remote controls).
+
* [[Mythfrontend|frontend]] - the bit you (hopefully) see on your screen, which handles the display of the interface, decoding and playback of audio/video streams and user interaction (such as remote controls).
  
 
Most people first opt for a combined frontend/backend, which means running the frontend and backend software on the same machine. Other configurations are a single backend and multiple remote frontends, and multiple backends connected to multiple frontends. If this all sounds confusing, read on.
 
Most people first opt for a combined frontend/backend, which means running the frontend and backend software on the same machine. Other configurations are a single backend and multiple remote frontends, and multiple backends connected to multiple frontends. If this all sounds confusing, read on.
  
 
=== Combined backend/frontend ===
 
=== Combined backend/frontend ===
Here you run [[Myth Backend]] and [[MythFrontend]] in tandem on a single machine, to which we can also attach additional frontends. This is the simplest setup, but has a few disadvantages:
+
Here you run [[mythbackend]] and [[mythfrontend]] in tandem on a single machine, to which we can also attach additional frontends. This is the simplest setup, but has a few disadvantages:
 
* If this box is living in a social area, such as under the TV, you're probably going to have to jump through a few hoops to get it nice and quiet.
 
* If this box is living in a social area, such as under the TV, you're probably going to have to jump through a few hoops to get it nice and quiet.
 
* Again, you're probably going to want this box as appliance-like as possible, which usually means a pretty case that isn't too huge. This will limit your ability to expand the box without moving to separate frontends and backends
 
* Again, you're probably going to want this box as appliance-like as possible, which usually means a pretty case that isn't too huge. This will limit your ability to expand the box without moving to separate frontends and backends
 
* There is a limit to the number of TV cards a single computer is able to hold
 
* There is a limit to the number of TV cards a single computer is able to hold
The ideal solution to these problems is running [[Myth Backend]] and [[MythFrontend]] on separate machines.
+
The ideal solution to these problems is running [[mythbackend]] and [[mythfrontend]] on separate machines.
  
 
=== Separate backend and frontend ===
 
=== Separate backend and frontend ===
Here, all we do is take our backend software and throw it into some box out of sight - under the stairs seems a popular location. Since [[Myth Backend]] does all the hard work, all the equipment for that hard work (TV cards, MySQL server, 30 terabyte RAID array) will also reside in this computer. In one fell swoop we've removed most of the hot and noisy components from under our TV and placed them somewhere they won't be noticed, so we can concentrate on making our frontend as pretty and as quiet as possible. All that needs to be done is that the frontend and backend need to be networked together, and a few minor configuration changes are made to the way Myth operates, and we're all set. We can also connect as many additional frontends as we have capacity for if you wish to show your recorded TV shows elsewhere in the house. Again however, there are disadvantages:
+
Here, all we do is take our backend software and throw it into some box out of sight - under the stairs seems a popular location. Since [[mythbackend]] does all the hard work, all the equipment for that hard work (TV cards, MySQL server, 30 terabyte RAID array) will also reside in this computer. In one fell swoop we've removed most of the hot and noisy components from under our TV and placed them somewhere they won't be noticed, so we can concentrate on making our frontend as pretty and as quiet as possible. All that needs to be done is that the frontend and backend need to be networked together, and a few minor configuration changes are made to the way Myth operates, and we're all set. We can also connect as many additional frontends as we have capacity for if you wish to show your recorded TV shows elsewhere in the house. Again however, there are disadvantages:
 
* Setting up two machines and networking them all up will incur additional cost and complexity
 
* Setting up two machines and networking them all up will incur additional cost and complexity
 
* We've still only got a single machine that can accept a limited number of TV cards
 
* We've still only got a single machine that can accept a limited number of TV cards
Line 65: Line 35:
  
 
=== Multiple backends ===
 
=== Multiple backends ===
Whilst most households are content with a single backend with one or two TV cards, if you want to provide TV to alot of frontends simultaneously, you're going to require a large amount of TV cards which your single backend won't be able to support. Here we simply add more backends into the fray, and again network them up in such a way that all the Myth machines can talk to one another. This essentially provides you with TV that is limited pretty much only by your wallet!
+
Whilst most households are content with a single backend with one or two TV cards, if you want to provide TV to multiple frontends simultaneously, you're going to require a large number of TV cards which your single backend won't be able to support. Here we simply add more backends into the fray, and again network them up in such a way that all the Myth machines can talk to one another. This essentially provides you with TV that is limited pretty much only by your wallet!
 
 
Of course, it is also possible to mix and match a bit. My personal setup consists of two combined backend/frontends (one runs with a PVR-250, the other with a DVB card) and a single "dumb" frontend which is primarily used for watching recorded content.
 
  
Advanced configurations can include making [[Diskless Frontend|diskless (as in no hard drive) frontends]] which can boot over the network which makes for a ''very'' quiet machine, and storing/loading content from machines that have nothing to do with MythTV whatsoever. Again to cite my own example, the [[Myth Backend]] boxes store all of the TV content, but the database lives on my Debian file server, as does all of my music and video content. Shares have been set up via NFS or Samba so that the backend machines can access the files from the file server, and pass them along to the frontends.
+
Advanced configurations can include making [[Diskless Frontend|diskless (as in no hard drive) frontends]] which can boot over the network which makes for a ''very'' quiet machine, and storing/loading content from machines that have nothing to do with MythTV whatsoever. Again to cite my own example, the [[mythbackend]] boxes store all of the TV content, but the database lives on my Debian file server, as does all of my music and video content. Shares have been set up via NFS or Samba so that the backend machines can access the files from the file server, and pass them along to the frontends.
  
 
As you can see, given enough machines to play with, MythTV can be expanded to do pretty much anything!
 
As you can see, given enough machines to play with, MythTV can be expanded to do pretty much anything!
Line 77: Line 45:
 
* [[File Storage]]: How much disc space will I need for all this?
 
* [[File Storage]]: How much disc space will I need for all this?
 
* [[Network]]: How much network bandwidth am I going to need?
 
* [[Network]]: How much network bandwidth am I going to need?
 
== Additional Customization ==
 
 
Many people also look beyond the basic hardware for more customized and aesthetically pleasing solutions
 
 
* [[I R Blaster How To|IRBlaster]] Infared Transmitter http://mythblasters.gotdns.com/
 
 
* [[Cases]]: Found a nice case that integrates with your stereo components?
 
* [[Cooling Quietly]]: How to keep your MythTV system quiet
 
* [[Bare Bones System|Bare Bones Systems]]: Some recommendations to get you started
 
* [[:Category:Remote_Controls|Remote Controls]]: How to become a couch potato
 
* [[Commercial Mythtv Systems]]: MythTV based systems for sale as a consumer device
 
 
* External Link [http://pvrhw.goldfish.org PVR Hardware Database] - Collection of user's hardware set-ups
 
 
There is also [http://bit.blkbk.com/ an effort] to provide a working [[MythFrontend]] on an XBOX.
 
 
There is an infant [http://ps3penguins.blogspot.com effort] to provide a working MythTV frontend on the Playstation 3.
 
 
  
 
[[Category:Hardware| ]]
 
[[Category:Hardware| ]]

Latest revision as of 22:25, 26 September 2021

This article gives an overview of the hardware requirements for a MythTV system.

Basic requirements for a MythTV setup

As you probably know, Linux will run on pretty much anything. MythTV relies on the FFmpeg codecs for any video handling, so either a relatively modern CPU or a supported hardware video codec is recommended. Encoding, and thus transcoding, are much more computationally intensive than decoding, so if you are only watching digital TV, the requirements are less demanding. For watching recordings, any modern sound card and GPU supported by Linux should work. Since V31, playback requires OpenGL - any version from OpenGL 2.0 and OpenGL ES 2.0 and above should work. In addition to a standard keyboard and mouse, optionally, with LIRC, a remote control can be used.

Video capture card

Main article: Video capture card

All recording through MythTV is performed by the backend. The backend can handle as many tuners as you can physically fit in the system, and if that is not enough, you can run multiple backends located on additional hardware to expand your capabilities. Each simultaneous recording and Live TV session requires a tuner input. If you want to have padding on back-to-back recordings, you need additional tuners. Note that only one backend is needed on the network, and additional PCs can be configured as frontends with no local capture card.

Some users will have access to IPTV based off the FreeBox model, for which MythTV can use a virtual network tuner. Most users will need some form of digital tuner. North American users need ATSC whereas European, Australian, Japanese and South American users need DVB. Both IP and digital television makes use of streams compressed by the broadcaster. MythTV merely copies this data to disk for pristine, lossless quality.

For users with no access to digital broadcasts, or broadcasts restricted by encryption, analog capture devices are needed. Cheap capture devices are called framegrabbers, and require independent capture and software encoding of audio and video. Very cheap ones cannot capture audio, meaning they must be used with a separate sound card. These are nothing but a hassle to deal with. The recommended type is a hardware encoder. These will output compressed MPEG files similarly to how the digital tuners behave.

System architecture

One of the most perplexing decisions facing a newcomer is the mystical frontend/backend configuration, which I'll attempt to explain here. MythTV actually comes in two parts:

  • backend server - handles all the complicated stuff (control of the TV cards, commercial detection, file serving to frontends, the program database)
  • frontend - the bit you (hopefully) see on your screen, which handles the display of the interface, decoding and playback of audio/video streams and user interaction (such as remote controls).

Most people first opt for a combined frontend/backend, which means running the frontend and backend software on the same machine. Other configurations are a single backend and multiple remote frontends, and multiple backends connected to multiple frontends. If this all sounds confusing, read on.

Combined backend/frontend

Here you run mythbackend and mythfrontend in tandem on a single machine, to which we can also attach additional frontends. This is the simplest setup, but has a few disadvantages:

  • If this box is living in a social area, such as under the TV, you're probably going to have to jump through a few hoops to get it nice and quiet.
  • Again, you're probably going to want this box as appliance-like as possible, which usually means a pretty case that isn't too huge. This will limit your ability to expand the box without moving to separate frontends and backends
  • There is a limit to the number of TV cards a single computer is able to hold

The ideal solution to these problems is running mythbackend and mythfrontend on separate machines.

Separate backend and frontend

Here, all we do is take our backend software and throw it into some box out of sight - under the stairs seems a popular location. Since mythbackend does all the hard work, all the equipment for that hard work (TV cards, MySQL server, 30 terabyte RAID array) will also reside in this computer. In one fell swoop we've removed most of the hot and noisy components from under our TV and placed them somewhere they won't be noticed, so we can concentrate on making our frontend as pretty and as quiet as possible. All that needs to be done is that the frontend and backend need to be networked together, and a few minor configuration changes are made to the way Myth operates, and we're all set. We can also connect as many additional frontends as we have capacity for if you wish to show your recorded TV shows elsewhere in the house. Again however, there are disadvantages:

  • Setting up two machines and networking them all up will incur additional cost and complexity
  • We've still only got a single machine that can accept a limited number of TV cards

Which brings us on to...

Multiple backends

Whilst most households are content with a single backend with one or two TV cards, if you want to provide TV to multiple frontends simultaneously, you're going to require a large number of TV cards which your single backend won't be able to support. Here we simply add more backends into the fray, and again network them up in such a way that all the Myth machines can talk to one another. This essentially provides you with TV that is limited pretty much only by your wallet!

Advanced configurations can include making diskless (as in no hard drive) frontends which can boot over the network which makes for a very quiet machine, and storing/loading content from machines that have nothing to do with MythTV whatsoever. Again to cite my own example, the mythbackend boxes store all of the TV content, but the database lives on my Debian file server, as does all of my music and video content. Shares have been set up via NFS or Samba so that the backend machines can access the files from the file server, and pass them along to the frontends.

As you can see, given enough machines to play with, MythTV can be expanded to do pretty much anything!

Now that we've covered what Myth is capable of in terms of expandability, I'll delve into the more specific questions concerning types of hardware in the following sections:

  • File Storage: How much disc space will I need for all this?
  • Network: How much network bandwidth am I going to need?