Allow Render Delay of Any Length

JasonVP

Member
Hey folks -

I know the 1/2 second maximum "Render Delay" filter for the Video Capture is/was intentional. Could we consider changing that to be any length the end user needs? This, of course, comes with the assumed caveat that: the larger the delay, the more RAM being used?

Here's why:
I'm still not impressed with the NDI plugin. Its audio syncing issues are just plain obnoxious and even with the current built, myself and others are having issues with it. I don't want to use it. Full stop. Instead, I'd rather stream from the gaming PC to the streaming PC using RTMP. I've got NGINX w/RTMP built in running on the streaming rig; that's all super easy for me to do. No issues. The problem I'm running into is the processing delay between the two machines. It's about 2 seconds. With the camera connected to the streaming rig, I'd end up reacting to an event 2 seconds before the stream viewers would see the event.

The fix for this is simply letting me bump the Render Delay up to 2 seconds. Yes, this will eat more RAM; I got that. I also have 64GB of RAM on the streaming rig, so I'm not concerned. So can we reconsider that 1/2-second limit? Make it infinite with the caveat that longer delays mean more system resources eaten? In other words: give me more rope and I'll worry about not hanging myself?

Thanks.
 

Fenrir

Forum Admin
In general, nginx is not really designed to be used in this way. We even go so far as to actively discourage its use for 2 PC setups due to the number of issues and inconsistencies there are.

The 500ms limit has more to it than just RAM limitations, there's also stability to take into account. I would strongly recommend you look into a decent capture card (internal PCIe is your best bet, something like a Blackmagic Intensity Pro 4k or StarTech internal cards, or the Magewell USB3.0 card is solid as well) for a better and more consistent overall experience. It definitely sounds like you're trying to get the most out of your setup, and cutting corners on what is arguably the most important part won't serve you very well.
 

JasonVP

Member
In general, nginx is not really designed to be used in this way. We even go so far as to actively discourage its use for 2 PC setups due to the number of issues and inconsistencies there are.

I respect your opinion on this, but I thoroughly, completely, and absolutely disagree. I've been using NGINX on a FreeBSD server to do exactly this for the last year and a half or so, and it works flawlessly. There's no reason NGINX on Windows won't work the same way, and from all of the testing I've been doing: it does in fact work. Just fine. There's a general distaste for RTMP sources within this community, and I just don't agree with it. Based on my experience, that distrust/distaste/etc isn't founded.

Anyway:

The 500ms limit has more to it than just RAM limitations, there's also stability to take into account.

That's just more rope. I'm ok with managing that. Please offer it up, and if I hang myself, that's on me, not you.

I would strongly recommend you look into a decent capture card (internal PCIe is your best bet, something like a Blackmagic Intensity Pro 4k or StarTech internal cards, or the Magewell USB3.0 card is solid as well)

The failure with the capture cards is that within a short while, they're already going to be obsolete. They can't (and won't) keep up with display tech and refresh rates. When the new 4K/144Hz panels FINALLY ship (grrrumble) I'll sign on for one. And I can push 4K/144Hz, too, in the games I play. No single cap card existing today will be able to take that. As long as they lean on HDMI, they're going to be obsolete.

So no, I'm not cutting corners. I'm future-proofing. There's a method to my madness.
 

fitz1889

New Member
For restreaming of races where multiple browser sources are captured it would be very useful to be able to add render delay of up to 10/20 seconds in order to sync the sources up.
 

darthclide

Member
It seems that MonaServer is running into the same kind of problems. The developer says he has messaged OBS many times to add an optional feature for people like us who want the very best in quality, and won't take "no, you must use capture card" for an answer. Here is my suggestion post, but if I continue to be ignored I will then consider it a bug and post there for a response. It is pretty sad when even a developer of a program is being ignored on such a critical issue...

https://obsproject.com/forum/threads/desync-over-time-with-rtmp-server-add-http-post.84427/
 

kurufu

Member
I respect your opinion on this, but I thoroughly, completely, and absolutely disagree. I've been using NGINX on a FreeBSD server to do exactly this for the last year and a half or so, and it works flawlessly. There's no reason NGINX on Windows won't work the same way, and from all of the testing I've been doing: it does in fact work. Just fine. There's a general distaste for RTMP sources within this community, and I just don't agree with it. Based on my experience, that distrust/distaste/etc isn't founded.

I believe you have in this single paragraph explained why the distrust/distaste for RTMP LAN solutions exists. There are quote a few reasons the windows and freeBSD versions of these tools might (and do) behave differently notably the difference in their kernels and networking stacks. Secondly the fact that there is basically 0 configuration you can do on the RTMP server to affect delay. You are at best going to get 1 GOP of latency and at worst whatever the RTMP server decides. It was not meant for low latency or even local streaming and it shows.

That's just more rope. I'm ok with managing that.

You may indeed be fine, but obs must strike the a delicate balance between power users and the average user. If you really are comfortable with giving yourself more rope I highly recommend recompiling OBS with this limit increased for your personal use.
 
Top