Question / Help Questions about resizing input

vopeju

New Member
yo. I got in a conversation yesterday and I ended up giving out a few hints. I'll reproduce them here.

Tips for making your stream look better: 1. RESPECT FKN ASPECT RATIOS
2. don't go over 2k bitrate unless you have partner/quality options
3. scale game footage up or down in size by multiples of 2 (note: not necessarily same thing as stream output resolution)
4. 60 fps
5. keep overlays simple to stop them from eating bitrate. obv exceptions to this (webcam)
6. if streaming older consoles, deinterlacing is ridiculously important and you better fkn get it right
7 (finally). better source input quality - upgrading from composite to svideo, etc

after saying that, I got in a couple conversations with ppl that made me wonder exactly how correct some of the things I said was. I mean, I'm still 99% sure it's decent general advice (and yes I know you don't wanna do 60 fps at really low bitrates), but I wanna clarify some edge cases now, particularly with resizing.

The main reason I talked about sticking to multiples of 2 with resizing was because of things like https://pbs.twimg.com/media/CQNMTdJWEAAegmE.png:large (left is 4x4 source, then 8x8 nearest neighbor upscale, 6x6 nearest neighbor, 6x6 bicubic). Obv 8x8 looks best. But immediately after, I started wondering about some edge cases.

So I have a couple questions:
1. What's the best ratio for downscaling? Do you still stick to multiples of 2 if you can?
2. Are there any intermediate numbers when upscaling or downscaling? Assuming x2, x4, x8, w/e are going to be best, but is a 1.5x upscale better than 1.49x?
3. How does OBS upscale? Like, you add a 320x240 game feed to a much larger stream, then drag it bigger. What algorithm does it use? & what's point filtering?

4. Is the source already resized by the time you get it from a capture card? I use a GV-USB2 for older console capture, & when I look at the list of supported settings in amarec, it's some garbage like this: http://i.imgur.com/IaqhENt.png . I've just clicked on the biggest 29.97 fps option available. Should I be combing through screenshots looking for line doubling from the source? & obviously 720x480 is incorrect aspect ratio, so now I'm realizing that I have the live output setting at 640x480 . . . ...

5. Does any of that matter when the twitch player is going to dynamically resize everything differently for every viewer anyways?

the more I write, the less sure I am that I know what I'm doing ;_;
 
Last edited:

FerretBomb

Active Member
1) Yep.
2) Yep.
3) If possible. Preferably never downscale a source in the Preview; upscale there, and then downscale in the overall scene dropdown. It's post-compositing, so the frame will be preserved better and use a higher quality scaling method than the one used in the preview-element-resize method.
4. Hell no. 60fps is a waste of bandwidth and CPU. Shaddap.
5. Overlays generally are static elements unless they include transparency, and will help reduce the bitrate needed, as the frame will have less overall motion. They can be as visually complex as you like, so long as they don't move.
6. Yep. Get a framemeister. Older consoles with blitting is one of the only reasons you ACTUALLY might need 60fps.
7. Trash in always = trash out. Quality in may still result in trash out, but you have a chance for quality out. SVideo isn't that much of a step up from composite, though.

1) Yep.
2) Yep. A 1.5x downscale will have a regular pattern to its scaling, and will be easier on the eyes. A 1.49 downscale will tend to be irregular and look worse.
3) As far as I know, it uses a simple GPU texture scale. Not certain which method.
4) Depends on the capture card. Some internally resize, some deliver native, some allow you the option (deliver native unless a specific size is requested). Your cap card options specify resolution, framerate, color sampling method (THIS IS IMPORTANT!), and bit depth. Different cards will have different supported outputs. 720x480 is a 16:9 AR. Your cap card may not speak 4:3.
5) It does, as errors are not linear. They're multiplicative. The cleaner your source, the better it will look even if Twitch mangles it. Also, there's the Fun(tm) of transcodes, which seem to be more of a quick-and-dirty approach.
 

vopeju

New Member
thanks for the answers.

my capture card actually only gives me one option for color sampling method at all (YUY2). Probably a moot point in my case, but can you go into more detail about which option would be best and where/how it would be converted & make a difference? I'm aware of what a colorspace is but aside from discovering it's why red shit is always blurry on stream, it hasn't affected my stream. If any conversions happen I don't know where. I'd just like something to keep in mind if I ever upgrade to an HD capture card, is all.

re: 60 fps, i speedrun. the smoothness is important & extremely visible. can't save the frames if i'm discarding half of them, know what I mean?
 

FerretBomb

Active Member
RGB24 would be best. YUY2 is a colorspace mode in 4:2:2... it's a lengthy explanation, Google for 4:2:2 vs 4:2:0 for a good explanation. RGB samples every pixel (4:4:4) and will give the truest reproduction.

re: 60fps. Unless you're playing on your cap card's preview, you personally aren't going to see any difference between 30 and 60fps as far as gameplay/saving frames. It's just what goes out on the stream. And with the capture latency, if you ARE playing on the capture preview you aren't going to be doing frame-perfects without learning some compensation already.
Playing at 60fps+ = important. Streaming at 60fps+ = mostly outright numbers-wanking and wasteful of bitrate, unless you're a partnered caster or are playing an older game that uses sprite blitting. At which point you'll need to drop to 480p@60 to hold roughly the same image quality on 2000kbps.
 
Top