Best OBS settings for lowest streaming latency and best performance? (Streaming up to 15 streams at the same time) #1164
Replies: 3 comments 1 reply
-
I can go over this in about eight hours if you want to leave it to me |
Beta Was this translation helpful? Give feedback.
-
Ok so to start with the video settings It depends what you want to do. For the best quality you want the OBS base or canvas resolution to match your content in resolution. Then you can downscale it if you want to lower your bandwidth requirements. Neither should affect latency aside from perhaps higher bitrate maybe affecting it - that's more of a getroot question The downscale filter is just what method you want your GPU to use to downscale. Bilinear is faster but lower quality. Lanczos is the best quality iirc but the most difficult Output: the encoder is the piece of software that takes the rendered stream video and turns it into rtmp or whatever data stream to be sent to the stream server. X264 is the CPU based encoder. There are others that use your GPU instead. Depending on your stream needs you can choose different ones. Generally speaking I've had the best experience with x264 and the GPU encoders tend to be buggy and inefficient Think of the bitrate you set as a cap on quality. If you ask the encoder to put a ton of detail and motion (random static, for example) into 500kbps at 1080 it'll look like blocky garbage. If you give it 50000kbps it'll look way better. But if you have a blank white video it'll look identical at those two bitrates - higher bitrates don't mean better quality if the source content doesn't require it Leave profiles alone. Obs Will pick the right one for you. At least in my experience Make sure you set a key frame interval. I like 2 or 4. It's how often you send a full image instead of just changes to the last image you sent. Webrtc requires a key frame to start playback so not setting an interval leaves it to obs, and it picks a long interval. Lower interval means higher bandwidth requirements. Try a stream at a KFI of 10 vs 1 with a bitrate of 500 kbps to see what I mean Also tune=zero latency. I'm less familiar with everything this does but it's basically a bundle of settings for the encoder. Importantly, including disabling b frames which break webrtc Your post is unclear. Are you originating fifteen streams from one computer? Or will your server be hosting that many streams from disparate users |
Beta Was this translation helpful? Give feedback.
-
Thank you for your detailed information on OBS settings. For the second part, the situation is this. Say, I have 15 desktop computers at home and only 1 google cloud virtual machine instance (VM instance) which has Ubuntu running and OME installed. Each desktop computer will provide (input RTMP) 1 stream to the VM instance. So 15 input streams coming to the VM instance, from here, VM instance (or OME) will broadcast (output WebRTC) to 15 viewers (viewers will watching their stream on web browser). So what I was asking was How strong the VM instance (on google cloud) needs to be, to be able to handle 15 streams and broadcast them at the same time using WebRTC, sub-second latency ? I need consistent and reliable sub second latency streaming, this is important. Is 2 vCPU + 16 GB memory (E2) good enough or I need more? What other specifications for this VM instance would you recommend? Thank you |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
What are the best OBS settings for lowest streaming latency and best performance using RTMP and WebRTC? I mean what is the appropriate screen size should I set in OBS? 1280x720? or bigger Base Canvas Resolution?, output (Scaled Resolution), Downscale filter (currently bicubic), Common FPS Values (is 30 best?) (These settings are in OBS -> settings-> Video)
And in the Settings-> Output section, Streaming Tab, Output Mode: Advanced, What is the best Profile (baseline, main, high?), bitrate ? currently I set it at 2500Kbps. Should I check Rescale output? encoder (is x264 good? )
I currently get under 1 second, but sometimes higher, maybe it set the resolution a bit high?
For streaming multiple streams at the same time ( maybe upto 15 input streams , probably 50 viewers ), what are the best practices do you recommend? I am testing it on cloud (google cloud VM ), what are appropriate specifications? Is 2 vCPU + 16 GB memory (E2) good enough?
Do I have to do other settings in Server.xml file and in OvenPlayer?
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions