MonaSolutions / MonaServer2

Temporary project planned to replace MonaServer
GNU General Public License v3.0
274 stars 36 forks source link

Insufficient bandwidth playing from localhost? #15

Open reedog117 opened 6 years ago

reedog117 commented 6 years ago
Subscription.cpp[460] Video timeout, insufficient bandwidth to play testfeed2

I am attempting to play an approx 7000-10000 kbps RTMP video stream using MonaTiny 1.195 smoothly via a VLC Video Source in OBS. The RTMP server is running on the same server as OBS (which is accessing the stream via VLC Video Source) so it is being accessed via localhost. I already have bufferSize=4096000 in the INI file. We are receiving our video via a third-party stream that is publishing from their servers to MonaTiny via RTMP. This issue does not occur when they send their third-party stream directly to our livestreaming provider.

Lowering the video bitrate to <4000-5000 kbps as well as using a 30fps source instead of a 60fps will fix the issue. However this is unacceptable as this degrades our video quality. What would cause this error to occur? Could the built-in Port Scanning Prevention Filter be resetting the TCP connection? (This is running on Windows Server 2016.) I've noticed a slight improvement turning off Stealth Mode for the Windows Firewall, but I still have choppy video issues with my source in my OBS stream.

We do not have any CPU/RAM/resource issues on our target server running MonaTiny and OBS. Both source and target servers have >100Mbps bandwidth, with <60ms ping, and minimal hops between the two servers. Speedtest.net routinely shows >500Mbps connection for both hosts for both upload and download. MonaTiny is also only being used for this video stream, so there isn't much contention for resources.

thomasjammet commented 5 years ago

Hi @reedog117,

Sorry for responding this late! This is a recurrent issue that we see with OBS, which is buffering a lot. You have done well to increase bufferSize but I see this is not enough. The "Video timeout" error is a protection which has been added to avoid a crash for a memory issue in MonaServer when a congestion occurs. In this case for example Mona's output queue is increasing endlessly because OBS is not responding fast enough.

It could be interesting to compare with another broadcasting tool as Xsplit, you can watch this short tutorial to see how to add an RTMP source. Please tell us if it resolve your issue, in this case we could ask OBS developer to find a fix.