Question / Help Choppy Stream

Status
Not open for further replies.

SimplyFresh

New Member
Been using OBS for a while now (mostly in 720p), but I decided to move up to 1080p.

I have 4k upload, so I don't think that's the issue.

Currently, my settings are:

- Quality 10
- 3000kbps Bitrate / Buffer
- Audio AAC @ 128kbps
- 1920 x 1080 resolution
- 60 frames-per-second

Now, with these settings, I still get subtle static pixels, however noticeable, not so bothersome (it can be overlooked when watching). I'm trying to get rid of that by using some of the "Advanced" settings that OBS offers.

I've read up on what the x264 Presets do, and by going to a slower preset (e.g. Faster, Fast, Medium, Slow), more CPU power is used, which in turn, helps produce better image quality. Since I can't go a full 4000kbps to get CRISP 1080p, I figured I could use my CPU to compensate for that (to help remove the static pixels).

Alas, the problem occurs. When I select a slower preset (e.g. Medium or Slow), my stream is extremely choppy. However, at a faster preset, such as "Very Fast", the stream is silky smooth.

This somewhat confuses me.

A faster x264 preset requires more bandwidth to encode (but I only have 1000kbps left over), and delivers a 100% smooth stream, whereas, using less internet bandwidth and more CPU (which is supposed to compensate), produces a choppy stream.

Overall, I am trying to make my CPU produce the extra "bandwidth", without actually affecting my internet, to help remove as much of the static pixels as possible.

Any idea why this is happening?

Or any ideas on how I can remove MORE of the static pixels? If there are any more ways to further improve the overall quality of my stream.
 
Here is my Log File (aka SimplyFresh)

Code:
Open Broadcaster Software v0.473b (test build 8) - 64bit ( ^ω^)
-------------------------------
CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
CPU Speed: 3400MHz
Physical Memory:  8159MB Total, 6939MB Free
stepping id: 7, model 10, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
monitor 1: pos={0, 0}, size={1920, 1080}
Windows Version: 6.1 Build 7601 S
Aero is Disabled
------------------------------------------
Adapter 1
  Video Adapter: NVIDIA GeForce GTX 670
  Video Adapter Dedicated Video Memory: 2091581440
  Video Adapter Shared System Memory: 2147479552
Using fixed low latency mode, factor 20
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
Playback device {0.0.0.00000000}.{7ba4154a-8126-4f7c-a4c2-f8fda24a4697}
------------------------------------------
Using desktop audio input: Speakers (Realtek High Definition Audio)
------------------------------------------
Using auxilary audio input: Microphone (Realtek High Definition Audio)
------------------------------------------
Audio Encoding: AAC
    bitrate: 128
Using graphics capture
Using graphics capture
Using graphics capture
Using graphics capture
Using Monitor Capture
x264: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
x264: profile High, level 5.0
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: slow
    CBR: no
    CFR: no
    max bitrate: 3000
    buffer size: 3000
    quality: 10
------------------------------------------
Using RTMP service: Twitch / Justin.tv
  Server selection: rtmp://live-iad-backup.justin.tv/app
SO_SNDBUF was at 8192
SO_SNDBUF is now 65536
SharedTexCapture hooked
Total frames rendered: 15292, number of frames that lagged: 3593 (23.50%) (it's okay for some frames to lag)
RTMPPublisher::SocketLoop: Aborting due to loop exit
Number of times waited to send: 0, Waited for a total of 0 bytes
Number of b-frames dropped: 16 (0.11%), Number of p-frames dropped: 0 (0%), Total 16 (0.11%)
x264: frame I:72    Avg QP:20.70  size:170089
x264: frame P:4402  Avg QP:23.35  size: 17531
x264: frame B:10719 Avg QP:28.91  size:  2456
x264: consecutive B-frames:  3.4%  2.2% 16.5% 78.0%
x264: mb I  I16..4: 27.0% 49.1% 23.9%
x264: mb P  I16..4:  3.1%  5.0%  1.1%  P16..4: 18.0%  3.3%  2.6%  0.0%  0.0%    skip:66.9%
x264: mb B  I16..4:  0.1%  0.3%  0.1%  B16..8:  8.8%  0.6%  0.1%  direct: 0.3%  skip:89.6%  L0:41.4% L1:57.5% BI: 1.1%
x264: 8x8 transform intra:53.8% inter:77.9%
x264: direct mvs  spatial:99.6% temporal:0.4%
x264: coded y,uvDC,uvAC intra: 49.0% 54.8% 26.4% inter: 3.1% 4.4% 0.5%
x264: i16 v,h,dc,p: 38% 23% 12% 27%
x264: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  6%  5%  9% 11% 16% 13% 16% 11% 13%
x264: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 10%  8%  9% 13% 11% 13% 10% 15%
x264: i8c dc,h,v,p: 47% 23% 15% 14%
x264: Weighted P-Frames: Y:1.0% UV:0.6%
x264: ref P L0: 58.8% 12.5% 13.9%  6.8%  5.8%  2.2%  0.0%
x264: ref B L0: 84.3%  9.2%  4.6%  1.9%
x264: ref B L1: 95.4%  4.6%
x264: kb/s:1881.33
=====Stream End=======================================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 27.941 ms] [avg calls per frame: 1] [children: 98.9%] [unaccounted: 1.13%]
| scene->Preprocess - [15.9%] [avg time: 4.455 ms] [avg calls per frame: 1]
| video encoding and uploading - [82.9%] [avg time: 23.171 ms] [avg calls per frame: 1] [children: 67.7%] [unaccounted: 15.2%]
| | CopyResource - [0.0859%] [avg time: 0.024 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.0215%] [avg time: 0.006 ms] [avg calls per frame: 0]
| | call to encoder - [67.5%] [avg time: 18.868 ms] [avg calls per frame: 0]
| | sending stuff out - [0.0537%] [avg time: 0.015 ms] [avg calls per frame: 0]
==============================================================
 
there is new test build if you want to update.
if you watch your stream while streaming. don't do it. let me know if you've done it at the time you got this log though we might be able to squeeze more bitrate by simply pausing/closing your stream.

but if you don't then i want you to try this on the preset "faster".
quality 9 bitrate 2976 bufsize 8928 aac 96.

post a vod if possible.
 
Here's the link to the video...

http://www.twitch.tv/tag_simplyfresh/b/375927599#

Quality: 9
Bitrate: 2976
Buffer: 8928
Preset: Faster
Priority Class: High

1080p @ 60fps

LOG

Code:
Open Broadcaster Software v0.473b (glorious test build 10) - 64bit ( ^ω^)
-------------------------------
CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
CPU Speed: 3400MHz
Physical Memory:  8159MB Total, 6652MB Free
stepping id: 7, model 10, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
monitor 1: pos={0, 0}, size={1920, 1080}
Windows Version: 6.1 Build 7601 S
Aero is Disabled
------------------------------------------
Adapter 1
  Video Adapter: NVIDIA GeForce GTX 670
  Video Adapter Dedicated Video Memory: 2091581440
  Video Adapter Shared System Memory: 2147479552
Using fixed low latency mode, factor 20
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1920x1080
  Output resolution: 1920x1080
------------------------------------------
Loading up D3D10...
Playback device {0.0.0.00000000}.{7ba4154a-8126-4f7c-a4c2-f8fda24a4697}
------------------------------------------
Using desktop audio input: Speakers (Realtek High Definition Audio)
------------------------------------------
Using auxilary audio input: Microphone (Realtek High Definition Audio)
------------------------------------------
Audio Encoding: AAC
    bitrate: 96
Using graphics capture
Using graphics capture
Using graphics capture
Using graphics capture
Using Monitor Capture
x264: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264: profile High, level 4.2
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 1920, height: 1080
    preset: faster
    CBR: no
    CFR: no
    max bitrate: 2976
    buffer size: 8928
    quality: 9
------------------------------------------
Using RTMP service: Twitch / Justin.tv
  Server selection: rtmp://live-iad-backup.justin.tv/app
SO_SNDBUF was at 8192
SO_SNDBUF is now 65536
SharedTexCapture hooked
SharedTexCapture hooked
SharedTexCapture hooked
RTMPPublisher::BufferedSend: Increasing socket send buffer to ISB 131072
SharedTexCapture hooked
RTMPPublisher::BufferedSend: Increasing socket send buffer to ISB 524288
Total frames rendered: 51298, number of frames that lagged: 2004 (3.91%) (it's okay for some frames to lag)
RTMPPublisher::SocketLoop: Aborting due to loop exit
Number of times waited to send: 446, Waited for a total of 1629296 bytes
Number of b-frames dropped: 148 (0.29%), Number of p-frames dropped: 473 (0.93%), Total 621 (1.2%)
x264: frame I:314   Avg QP:29.51  size:118212
x264: frame P:29567 Avg QP:32.09  size:  6823
x264: frame B:21348 Avg QP:30.68  size:   468
x264: consecutive B-frames: 43.8%  1.5%  1.1% 53.6%
x264: mb I  I16..4: 42.2% 33.2% 24.6%
x264: mb P  I16..4:  3.9%  3.8%  0.3%  P16..4:  8.1%  1.5%  0.4%  0.0%  0.0%    skip:82.0%
x264: mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  1.3%  0.2%  0.0%  direct: 0.2%  skip:98.2%  L0:58.5% L1:35.7% BI: 5.8%
x264: 8x8 transform intra:45.7% inter:33.8%
x264: coded y,uvDC,uvAC intra: 34.1% 32.8% 10.3% inter: 1.5% 1.4% 0.2%
x264: i16 v,h,dc,p: 40% 27% 21% 12%
x264: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 14% 42%  5%  6%  5%  7%  4%  5%
x264: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 22% 16%  7%  8%  7%  8%  6%  7%
x264: i8c dc,h,v,p: 75% 12% 10%  3%
x264: Weighted P-Frames: Y:1.0% UV:0.2%
x264: ref P L0: 81.6% 18.4%
x264: ref B L0: 90.1%  9.9%
x264: ref B L1: 97.5%  2.5%
x264: kb/s:2310.05
=====Stream End=======================================================================

Profiler results:

==============================================================
frame - [100%] [avg time: 9.913 ms] [avg calls per frame: 1] [children: 98.1%] [unaccounted: 1.92%]
| scene->Preprocess - [35.6%] [avg time: 3.53 ms] [avg calls per frame: 1]
| video encoding and uploading - [62.5%] [avg time: 6.193 ms] [avg calls per frame: 1] [children: 20.6%] [unaccounted: 41.8%]
| | CopyResource - [0.101%] [avg time: 0.01 ms] [avg calls per frame: 0]
| | conversion to 4:2:0 - [0.0807%] [avg time: 0.008 ms] [avg calls per frame: 0]
| | call to encoder - [20.4%] [avg time: 2.021 ms] [avg calls per frame: 0]
| | sending stuff out - [0.0605%] [avg time: 0.006 ms] [avg calls per frame: 0]
==============================================================
 
from the log it's looking much better, the vod doesn't exist though.. you've dropped a tiny number of frames there. turning off "minimize network impact" should help getting around that.
 
What Warchamp said + your cpu isnt able to handle 1080p with 60fps AND preset faster. Simple as that, 1080p 60fps already will make your cpu cry, adding faster preset on this is a no go, especially for these kinds of games.
In fact, the intel 6cores might even be at their limits with that.
 
depending on what game. it's fine thanx to 64bit, game capture, ht+ the overclock. the real problem is the upload speed.
 
If you are really committed to 1080p60fps, leave the preset on veryfast, seriously. I have my 2600k overclocked pretty heavily to 4.6ghz, and even I can't really do SC2 at 1080p60fps with Faster preset. 3000 bitrate will be sufficient for games like SC2/LoL but it won't be for games where the full screen is in motion a lot, like WoW or FPS games. The system load for games other than SC2/LoL might also be too much to handle 1080p60fps streaming, but that's on a per game basis.
 
a 2600k @ 4.5ghz is tested and done 1080p85fps encoding on the preset "slower" and a 8000 kb to process per second. and that's done even before the latest x264 optimizations.

game capture will use almost no cpu so it's all about the game. sc2 is a known all about cpu game..try disabling post processing.

you can see from the second log that the frame time is fine on the faster preset.
 
I don't care about lab tests or whatever, I'm talking about real world scenarios and I promise you, 1080p60fps streaming even with a 4.6ghz overclocked i7 2600k is incredibly demanding, and is only suitable for certain games. Lowering the preset even one step makes this almost unbearable, not to mention you are adding decoding power requirements to your viewers, who may not be able to watch 1080p60fps to begin with.

This isn't even touching on the fact that the flash player in Twitch is far from optimized.

Also, I can promise you that 1080p60fps at Faster preset WILL kill your in game frame rate in many games, even if your frame times are still acceptable.

If you have Sandy Bridge-E chips, this might be more possible, but we're talking about the 2600k here, something on which I have extensive experience with.
 
I'm talking about real world scenarios and I promise you
you have the second log and the dude didn't talk about any lags ingame. he's not running starcraft with post processing.

and is only suitable for certain games
games are not the same . 1 year from now you might not even be able to do veryfast 1080p@30fps with that cpu

This isn't even touching on the fact that the flash player in Twitch is far from optimized.
it's not twitch's fault or the flash player i guarantee you. even if it might work disabling hardware acceleration..or if it runs fine on vlc or whatever. but yes you do have to consider the viewer
 
It is in part due to the flash player that 1080p60fps streams are choppy. This is verified if you download the VODs and watch them in a media player. They play back much smoother than watching in the flash player.

Some players are more sensitive to in game lag than others, but I guarantee you that if you have the FPS monitor open for games, you will notice significant framerate decreases when you lower the preset to Faster. In SC2 for example, even on lowest graphics settings, veryfast allows 1080p60fps on veryfast to maintain 60+ fps at all points in the game, even big battles. Merely setting to Faster and you start plummeting into the 30s range, plus the stream starts to look choppier.

ANYWAY, to get back on topic here, I recommend trying 1080p45fps. It will still look smoother than 30fps, have more bits per frame than 60fps, and should play smoother on stream.
 
Krazy said:
It is in part due to the flash player that 1080p60fps streams are choppy. This is verified if you download the VODs and watch them in a media player. They play back much smoother than watching in the flash player.

Some players are more sensitive to in game lag than others, but I guarantee you that if you have the FPS monitor open for games, you will notice significant framerate decreases when you lower the preset to Faster. In SC2 for example, even on lowest graphics settings, veryfast allows 1080p60fps on veryfast to maintain 60+ fps at all points in the game, even big battles. Merely setting to Faster and you start plummeting into the 30s range, plus the stream starts to look choppier.

ANYWAY, to get back on topic here, I recommend trying 1080p45fps. It will still look smoother than 30fps, have more bits per frame than 60fps, and should play smoother on stream.
the flash player stream's are choppy because users never really respect any official specifications that's the main reason. and then there the hardware related issue's.

disable post processing use the latest 64bit test 11 build and game capture starcraft and make sure the threads priority are on normal and try the "faster" preset for a second then come up with the results. i know that you've done that already but just do it again right now like that. starcraft late game is a worse senario here.
 
Look, I promise you I have extensively tested streaming 1080p60fps with SC2. Faster preset is simply a no go. I already play with all graphics set to low, and even in small to medium sized battles you lose too much FPS and the stream play back is choppy. It would be even worse with a game like WoW because of all the full scene movements involved, and how much more inefficient that game engine is, especially in cities, raids, and battlegrounds.

In theory, yes, based on frame times high framerate 1080p is possible on lower presets, but in reality it never works out that way due to a number of factors, most of which I have already touched on.

I think the OP has all the relevant information he needs, so I'm not sure this discussion will provide any further insight.
 
well if you're trying to give advice to this guy he went as far as going 1080p120fps in 1 of his tests. he isn't really interested in 1080p45fps veryfast streams. he's only here probably trying to beat your stream like streams and unless he too starts complaining about the game fps he already has.
 
He's complaining about his stream being choppy...I'm suggesting something that should help while still allowing for smoothness higher than 30fps, especially if he wants/needs to stick to 3000bitrate. Did you actually watch the 120fps vod? It was really choppy and nowhere near being actually 120fps. There are just limitations that are hit when you apply streaming settings to actual usage scenarios.
 
we both know a 1080p120fps isn't gonna work. his stream right now ( second log) is running fine. the biggest problem is the upload speed/viewer. you're both gonna have to use way more bandwith to make a 1080p60fps stream anywhere near worth it. especially him.
 
Status
Not open for further replies.
Back
Top