Question / Help Improve Stream Quality

Scotch

Member
Main PC:
i7-6700k
2x Nvidia 980's
16g DDR4 Ram

Stream PC:
i7-3960x (overclocked to 4.2)
Nvidia 295
32g ram

Stream settings:
1060p 60fps
encoder: x264
Bitrate: 3500
Keyframe interval: 0
Use CBR checked
Preset: Fast
Profile: High
x264 options: bframes=1 direct=temporal ipratio=1 pbratio=1 keyint-min=30 scenecut=20

An example of my stream:
http://www.twitch.tv/scotch_o/v/19345731

I am currently streaming at 1080p 60fps with FPS games and want to improve the quality of my stream. Currently it looks pretty good but with some pixelation that occurs on movement. I get that means I either need to have a higher bitrate or a slower encoding option. I use fast currently and have tried medium but medium has some CPU spikes occasionally at high movement and and that means the stream stutters a little bit. Even with the medium preset I do still see some pixelation.

My question really then is there anything I can do to improve my stream quality? Is some part of my stream PC just not good enough? I really don't want to go beyond 3500 bitrate but is that the only answer?

As a side note I tried using the normal OBS and Xsplit and neither were able to run properly, the slower encoding options put A LOT more strain on my PC and I could only ever use the Faster preset.
 

Attachments

  • 2015-10-04 18-19-14.txt
    22.4 KB · Views: 87

Harold

Active Member
If you're not partnered, you're too busy chasing the 1080p60 stream metrics to notice that a large percentage of your potential viewers are unable to watch due to being in buffering hell.

Sure picture quality may be higher, but what's the point if your viewers have their stream connection interrupted every second and a half because their connection to the viewer servers can't keep up?

The main reason we recommend 720p30 at 2000kbit instead of 1080p60 at 3500kbit on twitch is just this reason.
 

Scotch

Member
If you're not partnered, you're too busy chasing the 1080p60 stream metrics to notice that a large percentage of your potential viewers are unable to watch due to being in buffering hell.

Sure picture quality may be higher, but what's the point if your viewers have their stream connection interrupted every second and a half because their connection to the viewer servers can't keep up?

The main reason we recommend 720p30 at 2000kbit instead of 1080p60 at 3500kbit on twitch is just this reason.
So your help is that I should just give up? Thanks but no thanks. I monitor my stream quite a bit and from my few regulars they don't seem to have any trouble. Plus I always find it interesting when people tell me that 3500 bitrate is unusual, nearly every big name streamer is at max bitrate anyways, even the 720p30fps ones.

I don't doubt there are people who don't have the internet connection required to watch streams at 3500 bitrate but it doesn't seem to be that limiting of a factor.
 

Harold

Active Member
nearly every big name streamer is at max bitrate anyways, even the 720p30fps ones.
Because those big name streamers have partnership and transcoding options.

And it's not the internet connection as a whole that is the problem. It's the route to the viewer servers in san fransisco. All non-partnered twitch streams that are below a certain viewer threshold (controlled by the twitch admins on the given day) get their viewers routed to the servers in san fransisco. Just because you and your regulars don't get buffering watching them, doesn't mean that a large percentage of your potential audience isn't.
 

Scotch

Member
Because those big name streamers have partnership and transcoding options.

And it's not the internet connection as a whole that is the problem. It's the route to the viewer servers in san fransisco. All non-partnered twitch streams that are below a certain viewer threshold (controlled by the twitch admins on the given day) get their viewers routed to the servers in san fransisco. Just because you and your regulars don't get buffering watching them, doesn't mean that a large percentage of your potential audience isn't.
Honestly as a small streamer, I don't have any chance to grow unless I offer something different. You say I lose a potential audience by streaming at 1080p, I say I stand out to a different audience because I stream at 1080p.
 

Scotch

Member
With that mindset, you've already lost the viewers that are stuck watching big streamers or streamers that stream at 2000kbit 720p30 or lower.

https://obsproject.com/forum/thread...oads-constantly-for-my-viewers-but-why.18465/

The audience you stand out to was smaller last I checked.
I appreciate what you are saying, I really do. I may even change my mind, I haven't decided 100% yet but I always appreciate more information.

I have a question then, if I had enough viewers to get the quality options for the stream, would streaming at 1080p be acceptable being that those that have lower internet speeds or simply just bad connections to twitch could lower the resolution.

At the end of the day I really am just trying to provide the best content I can, if the technology isn't there for a large audience to watch streams at 1080p, so be it. But I would still very much like to try to fix my stream at 1080p, if for nothing more than for future options.
 

Harold

Active Member
Once you get quality options, yes you can switch up to 1080p with the higher bitrate. Nothing is stopping that

The other option ends up being streaming to a different service that offers transcoding options to everyone such as beam or youtube.
 

Niamor

Member
Streaming 1080p60fps on twitch is pointless imo, flash is just not meant for it at all and is too cpu intensive, there is a reason why youtube switched to HTLM5 and at 3500 Bitrate it doesn't look that great at all anyway like you can see. If you want to stream at that res/fps switch to youtube or other better streaming platform and put up to 9k bitrate.
If you want to stay on Twitch use 1080p30fps or 720p60fps it will look so much better.
 
The problem you have as far as I can tell is that you are trying to stream a game with lots of movement in it, I'm guessing an FPS but you don't say. When you have a lot of movement in a game you require more data to describe the movement cleanly. If you are playing Hearthstone say which is generally quite static then there is little movement in the game and the data requirements are smaller. If you are playing CS:GO then there is constant movement and the data requirements are higher. The amount of data required to describe the movement in the game then ties up to your bitrate.

The other factors to the amount of data required to show the game cleanly is the resolution and frame rate.

So you've dealt with the second chunk here but not factored in the first and in your case more important factor. You've tried to adjust this by having the encoder work in a different way which is a good start but as you have pointed out you then become CPU bottle necked when using Medium preset. However even if you could get better performance from the encoder you may still see 'blurring' for want of a better word in fast moving scenes. Bear in mind that the minimum a lot of people record video for YouTube in at 1080p60 is 8000kbps (this is a bare minimum as well, I use at least 15kbps if not more) and you have less than half of this to play with when streaming to Twitch.

I hope that makes sense so far.

The other thing to think about is what @Harold pointed out. If you are using Twitch and you are not partnered you will not have transcoding options which means amongst other things that any viewers you have will have to watch at source quality, 3500kbps in your case. Most consumers of Twitch do not have high speed broadband links. If you are just streaming for friends who have decent quality fibre or cable then fine knock yourself out and stream at 3500kbps, if you want many others to join your Twitch community you are going to have to reconsider. I have an excellent example of a partnered Twitch streamer, ItMeJP, he doesn't stream at 1080p60 even though he is partnered, just for interest he uses 1600x900, 60fps at 3500kbps, he's a variety streamer and plays mostly FPS and MMO which are all games with high amounts of movement.

So you have options

Carry on as you are that's fine and good luck to you but you are probably never going to get rid of all the blurring even if you upgraded your encoding processor to the latest and greatest and improved the Preset.
Stream some where else, YouTube Gaming has 9000kbps with transcoding options and so would be a great fit for the quality you are aiming at but doesn't have the following or community spirit that Twitch has.
Lower your setting to 720p60 at 2500kbps and see how that goes on Twitch, you've got lower data requirements and so need less bitrate and it still looks excellent.

Just so you know I am a newbie at all this, I've learnt a hell of a lot by reading posts on this forum and by checking out the Twitch subreddit. I'm also totally open to being corrected and to learning where I've misunderstood some new concept so please do correct me if anything I've said above is wrong.
 

Scotch

Member
Overall some good suggestions here.

I decided to go back to 720p60fps. At first I was still using the 3500 bitrate just for testings sake, turned it down to 2000 and the stream still looks pretty solid to me. I plan to eventually go back to 1080p60fps if I get enough viewers to actually have the transcoding options, but until then I will stick with this.

Even with the slight blurring that occurs with 1080p60fps I think the stream looks better than the solid looking 720p60fps, but for the sake of actually growing the channel I will stick with the low bitrate 720p60fps. As I always believe, the viewer comes first.

To everyone saying that 1080p60fps just isn't viable, I say look at this guys stream:
http://www.twitch.tv/oushu_genji

Obviously he is partnered and he even uses a too high bitrate (4300-4500) but his stream looks flawless. So here's hoping that eventually twitch chills on the bitrate limits and opens up transcoding options to the smaller streams so we can have a chance to grow.
 

DEDRICK

Member
Big name streamers don't stream 1080p60 because it looks like balls on Twitch during motion scenes unless you are playing Hearthstone. Lirik for example only streams 720p60.

If you are using Multiplatform use the Film Tuning profile, if you are using OBS put Tune=film in your custom x264. Film tuning modifies the deblocking filter and can help with scaling and compression artifacts.

If your Stream CPU can handle it without skipped or duplicated frames use Medium CPU, 720p48 2500Kbps, film tuning, ditch that Bframes custom as it is making the quality worse by reducing the consecutive reference frames available for motion scenes.

Medium is the default x264 preset, everything else modifies Medium in some way. If you want to know more about x264 go here, http://nx.beandog.org/doku.php?id=x264

Changing default values beyond the CPU presets and tuning profiles does almost nothing except use more CPU/make it look worse.
 
Last edited:

Scotch

Member
Big name streamers don't stream 1080p60 because it looks like balls on Twitch during motion scenes unless you are playing Hearthstone. Lirik for example only streams 720p60.

If you are using Multiplatform use the Film Tuning profile, if you are using OBS put Tune=film in your custom x264. Film tuning modifies the deblocking filter and can help with scaling and compression artifacts.

If your Stream CPU can handle it without skipped or duplicated frames use Medium CPU, 720p48 2500Kbps, film tuning, ditch that Bframes custom as it is making the quality worse by reducing the consecutive reference frames available for motion scenes.

Medium is the default x264 preset, everything else modifies Medium in some way. If you want to know more about x264 go here, http://nx.beandog.org/doku.php?id=x264

Changing default values beyond the CPU presets and tuning profiles does almost nothing except use more CPU/make it look worse.
Oh nice, I will give those changes a try for sure!

I linked him before but this streamer:
http://www.twitch.tv/oushu_genji
He streams 1080p60fps that is flawless in high motion fps games, so maybe twitch has gotten better?
 

Scotch

Member
Well he is using 4500 Kbps, that raises his BPP.

You can use this to see what CPU preset he is running when he is online (estimated) https://r-1.ch/analyzer/
Yeah but lirik and summit already use a 4500 bitrate, so I am thinking they must have relented for those super large name streamers, hopefully they will allow others to start pushing the limits also.
 
Top