This project is read-only.

RtspSource / Proxy Features Broken


I've performed some extensive testing with the latest code. It appears that the RTSPClient as part of RtspSource is working well, but when using the server to proxy streams through the server to a VLC client it isn't working on any streams reliably. It appears there are packet drops, buffering delays and other issues that are hard to pinpoint.

I have local IP cameras and I'm testing remote RTSP sources, all of which work directly with VLC, but when proxying through the RTSPServer, I can observe:
  1. Parts of the video will play too fast (if you see a clock 3 seconds might fly by in 1 second)
  2. Part of the video will lose quality, which appears like packet loss, thus delta frames are not being applied
  3. Frequent disconnects of VLC so it can't stay connected
  4. Watching a video, you can see it speed up and slow down consistently
I have tested on 3 hosts to ensure it isn't an issue on a specific one. I've tested with Windows Server and Windows 10. VLC on the Mac won't connect at all and shows no images, it simply disconnects right away.

I notice a lot of errors on the server. Attached are some snapshots of these errors.

Two of the streams I tested the most are:

The second one does have some issues over time with VLC directly but ultimately its 98% good, the people move at normal speeds, the clock is typical going second by second. While having this go through the server, the results is more like 80% with speeding up, slowing down, disconnects.

But BigBuckBunny is impossible to watch, only 3-4 seconds at a time work, then funky stuff, then another small bit of working video.


VLC frequently looks like this:


For BigBuckBunny I captured on a computer running VLC to an RTSPServer server which would then proxy to the video.

Here is the WireShark capture of this:
VLC Client to RTSPServer to BigBuck Capture

For another capture I ran the server and VLC on the same computer, which captures the server to the BigBuckBunny RTSP over the Internet:

VLC Client to RTSPServer to BigBuck Capture

Here is what it looked like very often:


Here are some of the messages from the server while attempting to proxy/stream:


After closing VLC, the server appears to still be doing a lot:


I would assume with the well written code, unit tests, and clearly this being the most core feature of the code and library, that perhaps something simple is not working in this build? It feels like something too fundamental, so my guess is its a buffer / TCP or other bug that is recent and hopefully simple to track down.

Any help would be much appreciated.


kaffecoder wrote Oct 7, 2016 at 12:18 AM

Testing with mplayer.exe, as you mentioned in other posts VLC isn't always the best, I get similar results.

Here is the output:

The player shows a frame here and there but for the most part is frozen. I never starts on an iframe, so it always is blurred at the start of what it does play.

Mplayer output is also very delayed with a live camera, if that helps debug. I'd say 5+ seconds later than a direct stream to the live camera.

kaffecoder wrote Oct 7, 2016 at 12:20 AM

Trying ClientProtocolType.TCP/UDP/Unreliable, it feels like there could be some differences. The audio seems to be correct, while the video is what is not playing or is fast, slow then stuck.

kaffecoder wrote Oct 7, 2016 at 4:06 PM

Another update. I tried performing the same tests with the 2015 nuget package 0.1111921.1. It has the same issues as the latest build, although the proxied video has different issues.

juliusfriedman wrote Oct 11, 2016 at 10:28 PM

No pay = no support.