STREAMING:
It's a problem...
1. GPU encode:
If you use the hardware video encoder on my GTX680 it really does use almost 10Mbps (720p, 30FPS, LOW quality). It actually looks pretty good. In fact, I can actually raise the quality a bit and use almost the exact same bitrate.
The PROBLEM is that while great for minimizing CPU load by running the game output to the encoder, this is a piece of dedicated silicon operating in REAL TIME so there's really not much you can do to efficiently COMPRESS the data.
(If I took the highest quality option, copied to my hard drive, then used HANDBRAKE I could do amazing things with compression but then it wouldn't be streaming. That's only suitable for UPLOADING after the fact.)
vs...
2. CPU encoding
Programs like FRAPS do a software method (though i don't think it streams as it works with large, raw video files AFAIK). They run the video to the CPU which is very inefficient compared to the hardware encode method. The benefit is that you can potentially COMPRESS the video, though this requires a LOT of processing power.
So that's pretty similar to what HANDBRAKE does, except it has to be able to process in real time.
OBS may be a better example. I believe it can use NVidia's NVENC, Intel's iGPU solution, or do CPU processing. Perhaps there are settings you can tweak there. Other people may have better advice.
So...
Basically you have to find out what your UPLOAD method is, and what it takes to compress the data to fit into that bandwidth. Trial and error really for the most part.
Also note that YOUTUBE may not show the video back in the quality you uploaded, or wherever it's being streamed to.