Generally speaking., the reason that Software (CPU) Encoding is still listed as (Not Recommended) is because 4 Core / 8 Thread Processors were (and to a degree still are) the most common used by Streamers.
This poses an issue when most Games will use up to 4 Cores (6 Threads)... and this obviously poses an issue as for each "Level" of CPU Encoding Complexity., you require +1 (Dedicated) Thread(s)., and as such this too can use up to 4 Cores; which as you can imagine doesn't leave much for whatever else you're trying to run.
Where-as with Ryzen x600 or better CPUs., this becomes a Non-Issue; as you essentially have 2+ Cores entirely unused for said task... and OBS is one of those few Applications that will use "Next Available Core / Thread" as opposed to requiring Core/Thread 0., for it's workloads.
Still with this said the Media Engine on Radeon Graphics., esp. GCN 2.0 or RDNA 1.0 is exceptionally powerful, provided you utilise it via the AMD Media Framework SDK... and will result in very little CPU Overhead, while providing "Medium" Quality Encoding (2K for GCN 1.x, 4K for GCN 2.x and 8K for RDNA 1.0).
For High Quality Real-Time you MUST use CPU Encoding.
In said regards for 2K (1080p) you'll need 3 Cores., 4K (2160p) you'll need 6 Cores and 8K (4320p) you'll need 12 Cores... this as a note is why AMD Ryzen Threadripper is currently the only Desktop CPU capable of Real-Time 8K Encoding., but then for Streaming Purposes for any "Decent" Quality you'd need a really good Internet Upload Speed; as you'd be looking at ~30Mb/s for 8K.
Now as a note., you ideally want a Frame Buffer that is 50% the size of the Bitrate in Bytes.
You can technically get away with 1/16th the Raw Frame Size, but that's only if you're using a "Low Encoding" approach; as you'll need that for each block... so having say a 230KB Buffer, means you're limiting the number of Transcoded Blocks; which is great IF you have a Weak CPU / GPU but if that's the case then I'm going to be honest, you SHOULD NOT be Streaming.
Instead having a Larger Buffer allows a better utilisation of your Hardware and Prevents Dropped Frames / Streaming Artefacts... as a point of note this is something the AMD ReLive Software Automatically handles for you., but it does have an issue with Mixer (Microsoft's VC-1 Streaming Solution) as, well it's setup for x/h264 rather than VC-1.
And the figures I've provided below are for VC-1 "Smooth Streaming" but will work with x/h264 as well.
In general terms., for "High" Quality (at least in terms of Streaming)
720p60 you're going to want 4.88Mb/s with 2s Key Frames and a Frame Buffer of 2440KB/s
1080p60 you're going to want 8.85Mb/s with 2s Key Frames and a Frame Buffer of 4425KB/s
Something else to keep in mind is that you NEVER want to go beyond 80% of your Upload Rate.
So for example my Connection is 220Mb Down, 20Mb Up... meaning I don't want to Stream at > 16Mb/s, as this will take into account fluctuations that occur with Connections.
(And anyone who is working on creating Multiplayer Games., this is also very good to keep in mind; especially in relation to the MTU., which is typically 1500 Byte per Packet)
Yet as above, where I note that realistically there is a Minimum Hardware you'll want for Streaming (I'd recommend a 6 Core / 12 Thread CPU and 16GB System RAM as a "Minimum") the same is true for your Internet Connection.
If you have < 10Mb Upload., then I wouldn't recommend Streaming; even in Low Quality... but then Low Quality Streaming itself can be a problem because of Image Quality.
Over Compression and Low Resolution are not a good combination.
Just because it's possible to Stream on Weaker Hardware with limitations on CPU / GPU Utilisation., doesn't mean it's a good idea.
I'd also further argue that the VOD (Offline Rendering) approach is ALWAYS going to yield much better results.
I personally stream because... well I'm lazy and do have the Hardware & Connection.
It's an exceptionally lazy way to Record > Encode > Upload to YouTube as most of the Process is handled by YouTube itself when you Stream, plus I don't have to worry about HDD Space.
It might just be me., but I think the size of Games has gotten a little out of Control.
Like 10 years ago a game that was 9-10GB would've been considered "Big"... and even up to like 2015, 20-30GB was a "Large" Game Install; but now., they're regularly 40GB+ which is a bit ridiculous; and some are over 100GB, like Final Fantasy XV.
I wouldn't mind except, Physical HDD haven't really expanded in size or dropped in price much.
Like 2TB has been £60 - 80 for the past Decade... 4TB has dropped in price but not much., when if you look at the trends from the previous Decade, we should be looking at 8-10TB for about £120 by now; yet those are still sat at like £250+ and even then they're specifically "Server Grade" rather than "Consumer / Gaming" Grade.
Don't get me wrong, the focus on SSD Performance, Size and Reliability is awesome; but as Applications and Games continue to grow ever larger... that we don't have Storage Space (at reasonable prices) to match., well it's a bit like a return to the 90s where you had to constantly install and uninstall programs just to have the space to have new ones.
And this gets worse when you get into things like 2K/4K Recording., as without Removable Media (like BluRay) as a Backup Storage Media; it just gets wildly expensive to have enough Space.
Somewhat amusing to me that the ONLY reason I have a BluRay isn't for Movies (as it was intended) but is as a "Cheap" Storage Format.
nope - he has only 5mbit upload
CBR works like this 50 frames with 4000kbps and 50 frames with 2000kbps count as 3000kbps bitrate
so he HAS to limit framebuffer alot to eliminate spikes - also it has a positive effect that quality wont drop hard after 20 high bitrate frames
here is the bitrate diagramm of a 6000kbps bitrate with a buffer of 3000kbps
video looks great - but with it goes up to nearly 9000kbps
so if he has only 4500kbps stable upload he CANT use 3800kbps + 1900kb buffer! (this will result in max 5700kbps peaks)
he can use 3800kbps + 550kb buffer (this will result in max 4350kbps peaks)
now HERE is a bitrate diagramm of 6000kbps bitrate with a buffer of 768kb
you see - it only spikes to 6500kbps (max would be 6770kbps)
so you are "more CBR" with a lower buffer
he is limited on his side - not on the server side = when he will try to stream with your recommendation he will have a black stream from time to time
hope i could help
btw - with NotCPUCores (GitHub - rcmaehl/NotCPUCores: Work, Play, Stream - Without the Stutter. Download using Releases butt...)(use v22.214.171.124.)
you are able to run your Game on your "physical" cores (in my case 1,3,5,7,9,11) and run OBS Studio only on "non-physical" cores (in my case i use 2,4,6,8)
so my game runs at its best + OBS runs fine + rest of system runs on the 2 remaining SMT cores
here a video with 6000kbps + 1500kb buffer + "veryfast" + "baseline"
level=4.2 vbv-init=0.01 ref=3 bframes=1 b-adapt=0 direct=spatial deblock=-3:2 me=hex merange=36 subme=3 no-mbtree=1 trellis=0 weightp=1 deadzone-intra=4 deadzone-inter=12 aq-mode=3 aq-strength=1.1 rc-lookahead=0 lookahead_threads=0
i am streaming only PUBG ,APEX LEGENDS and LoL , what did you believe is best options 720p60 with 3500-3800kbps stable to have the best image is possible to my streaming channel ,can you give me image with output with settings for that am i say . I have ryzen 5 3600
you should use x264 // on a Ryzen 6C/12T i prefer to run game with NotCPUCores // Game on cores "1,3,5,7,9,11" "above priority" && OBS on cores "2,4,6,8" //
Keyframe Intervall "2"
"veryfast" or "faster"
"baseline" or "main"
tune: "off" or "animation"
x264options: "level=4.2 vbv-init=0.25 ref=3 deblock=-3:2 me=hex merange=24 subme=3 rc-lookahead=0 lookahead_threads=0"
Hello , i have ryzen 5 - 2600 / 6c/12t - 16gb ram and amd rx 570 4gb , stable 3.5mbit-3.8mbit upload speed.Wich best settings for me?Stream on amd gpu or cpu? i play Rust and csgo.I wana stream 720p/60fps - Twitch.
unknownamd with your Ryzen 2600 you can stream x264 and dont need to use h264 AMF
you should consider using NotCPUCores: set it to run Game at Cores 1,3,5,7,9,11 (physical cores) and OBS on Cores 2,4,6,8 (SMT cores)
as bitrate you should use 3000kbps and a buffer of 600-700kb
what is your cpu clock speed? 4GHz will allow OBS to use "fast cpu preset" when running only on SMT-Cores and encoding 720p60