Question / Help Need help optimizing my stream settings!

Mon0

Member
Hi

I just started streaming on a new internet connection. Did my homework and figured a decent setup for my stream settings. However, I'm looking to improve it even more and I now need help from the experts :)! Here are my settings:

NON-PARTNERED on Twitch
Encoder:
x264
Use CBR: checked
Use CBR padding: check
Bitrate: 2000Kbps
FMS URL: I actually don't know which one would be better here. I remember there was a program that we could download to figure this out. I can't find it. Perhaps someone can link it?

Resolution: 720p
Filter: Bicubic (read somewhere Lanczos actually had issues. Is that true?)
FPS: 30

CPU Preset: Fast
Encoding profile: main

I'd like to remove as much as possible the pixelation and the choppy/laggy video. Here's a video preview of my first real stream: https://www.twitch.tv/dmonwell/v/64924946 (sorry for the accent, I'm french). As you can see when I move around the video is a bit "skippy" and a bit pixelated (note: in this video I use 2500kbps bitrate and veryfast cpu preset). I don't know what else I can do to improve the quality of the stream.

Which is why I'm asking you guys. Anything I can do to improve the quality of the stream?

Thank you in advance for helping me! :D
 

Boildown

Active Member
Post an OBS log file from at least five minutes of high action gameplay. Link to the corresponding VOD as well.
 

Mon0

Member
Okay.

Sorry for the late reply, I thought my thread was actually dead :(. How am I supposed to record an OBS log?

NVM, got it! I will post a log of 5 minute intense gameplay and the link to the video tomorrow.

Thank you for the reply again sir!
 

Mon0

Member
Actually, here it is:

Log: https://gist.github.com/c9ee67a0b8b2a7e2857ca8059d906f7a
Related video: https://www.twitch.tv/dmonwell/v/65781312


It's a 10 minute video. The intense fighting starts around 4:30 min mark. But you can already see before that mark that the video is pixelated and that the camera movements are choppy.

Here are the current settings I am using in OBS:

NON-PARTNERED on Twitch
Encoder:
x264
Use CBR: checked
Use CBR padding: check
Bitrate: 2000Kbps
FMS URL: US East, Ashburn VA (I'm from Qc, Canada)

Resolution: 720p
Filter: Bicubic (read somewhere Lanczos actually had issues. Is that true?)
FPS: 30

CPU Preset: Faster
Encoding profile: main

I would really love to fix those issues. Hope you guys can help me.
Thanks!

And just so you know, I have 30 down speed and 10 up speed + Here are my PC specs:

ASUS P8z77 v-LK
i7 3770k
GTX 980
8GB RAM
2TB HDD + 125GB SSD
 

Foxi

New Member
  • Lower your bitrate (and if necessary resolution/framerate)
  • Try different servers of the same Provider (will probably not help)
  • Try a different Provider (might have a better balancing)
  • Accept that some viewers can encounter problems
  • Lower your bitrate (and if necessary resolution/framerate)
 

Boildown

Active Member
03:00:38: Video Encoding: x264
03:00:38: fps: 30
03:00:38: width: 1280, height: 720
03:00:38: preset: faster
03:00:38: profile: main
03:00:38: keyint: 60
03:00:38: CBR: yes
03:00:38: CFR: yes
03:00:38: max bitrate: 2000
03:00:38: buffer size: 2000

03:10:11: Total frames encoded: 17161, total frames duplicated: 168 (0.98%)
03:10:11: Total frames rendered: 17126, number of late frames: 37 (0.22%) (it's okay for some frames to be late

So everything here looks fine except the duplicated frames is right on the cusp of what my rule-of-thumb says is too many (1%). So I think you might want to do something to decrease that number, which will help with stuttering (but not buffering and might hurt pixelation).

The most obvious thing would be to switch to Very Fast preset instead of Faster. The will definitely decrease duplicated frames but at a cost of slightly less quality for the bitrate you send. If you think stuttering is the problem, its the right thing to do.

Another thing you could try is to increase the Process Priority of OBS.

Finally, you could add a custom x264 command of "threads=10" and see if that improves performance or not. I found that it helps things a small amount on my 2600k. Sometimes "threads=9" is just as good; you should experiment to see if there's a number specifically that performs the best with your computer and game. The default is equivalent to "threads=12" for your CPU, by the way, which is IMO too many threads, but it only really matters in edge cases.
 

Mon0

Member
Thanks for the help Boildown!

I'm gonna use the veryfast preset then and change the process priority of OBS to high.

Now, how do I add a custom x264 command for "threads=10"?
 

Mon0

Member
Alright so here's another test:

Log: https://gist.github.com/ae625b3fae57591bb48c52b7d019e7f5
Related Video: https://www.twitch.tv/dmonwell/v/65854633

NON-PARTNERED on Twitch
Encoder:
x264
Use CBR: checked
Use CBR padding: check
Bitrate: 2000Kbps
FMS URL: US East, Ashburn VA (I'm from Qc, Canada)

Resolution: 720p
Filter: Bicubic
FPS: 30

Process Priority class: High
CPU Preset: Veryfast
Encoding profile: main
Custom x264 Encoding settings: threads=10

The duplicated frames is definitely worst for some reason and the pixelation is still there, but it does feel slightly less "choppy" in the video.

Not sur what's going on. Any recommendations?
 

Boildown

Active Member
You should make one change at a time. Get rid of the threads=10 and make the only change the Very Fast preset change. Make sure the video complexity is about the same each time, too, otherwise the results won't be comparable.

Duplicated frames was 0.88% vs 0.98%.... you shouldn't count the first encode because it was too short, and OBS generates duplicated frames when starting up in large numbers sometimes that influence the statistics but not anything but the first few seconds of video.

There's a high variability in my experience, even when I play a game (typically Planetside 2, for me) normally for hours each "test", so this may be hard to really nail down if your adjustments result in small changes.
 

Mon0

Member
Okay!

#1
Log: https://gist.github.com/683bc96580c170349bde5c4ec1239e04
Related video: https://www.twitch.tv/dmonwell/v/65868573

NON-PARTNERED on Twitch
Encoder:
x264
Use CBR: checked
Use CBR padding: check
Bitrate: 2200Kbps
FMS URL: US East, Ashburn VA (I'm from Qc, Canada)

Resolution: 720p
Filter: Bicubic
FPS: 30

CPU Preset: Veryfast
Encoding profile: main

Pretty much the original settings here. Except this time I decided to up the bandwith a bit to 2200 (not a huge change honestly but for some reason it seems the playback rate on twitch is more stable when using 2200. Am I wrong thinking that? Does it even matter anyway?)

Video is much smoother. However, still pixelated.

#2
Log: https://gist.github.com/b6af3933d8364232ddac4fa31a2e19d3
Related video: https://www.twitch.tv/dmonwell/v/65870975


NON-PARTNERED on Twitch
Encoder:
x264
Use CBR: checked
Use CBR padding: check
Bitrate: 2200Kbps
FMS URL: US East, Ashburn VA (I'm from Qc, Canada)

Resolution: 720p
Filter: Bicubic
FPS: 30

CPU Preset: Veryfast
Encoding profile: main
Custom x264 Encoder settings: threads=10

Same as the last recording but with the command threads=10.

I don't know. Maybe it's just the resolution and bandwith that gives me those pixelations. Or maybe I'm just being too perfectionist. But I would totally like to achieve something like this: https://www.youtube.com/watch?v=TslTHoeLwFA
 

Boildown

Active Member
I think this is simply as good as you're going to get without moving to a better preset, which when you tried, you had too many duplicated frames. You might try lowering your webcam resolution some more and seeing if you can do Faster instead of Very Fast as a result. The only other way to reduce pixelation is to increase the bitrate. But the more you increase the bitrate, the more your viewers may complain about buffering. And you need to have the upload speed for it too, of course.
 

Mon0

Member
Sorry for the late reply. I was streaming.

Good news is, I had 0 duplicated frames this time with these settings:

NON-PARTNERED on Twitch
Encoder:
x264
Use CBR: checked
Use CBR padding: check
Bitrate: 2200Kbps
FMS URL: US East, Ashburn VA (I'm from Qc, Canada)

Resolution: 720p
Filter: Bicubic
FPS: 30

CPU Preset: Veryfast
Encoding profile: main
Custom x264 Encoder settings: threads=10

Pretty happy about that! Just need to figure out how to reduce the pixelation for high motion games now. I only tried with TW3 and I know TW3 is a very demanding game. Maybe it is why it's pixelating a lot. I'll try with another fast motion game.

However, if it is the case that the pixelation is due to the fact that TW3 is a very demanding game, what do I need to do to improve the image quality then? Reduce resolution? Or it is just impossible without upping the bandwith? I don't really want to go over 2500 bandwith to have as many viewers as possible. Otherwise I could do 10 000Kbps if I wanted.

So, how would I reduce the pixelation? Thanks for the help!
 

Boildown

Active Member
So think of like this, you have 2200kbps to spread out over all your pixels. The faster the framerate, the fewer bits you have to spend on each pixel. The higher the resolution, the fewer bits you have spend on each pixel. You could try downscaling further and see if it looks better. An upside of downscaling more is that it takes less CPU to encode, which means you can possibly use a better preset. Maybe 540p on Faster preset looks better than 720p on Very Fast. Its all very subjective, no one can tell you the right answer.
 
Top