Bitrates- The bitrate you set in OBS is the amount of data you are telling your program to use to SEND the stream to Twitch. Twitch then sends this same (approximately) data amount to anyone viewing. This would mean that by streaming at 3500kbps you are forcing the video into this size file and anyone watching must have a stable 3500kbps download to watch smoothly. This also means the higher the upload (as a streamer) the higher your UPLOAD speed must be.
The higher the bitrate the more detailed the stream can be BUT too much bitrate makes it harder and harder for a viewer with slow internet speeds. 3500 is also the recommended bitrate for most 720p streams however, i have personally seen most mobile viewers incapable of viewing. (Without twitch quality options)
Encoding- x264 vs NVENC There are a few different encoding options depending on where you allocate the task of encoding. Using x264 will force the CPU to do your encoding whereas NVENC will push the job to your GPU. Both have pro’s and cons but overall x264 delivers (or has in past) the better quality stream.
x264 Options- There are many options when using the CPU to encode the stream. And they range from ultrafast (lowest) to Slowest (highest). The way I learned these is how much time you want the CPU to take when compressing the stream. So telling it to go slow uses more CPU power but forces it to take more time compressing the image to capture all details. Fast settings let the CPU cut out details for the sake of speed when needed ending in lower quality but less CPU usage.
The more CPU power you allocate to compressing the image the better the image will be at low bitrates. To achieve identical video quality with less CPU power you must raise the bitrate correspondingly.
NVENC- Is a hardware encoding build in many Nvidia GPU if your GPU has plenty of headroom to spare this may be a good option to take the stress off the CPU it is also my encoder of choice
Twitch Quality Options- Twitch offers media quality options viewer side that allows people with slower internet to view higher powered streams. So if I stream at 4500kbps bitrate at 720p and you are on mobile with less than stable connection you can lower quality to 480,320,160p to watch the stream with slower internet. This allows a content creator to use a higher bitrate without limiting viewers. This is great except under heavy usage Twitch will first turn off quality options for non-affiliates and if this is not enough shut it off for affiliated streamers as well-meaning ONLY PARTNERS ARE GUARANTEED QUALITY OPTIONS. This is important as this means you can not stream under the assumption a viewer can just turn you down. You should set your bitrate as if No one has options to allow as many people as possible to view you.