Author
Topic: 1080p playback: hardware discussion (Read 7459 times)

I'm about to purchase my new HTPC. I was going to build it, but since it's only going to be used for watching media I don't really want to bother. I've had a question about 1080p playback for a while that I'd like to discuss: which hardware components are most important for 1080p playback? For example, if you had to give a percentage for each of the following items as far as how important it is to playing very large video files, what would it be?--graphics card--RAM--CPU

I think those are the three guys to look at, right? I don't know which is more important though. Sometimes a new computer will choke on a 1080p mkv or mp4 file because it turns out that it has a cheapo graphics card. i was thinking of using this ~$600 desktop as my new htpc:http://www.newegg.co...Item=N82E16883229285

I know it's probably overkill, but with 1080p playback, I want it fast and smooth. No struggling with it. I want to throw a 50GB bluray rip mkv file at it and not have any problems. I will build it with parts if necessary. I don't want to buy a prefab htpc little box and have it be underpowered in any way.

I'm still trying to figure out some kind of hierarchy of what contributes most to fast/smooth 1080p playback of the three items below:--graphics card--RAM--CPU

I had a few discussions with some people in recent weeks, and didn't get any clear answers. Several people confirmed that what's for games is not necessarily good for 1080p video, but didn't know why. So I'm still investigating. Unlike most of my inquiries, this is not about price or bang for the buck. This is more theoretical: which thing is the video playback most dependent on, and by how much? Let's say it's most dependant on GPU, but it's only slightly more so than CPU. Then it's not worth breaking the bank for the GPU, and it's best to get an evenly matched CPU/GPU combo. But maybe GPU is a lot more important. Then you skimp on CPU and get a great GPU.

Let's say it's most dependant on GPU, but it's only slightly more so than CPU. Then it's not worth breaking the bank for the GPU, and it's best to get an evenly matched CPU/GPU combo. But maybe GPU is a lot more important. Then you skimp on CPU and get a great GPU.

It's not necessary to spend a lot to get HD playback - you'll probably spend more on a nice case than the GPU/CPU/RAM combined.

$35-45 for a passively cooled HD6450 will more than handle any video decoding you're likely to throw at it - or drop the GPU altogether and just use one of the AMD APUs, say a A8-3870K - $109 gets you a quad core CPU + integrated HD6550.

OS: Something that will allow you to you use software/drivers that will offload HD decoding/encoding to the GPU.

GPU: A decent GPU with good drivers that offload the decoding, (and possibly encoding), from the CPU will enable you to use a CPU that would otherwise be under-powered for the job. Enables the CPU to just idle along, running cooler and thus quieter.

CPU: A sufficiently beefy CPU will compensate for an under-powered GPU but at the cost of heat and noise.

GPU: A decent GPU with good drivers that offload the decoding, (and possibly encoding), from the CPU will enable you to use a CPU that would otherwise be under-powered for the job. Enables the CPU to just idle along, running cooler and thus quieter.

CPU: A sufficiently beefy CPU will compensate for an under-powered GPU but at the cost of heat and noise.

Granted I haven't had time to stay up on hardware tech, but wouldn't the GPU also need to be cooled? The work is what the work is, so it seems (to me) that it would just shift the heat created by the processing required to a different chip. Much of this assertion is based on the size of the fans they're putting on graphics cards these days...and I could be completely off my nut (it has happened before (hehe)), but I thought I'd ask because it sounds a wee bit like a something for nothing (unpaid piper) scenario.

GPU: A decent GPU with good drivers that offload the decoding, (and possibly encoding), from the CPU will enable you to use a CPU that would otherwise be under-powered for the job. Enables the CPU to just idle along, running cooler and thus quieter.

CPU: A sufficiently beefy CPU will compensate for an under-powered GPU but at the cost of heat and noise.

Granted I haven't had time to stay up on hardware tech, but wouldn't the GPU also need to be cooled?

If you're going to have a discrete GPU in the machine, you might as well take advantage of it.

The GPU is hardware designed to do video decoding, the CPU isn't - you would expect that the GPU would be more efficient at that task and hopefully use less power than the CPU which would probably have to step its clocks and V up to get the job done, (probably with the attendant increase in HSF revs).

You can get passively cooled GPUs that can handle the task - the HD6450 I mentioned is available passively cooled. You'd need a case fan anyway, (purely for efficiency), so choosing a case that optimises the air flow over the GPU as part of the path would be nice.

Otherwise, as I mentioned, drop the GPU and use an AMD APU, (it's integrated graphics are far ahead of any other available IGX), and then put a more efficient HSF combination on it.

Here's a question: what affects the smoothness of dragging the seekbar around a video? Is that hardware? Software? (further complicated by the video encoding specifics..argh! video is so complicated!)

I know players like Splash seem to handle large HD files particularly well, especially the seeking part. What have they done? They have those special video options that seem to help, things like CUDA, GPU assisted playback. Most NLE software also have these features.

Then, in my own experiments, I've noticed that encoding video with particular features also helps, like keyframe settings and stuff. By the way, just this past weekend I did a rough test with various encoding settings, and my conclusion is: mkv files are the way to go. mkv is the best, it's the future.

I'm using a three or four years old slim-case PC to watch movies on my TV. Some AMD X2 with 2 GB RAM. It couldn't handle 720p or 1080p, but back then it was no issue. As I got more into 720p, I bought 18 months ago a cheap, low-profile, fanless Radeon HD5450 and made sure applications and codecs (FFDShow) supported GPU acceleration. My old PC could suddenly handle 720p or 1080p with ease: CPU below 10%. Yesterday I got a new television. Now my PC has to handle a 1920x1080 resolution and it's still no problem. Even 1080p in 3D. Neat.

I'm watching movies from a D-Link 323 LAN. Its network speed is about 20 to 30 MB/sec. Searching and dragging the seekbar isn't much fun on 720p/1080p, but if the video is placed on the HDD it's much smoother.

Quote

mkv files are the way to go

MKV is just a container and it could contain anything. I guess you mean h264?

I know, I always seem to be in that middle layer that gets ignored by the techies and the dummies.

So I guess it's settled: GPU is where it's at. RAM 4-8GB no problem, cheap either way. CPU, I can probably just get whatever, probably something in the lower middle-class range. So are there particular GPU features worth noting specifically for HD video playback?

Also (pet peeve, and no offense)...how come whenever someone on the internet mentions a codec/extension/container, someone always has to point out that this is a container, not a decoder, etc. It gets pretty annoying. First of all, the whole video file ecosystem is fairly complicated to define. there are dozens of containers and formats and encoding types and all sorts of things, with all sorts of combinations possible. And furthermore, the whole "this is JUST a container" thing is complete nonsense. I ran some tests and let me tell you, there are differences even in the things that are "just" containers. For example, I created a video file from a source, and then made two files: an mkv file and an mp4 file. In both cases, the exact same video content went in the container with no modifications. So the only difference is the container...both contained h264 video. Now, you would expect the video quality to be the same in both, but they weren't. mkv was significantly smoother than mp4, which was a little choppy. So I know everyone gets a kick out of pointing out what is a container and what is a format, but big deal. If you really want to get into it, it's a hairy beast. I keep looking into these things and I keep coming up with the conclusion that mkv files are the best way to go right now.

If you're only going to be doing media playback, why on earth are you even considering a HTPC?

Go for a WD TV Live or Boxee or whatever. Cheaper, smaller, quieter (et cetera) than anything you can build yourself. My WD TV Live draws around 9W of power, plays back 720p .mkv files over wireless 802.11n without a hitch, and can handle pretty much anything I've thrown at it, included a variety of external subtitle files. Haven't tested it with 1080p yet, but the hardware should be capable (dunno if it's possible wirelessly though).

To give you a sense of size, here's a snapshop of my 32" SONY TV and the WD-TV:1080p playback: hardware discussion

Because I don't like to buy ready-made appliances. I don't just watch the TV; I run experiments. I experiment with different playback software, different mouse control things. I'm going to try doing some things with XBMC. I'd like to load different OS's possibly and try certain things with that. I absolutely hate buying non-tweakable things like this. It's boring. For 20 years now, I have yet to be bored with desktop computer. I've gotten bored very quickly with laptops, ipads, other tablets, phones, etc. Never with the real deal computer.

Remember: I'm the guy who wanted to buy a windows netbook to use as an alarm clock.

I have another experiment for the Raspberry Pi, I'm calling it the portable university. I tried it out last friday with a friend sans the Pi. So once I get my hands on that, that will be something.

I know it sounds like overkill, but I need a full desktop pc if I'm going to do experiments. Once I know exactly what I want, then I can settle on certain features. And I hope people won't judge me too harshly for all the trees that will die and the money that could have been better spent on poverty.

I know it sounds like overkill, but I need a full desktop pc if I'm going to do experiments.

It does not sound like overkill at all to me. If you're conducting experiments, and you're not able to run virtual machines, you're creating a lot more work and expense for yourself than you need to. And you can't do something like VMs or serious multitasking on most singleboard computers.

^^exactly! That's why my priority for any computing device is always a desktop pc...and one I put together myself. I struggle a lot with buying any ready-made pc's for any reason, because there's always another experiment waiting to be done. I don't think there's any computer around me that I don't tweak and do tests with. Actually, my tablets are like that and guess what happens? I stop using them entirely after a short while and return to some old desktop to fuss around with. And that means adapters and cables running around everywhere, with girls calling my place "such a bachelor pad". I just can't help it. I got my place date-ready 2 months ago, and now it's back to the lab look. It's not worth fighting, it's too deep within me!

Ok update, this is exactly why I want to be clear about what I'm trying to do. Most of us talk like "this SHOULD be enough" and "I've never had a problem with playback". So let me describe exactly what is happening.

The files are m2ts files. If I play them in Light Alloy, Daum Potplayer, and anything else, it struggles with it. The playback is choppy. The whole computer almost locks up as it struggles to handle all this video. This is not a smooth experience. It works, nothing crashes, eventually you can get the video to play decently. But it's clear that it is lacking processing power somewhere. So where is it? This is what I want to figure out. Why? Because once I do, I will know exactly what parts to buy, what specs to look for when building a system that is primarily optimized for 1080p playback. Not gaming, not rendering, not photoshopping, just 1080p playback.

Now, if you guys say that your raspberry pi or older and less powerful computers can play back these types of files with "no problem" then I will be surprised. If that is true, there is some component in your system that is just the right thing for this. What is it? A special type of RAM? A special type of GPU?

What I want is this:--when a video is double-clicked to play, it should be as quick as possible. no thinking about it for 10 seconds.--dragging the seekbar back and forth should not lock up the computer. Should be relatively quick also.--playback should be smooth. This is 60 frames a second at 1080 resolution. It's a lot. When it's smooth, it's a wonderful experience. When it's not, it's not worth watching.

I recently tried 1080p playback on my WDTV, though - and it was 100% smooth, even streamed across the wireless network. But OK, regular movies are ~24fps, not 60fps. The WDTV specs says it can do 1080p@24fps, 720p@60fps - which is fine for normal purposes

Locking up the computer shouldn't happen, but you will have to accept a short amount of lag. When seeking to an arbitrary timepoint, the player will have to find the nearest keyframe, and then decode frames until it hits the exact timepoint you're asking for.

I'd be surprised if a Raspberry Pi would do it. It's fun to play with but I don't think it would handle the throughput of 1080p playback.

Do keep in mind that, while it has a really wimpy CPU, there's GPU hardware acceleration. Dunno if it can do 1080p, but it wouldn't surprise me - but it does mean that only very specific video formats (and possible very specific encoding options) are going to be supported.

Now there is a project for linking Pis together to form multicore 'super computers' - that might be a nice route to try ;-)

I wish people would stop calling it 'super computers'. The Southampton Uni RasPi cluster project is cute (because of the lego) and it's a worthwhile project for teaching how to program clusters... but it's definitely not a "supercomputer" :-)

Uh-oh! Next thing you know, f0dder's gonna be telling us how to abbreviate Firefox too...

*grin*. I know that you're being tongue-in-cheek, but nevertheless... Well...

Isn't "supercomputers" about "lots and lots of processing power"? Would clustering a bunch of 486s on a coaxial network make a "supercomputer"? The RasPis are 700MHz, but a relatively ineffecient (in terms of cycles/MHz) CPU - probably (guesstimate) about 4x as inefficient as a modern core2 based CPU. A modern mid/high-end core2 quadcore is 3.4GHz, which would be equivalent to roughly 3400*4/700=20 RasPis (rounding up, but at the same time ignoring the benefits of hyperthreading and very fast inter-core communications compared to networked connections between the RasPis). Even without factoring in the guesstimate of 4x architectural benefit (and ignoring that the core2 probably also has a "somewhat" faster memory bus), it should take no more than four modern core2 quadcores to beat the processing power of the 64-node RasPi cluster.

Does four Quadcore PCs on a network constitute a "supercomputer"?

Of course the calculations above are tongue-in-cheek, and real-world performance depends quiiiiite on the work you're going to perform - possible GPU offloading and crunching-power-per-watt are not included (a lot of people who do the crunch-per-watt for RasPis forget that the architcture is less cycle-per-MHz efficient than core2, and "forget" including power consumption and latency for the network gear, etc). But it should put things into perspective.

I still maintain that it's a valuable project, since it's a cheap way to build a cluster, and if you're going to teach supercomputer programming, you do need to focus on "massively parallel" and how to distribute jobs between a lot of nodes - that's more important than the actual processing power.

The articles calling it "supercomputers" sound slightly silly and totally miss the point.