Posts: 21
Joined: Mar 2005
Reputation:
0
jeff_8
Junior Member
Posts: 21
2006-09-24, 14:51
Hi All!
I see a lot of 720p content hittin the net these days for tv shows, files are about 1.1-1.4GB per hour tv episode. From what I read, XBMC can't handle these files, the processor is just too slow. Mind you, I've read posts that older builds could play this type of content, is this true? Is there any way to play these files? Anyone know of CPU upgrade options that would allow this? I'm thinking of upgrading to an HD tv, and am exploring options for gettin the most out of it...
If not the XBOX, is anyone out there viewing these 720p files somehow?
Thanks!
Posts: 656
Joined: Jul 2004
Reputation:
2
I was sitting down here to post a question and yours pretty much represent exactly what I was going to ask :-) Sorry for not having an answer, but let me throw in my "me too" in this thread to ecourage peope to share their experiences. My TV can handle 480p and my xbox can handle that without problems. I would very much like to upgrade to a larger set that can handle at least 720p but a lot of the point disappears if my beloved xbox cannot handle it.
Posts: 3,805
Joined: Mar 2004
Reputation:
3
elupus
Team-XBMC Developer
Posts: 3,805
720p upscaling works just fine for any content (hardly any speed penalty as it's handled by gpu). 720p content MAY work if it's not too high bitrate. 720p xvid is your best bet. any h263 will likely just give you grief.
Posts: 21
Joined: Mar 2005
Reputation:
0
jeff_8
Junior Member
Posts: 21
Has anyone used VLC? I was wondering if that could help stream the 720p files - if too big, maybe using the PC to stream them would let the PC handle some of the load? I've tried it, using HTTP as streaming protocol, but can't seem to get it to work - the most I've been able to get is the audio (I think XBMC thinks it's simply streamed audio)
Posts: 21
Joined: Mar 2005
Reputation:
0
jeff_8
Junior Member
Posts: 21
Oh, and elupus, what would you think (approximately) a 'not too high bitrate' would be? I'm gonna try some conversions out of curiousity...
Posts: 294
Joined: Feb 2006
Reputation:
2
plugh
Senior Member
Posts: 294
2006-09-29, 04:44
(This post was last modified: 2006-09-29, 05:10 by plugh.)
I've been doing a lot of study and testing and benchmarking over the last few months, and I'm to the point now where I can pretty reliably do high quality "HD" xvid encodes for the xbox that don't drop frames. The key is to understand and account for its limitations, and make appropriate trade-offs.
65K-66K macroblocks per second is about the limit for high quality encodes as things stand at the moment. This translates, for example, to 1280x544@24fps [ie 1280*544*24 / (16*16) = 65280 MBS], which is what you need for 2.35:1 aspect ratio film material.
The jump up to full frame 1280x720, even at the same 24fps, is huge.
1280*720*24 / (16*16) = 86400; you need a 33% increase in the ability of the system to acquire (I/O), process (CPU), and display the video, or you need to take a major hit in the quality (higher quantizers). At 30fps you are talking about 108,000 MBS or 65% more capability (or an even larger decrease in quality).
Besides establishing that MBS limit, I've also looked into the 'spikes' issue (busy scenes, sudden motion, things that cause the encoder to want to generate bursts of very large frames) and how to constrain it.
In that area, something xvid incorporated at the behest of the divx folk are the dxn hardware profiles. When using one of these profiles, the xvid codec *enforces* 'max instantaneous' and 'total over one second' bitrates limits. And as it so happens, the bitrate limits for the DXN HDTV profile are just about a perfect match for the xbox / xbmc. (Some of the other parameters for this profile are too generous - 1280x720@30fps - no way jose - but I just stay within the MBS limit I defined above instead).
The other thing I do, a bit more subtle but it helps smooth stream rates and processing out, is limit max consecutive b-frames to 1.
With respect to *average* bit rate; after numerous encode / playback tests, here's a rule of thumb for you (qualified by everything above). After the first pass (and you must do two-pass for the profile constraints to apply), look at what the average bitrate was for that pass, add 10% to it, and specify that as your target bitrate for the second pass. That's will typically give an average quant value just below 3, with a few frames maybe up as high as 9 (where the constraints forced a higher quant to stay within the peak limits). As a general rule, you won't notice them because they are in brief busy scenes.
The 'high side' number, if you want to push things, is 4854kbps; that is half of the DVD spec'd max video bitrate, and also half of the DXN HDTV profile max bitrate (gee, what a coincidence!). And my experience, with my V1.0 xbox and Thomson DVD drive, is that if I go much beyond that, the combination of increasing cpu load and dvd drive throughput limitations result in cache depletion during 'busy' scenes - no frame drops, but output stutters as the system refills the cache from the dvd. And simply increasing cache size isn't a solution - there is a detectable cpu hit from overly large caches. If you want to experiment with higher bitrates, you basically have to play them from the hard disk, but keep in mind you are pushing your average closer towards the profile's max.
Oh, and before I close... So what to do when your source material isn't 2.35:1? Like it's 1.85:1 or full frame 16:9 (1.78:1)? What *I* do, is, resize to 960x720...
960*720*24 / (16*16) = 64800 which is within the MBS limit I defined above and happens to be a nice set of number for a whole bunch of reasons (think about it). It is twice the resolution of full frame dvd; it is 1/3rd the resolution of full frame 1920x1080; and it is 3/4th resolution of 1280x720. It's a 4:3 frame ratio; and when you apply a 4:3 pixel aspect ratio (or simply select xbmc's 'stretch 16:9' view mode) you get your 16x9 picture back.
Anyway, in closing...
Keep your encode under 65K-66K Macroblocks per second
Use the XVID/DXN "HDTV" hardware profile
Set max b-frames = 1
Do two-pass encode
Set average bit rate <4800kbps
Have fun and post your test results.
Oh, and PS - I use an external digital audio processor so the xbox cpu doesn't have to deal with that as well...
Posts: 294
Joined: Feb 2006
Reputation:
2
plugh
Senior Member
Posts: 294
BTW, the above was using xvid 1.1-final. As I recall, the profile parameters were were updated very late in the development / release cycle.
Posts: 12
Joined: Sep 2006
Reputation:
0
hohead
Junior Member
Posts: 12
Hey plugh,
Thanks for your input! Very helpful!
In my situation, I'm not encoding my own XviDs, so I'm wondering if you, or anybody else, can let me know if all the "HR HDTV" files commonly found on the internet play smoothly using XBMC?
These files, as I'm sure you know, are considered "half resolution HDTV", or "high resolution HDTV. They have 960x528 widescreen resolution.
Thanks for your help!
Cheers
Posts: 21
Joined: Mar 2005
Reputation:
0
jeff_8
Junior Member
Posts: 21
hohead - Yup, they play nicely and are a good option.
plugh - thanks for all the info! I did some simple conversions, using River Past Video Cleaner Pro 6.8. I didn't quite understand all the options though, and just re-encoded using XVid, single pass, default options, and set the bitrate slider. First I tried 1000 - played fine, lost a lot of quality, then 2500 - played fine, then 3500 which played a few seconds then paused, repeat. Mind you I didn't use 2-pass or the other options you gave - I'll try that next!
Posts: 21
Joined: Mar 2005
Reputation:
0
jeff_8
Junior Member
Posts: 21
Oh, and I just have the "HDTV" profile in the drop-down list in the XVid encoder configuration - is this the DXN Hardware profile or do I have to get that from somewhere?