Question / Help Poor video & microphone quality

ShadowU

New Member
Hi there,

I recently got a better internet connection so I decided to try streaming again. However, even though I'm fairly sure my PC should be able to handle streaming perfectly alright as I have friends who stream with weaker systems, there are three big problems with my stream:

1. My microphone quality becomes really bad as soon as there's any game sounds mixed in with my voice. I'm using a Siberia v2 headset which has a pretty good mic for what it's worth, but as soon as I start streaming games I start sounding like I'm talking through a muffle or something - as soon as the game sounds stop, I sound normal again.

A video to demonstrate: http://www.twitch.tv/shadowtasos/b/532086722

When I record myself on Audacity and such I sound perfectly okay, it really isn't acceptable for sound quality to drop that much imo.


2. My video quality in general seems really poor for what I feel my computer should be able to handle. I've tried streaming at a variety of resolutions and bitrates, playing around with the various options a bit as well, but I'm really not very satisfied at all. Scenes with no movement look okay, obviously, but on higher-action, high-movement scenes, everything starts looking completely pixelated and blurry.

This can be observed when I'm doing local recordings as well, which is just weird - for instance I might set the bitrate to 8000 kbps and record 720p gameplay and it'll still look super pixelated.

Video to demonstrate: http://www.twitch.tv/shadowtasos/b/532093013


3. My viewers keep saying that the stream keeps buffering... And ironically enough, it keeps buffering for me as well when I view it, but not for certain other viewers. I've tried streaming at as low as 2000kbps, which I assumed would be enough to do away with the buffering problem, but not even that worked...


Any advice with this is welcome. What kind of settings could I tweak to fix these problems?

Also general setting recommendations for my system are very appreciated.


My PC:

i7 920 OCed to 3.2 GHz
AMD 7970 OCed to 1000 clock/1500 memory
4 GB RAM
Intel 510 SSD
SteelSeries Siberia v2 headset

My connection

50mbps down/5 up

My log: https://gist.github.com/892fc629891a41b9d9c6
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
The OBS audio encoder needs to be upgraded. Fortunately, we're upgrading it in the rewrite, and I may be able to get it in to the current version as well at some point.
 

ShadowU

New Member
Ah, I see. So do you reckon that my particular problem is inherent to the encoder and there's nothing I could play with in order to hopefully fix this issue?

Also would still appreciate any advice on the other 2 issues I'm having, thanks a lot in advance.
 

Goldio

Member
As far as the quality goes I think it looks good. Being able to read all the text, even the small names and such, makes it seem good. The buffering for viewers isn't always the bitrate you set. Try the next closest twitch server and see if it helps at all.
 

Boildown

Active Member
Your log file is statistically meaningless because you only captured for a few seconds. Capture five minutes of consecutive high action video and re-post a log.

That said, if you want a higher quality capture to disk, increase your bitrate further. At 1920x1080x60, I use 20,000. I would say that's a good starting point, and since your resolution is smaller, you can lower it in small steps until the quality goes south, but first establish for yourself a known-good bitrate.

Its also a good idea to follow these best practices when capturing to disk: https://obsproject.com/forum/threads/how-to-make-high-quality-local-recordings.12600 , in which case you won't use a fixed bitrate at all, you'll use a constant rate factor (I don't do this because I use the NVEnc encoder instead of x264 for capturing to disk).

Also be careful that you're not being overly critical of your stream quality. Look at other streams that run at the same resolution, bitrate, framerate, preset and content as yourself, and compare their quality to yours. I bet if you control those factors, your stream quality will be as expected.
 
Last edited:

ShadowU

New Member
Your log file is statistically meaningless because you only captured for a few seconds. Capture five minutes of consecutive high action video and re-post a log.

That said, if you want a higher quality capture to disk, increase your bitrate further. At 1920x1080x60, I use 20,000. I would say that's a good starting point, and since your resolution is smaller, you can lower it in small steps until the quality goes south, but first establish for yourself a known-good bitrate.

Its also a good idea to follow these best practices when capturing to disk: https://obsproject.com/forum/threads/how-to-make-high-quality-local-recordings.12600 , in which case you won't use a fixed bitrate at all, you'll use a constant rate factor (I don't do this because I use the NVEnc encoder instead of x264 for capturing to disk).

Also be careful that you're not being overly critical of your stream quality. Look at other streams that run at the same resolution, bitrate, framerate, preset and content as yourself, and compare their quality to yours. I bet if you control those factors, your stream quality will be as expected.

Ah, you're right, what was I thinking - that's completely the wrong log file. Here's a new one: https://gist.github.com/f531c3a81d813ecb5f03

I'm not really interested in capturing to disk because I've gotten used to doing that with Fraps and then having the freedom to compress as I see fit, but even at very high bit rates (8000-10000) 720p video still looks pixelated. That's some good advice with the incremental bitrate decrease though, I'll try it some day, thanks.

And quite frankly I know that I'm not being overly critical of my stream quality _because_ I have watched other people's channels, who have similar settings to mine, including friends' channels. Also, back in the days of Xfire, I was able to stream 1080p content at 4000 kbps almost flawlessly, whereas now it feels like 720p at 3500kbps (Twitch's maximum) becomes pixelated. :/

The video I had up on my OP wasn't the best demonstration I guess, here's a slightly better one: http://www.twitch.tv/shadowtasos/b/532753644

You can see that especially at the start, when there's any kind of camera movement, everything starts looking like it's YouTube 360p quality and quite frankly I don't understand how that can the case with 720p @ 3500kbps video. I even tried streaming some shooter games once, and with the camera constantly moving, oh god did it look awful.

Maybe I really am just crazy and my stream's perfect and I'm just imagining it, but damn it if there's something I can do to make it look better, I'll do it. :p

As far as the quality goes I think it looks good. Being able to read all the text, even the small names and such, makes it seem good. The buffering for viewers isn't always the bitrate you set. Try the next closest twitch server and see if it helps at all.

Hmm, well, I've already tried streaming to 2 servers to no real avail... But I guess I'll try again, thanks a lot for the advice. :) I just find it really weird how the stream seems to constantly buffer for some people whose connections are much better than what I stream at, and then work flawlessly for some people with worse connections. Meh.
 

Boildown

Active Member
You're not duplicating any frames in the new log, and I don't see anything in the video that says something is drastically wrong. It looks as expected to me. You can use a higher quality preset, like Faster, instead of Very Fast, and as long as you don't duplicate too many frames, it should help improve the quality.

Its never going to look perfect because you're downscaling. When saving to disk, you would want to get rid of the downscale and then save at full resolution at a much higher bitrate, as I described before. When streaming at 800p, with Twitch's bitrate limitations, no H.264 codec or preset on the planet is going to get you a flawless looking livestream, even with the best computer money can buy.
 

ShadowU

New Member
I've tried different quality presets and I can't say I saw a quality increase that was proportional to the performance loss, but I guess it's worth experimenting some more with it, thanks.

I think you're misunderstanding what I meant by poor quality - obviously things aren't going to look perfect, but I'd assume that at a downscaled resolution with such high bitrates (ranging from 3500 for Twitch and up to 10k for local recordings) I'd get a much less blockier result than what I had.

I used to stream at 1200p (and record at that resolution as well) and it was much, much worse - which leads me to believe that somewhere along the line there's a problem, because if I just Fraps videos and then do a 1-pass x264 encode at 3500 kbps I get a result that looks several times better what my end result is on OBS. And obviously it's to be expected that it'd look better since OBS has to encode on the fly, but the quality difference really is... staggering.

Either way, it's not so much an issue of my stream not looking perfect but rather, it looking nowhere near as good as my friends and other streamers' streams at similar quality quality settings, and I can't figure out why. Once again, it's not a matter of low resolution but rather annoying blockiness.
 
Last edited:

Boildown

Active Member
You're probably using a preset much much better than Very Fast in your x264 encoder (Handbrake for example). Personally when I use Handbrake I turn it up to 11 and use Placebo, I mean, why the hell not? And then, yeah, I can get very nice looking video at relatively modest bitrates.

I think you're not using enough bitrate to get the results you expect. For example, 10k for local recordings at 1080p or 1200p isn't enough. If your goal is transparency, then I think you need to throw more bitrate at it. Personally I use 20k at 1080p60 and I would double it if I really wanted transparency to my eye (but because they go to YouTube and get re-encoded [poorly] anyways, I don't bother). 20k is good enough (to me) at a preset that's somewhere around Super Fast - Very Fast in quality. If I were using a better preset, I could probably lower that bitrate somewhat, but diminishing returns kick in, and for saving to disk, it just ends up being better to throw more bitrate at it and not worry.

For streaming, you're stuck with Twitch's limitations and I don't think your example video is worse or better than others using Very Fast at the same bitrate. When trying better quality presets, go one at a time: Very Fast < Faster < Fast, don't skip ahead. Once you start seeing duplicated frames, then you've found the limit. IMO 1% duplicated frames is too many (I notice the video skipping), so I "max out" my CPU when I've tweaked it to about .3 to .5 % duplicated frames. More than that is too many, less than that and I could increase the quality settings some more.

Edit: A few more things. FRAPS is still awesome IMO, as one of the tools in my video capture toolkit. Particularly for screenshotting and capturing lossless video. Sometimes you just need flawless source video, and when that happens, I turn to FRAPS, as long as the CPU hit doesn't affect my ability to create the video, that is.

2nd, here's a tool that can help you determine what settings your friends who you claim have better quality video at the "same" settings are actually using: http://r-1.ch/analyze-twitch-vod.php . My bet is that if you really analyze it, your video isn't any worse, or the settings aren't really the same.
 
Last edited:

ShadowU

New Member
Whoa, that's very informative, thanks very much. Do you think you could go into a bit more detail about duplicated frames? I tried reading up on it but I can't say I really get how it'd affect my stream with h264 encoding and how I'd go about handling it. Should I basically just try Very fast -> faster -> fast and so on until all 8 of my cores are at 100% usage? Or is there a more efficient way to measure this, i.e. the logs?

I guess I really am after transparency as you so elegantly put it, and it just irks me a little that I can't achieve it using Twitch's maximum bitrates, seeing how I was able to get near-transparent video at similar bitrates while using my monitor's full resolution, 1920x1200. But I guess your point is very valid, encoding at a better quality preset really makes that much of a difference.

I used that tool but it doesn't seem to be showing much other than the settings I already knew, but it seems that one of the people I know is streaming at 4500kbps, maybe I could try going with that at a risk of facing repercussions. =P

I have two questions for you:

A) Do you think streaming at 1080p is completely out of the picture given Twitch's bitrate limitations? I mean, most guides on the internet I've seen so far claim that 3000-3500 is enough for 1080p@60fps, but if I'm not happy with my stream's quality at 720p I don't see how it'd even be possible for someone to stream at 1080p@30 without breaking Twitch's rules.

B) Do you reckon that when it comes down to it my processor is just not good enough? I've heard that gen 1 i7s are a bit lacking in comparison to gen 2 i7s when it comes to streaming, and surely enough most of my friends are using either gen 2 i7s or gen 2 i5s. I've considered bumping up the clock a bit (though if I go much higher than 3.4GHz it starts acting up :/) in case it really turns out to be a bottleneck in my system, but it'd be hugely disappointing if that was my issue after all.

Either way, thanks a lot for your help so far, much appreciated. Quite frankly I expected to get a generic "yeah Twitch sucks your stream's gonna be like that forever" or no answer at all. :P
 

Boildown

Active Member
I wouldn't go by CPU usage %, as its pretty unreliable and focuses on the wrong thing. Duplicated frames are the first sign that you're pushing your CPU too hard.

They're shown in the log file here:
23:08:54: Total frames encoded: 9488, total frames duplicated: 0 (0.00%)
23:08:54: Total frames rendered: 9493, number of late frames: 0 (0.00%) (it's okay for some frames to be late)

As you can see you've got no duplicated frames at all. So your CPU wasn't being pushed hard, or you have your settings perfectly tweaked. Another factor is your content, i.e. your game. Some games push your CPU hard, leaving little over for OBS, some are easy. If you change games, you might have to change your finely tweaked OBS settings.

So here's how I test: I get to a point where I'm going to have five consecutive minutes of high action gameplay, with a lot of video complexity/motion, and then turn on OBS. After the five minutes are up, I stop it, and check the OBS log file. If the duplicated frames are less than 1.0%, then I'm good to go. If they're at or right around 0.0%, then I'm not pushing my CPU hard enough, and I could increase the settings (move down to a higher quality preset). After that, I check again after every long gaming session and make changes if warranted.

A) Depends on the game. I wouldn't do 1080p60 to Twitch because of Flash's limitations (Flash sucks at doing 60FPS, particularly at higher resolutions). 1080p30 is fine for low action games though. Most internet guides are for "dummies", or people uncritical of their work, who just want to do something quickly, so I wouldn't put any more stock into them than you can verify for yourself.

B) At Very Fast 800p, your CPU is doing just fine, as evidenced by 0 duplicated frames. The Sandy/Ivy/Haswell quad cores are undoubtedly quite a bit faster than your i7. But I wouldn't upgrade when you can do whatever game you're playing and do Very Fast with 0 duplicated frames. Throwing a number out there, I'd say 60% of the posters on this forum can't do that. There's no evidence yet that its holding you back.
 

ShadowU

New Member
Hi again! Thanks a lot for all of your help and your answers. I decided to take your advice and try playing around a bit with the various settings and checking out the difference of the stream's quality with each test.

Test 1 (Faster preset, Amsterdam server, 1280x800)
Video: http://www.twitch.tv/shadowtasos/b/533152189
Log: https://gist.github.com/0705ea639ebe438e4d94

I started dropping frames at some point in this video so I figured that the Amsterdam server is problematic or there's some other issue because all the while I've been streaming to the Frankfurt server just fine. The quality wasn't up to my standards so I decided to bump it up a little as well as change the server.

Test 2 (Fast preset, London server, 1280x800)
Video: http://www.twitch.tv/shadowtasos/b/533155799
Log: https://gist.github.com/28debe88b890ab7d3d11

I no longer dropped frames when I was on the London server which is quite unexpected as I live in Greece and London is a good bit further away from me. The latency for the handshake was also smaller, if that means anything. Either way, the quality seemed to improve a good bit here, and I'd say that's probably where I want it to be, but the frame rate did drop a little bit in game - to the point where I could kind of feel it too.

Test 3 (Fast preset, London server, 1920x1200)
Video: http://www.twitch.tv/shadowtasos/b/533161010
Log: https://gist.github.com/f3c098fb3ba81a7f40d3

This was more of a joke test as I obviously didn't expect it to go very well at all, and most certainly, it didn't - 26% skipped frames, 32.6% duplicated frames, 3.77% late frames. A disaster all in all, but the quality really was excellent - I might go as far as to say transparent.

Test 4 (Faster preset, London server, 1920x1200)
Video: http://www.twitch.tv/shadowtasos/b/533163137
Log: https://gist.github.com/a2c2226c0a9d1897117f

This test went a lot better than I had expected - only 1.58% duplicated frames, 0.09% late frames and no dropped frames at all. I guess the diminishing return that you mentioned is really that bad. The quality dropped a fair bit, and my frame rate wasn't quite right either, so I did one more test.

Test 5 (Veryfast preset, London server, 1920x1200)
Video: http://www.twitch.tv/shadowtasos/b/533166064
Log: https://gist.github.com/c2c9cfc77d4030517c9a

Only 0.02% frames duplicated here which I was very happy about, and the in-game frame rate was as smooth as can be. However, the quality took a noticeable hit as when I move the camera around things get rather blocky. However, it's still watchable I believe and I'm currently contemplating if I prefer this or 800p @ fast/faster preset.


Thanks again for all of your help, I think it's really helped me get some insight on how to make my stream a little bit better.

Now I'm just wondering if there really is a processor that can even do 1920x1200 @ fast... I mean, it's been 5 years since I got my 920 so it's probably a good idea to replace it at some point in general, and I was considering shelling out for a 5820k when they release. Do you reckon it's worth it? Am I going to be able to stream at slower presets with this, or should I just try to bump up the clocks of my 920 a little bit?

Oh, and another interesting point to note is that local recordings of these videos looked a good bit worse than the Twitch VoDs did. Really weird.
 
Last edited:
Top