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:
- Parts of the video will play too fast (if you see a clock 3 seconds might fly by in 1 second)
- Part of the video will lose quality, which appears like packet loss, thus delta frames are not being applied
- Frequent disconnects of VLC so it can't stay connected
- 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 10.10.0.245:555 which would then proxy to the video.
Here is the WireShark capture of this:
VLC Client 10.10.0.1 to RTSPServer 10.10.0.245:555 to BigBuck Capture wowzaec2demo.streamlock.net
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 10.10.0.1 to RTSPServer 10.10.0.1:555 to BigBuck Capture wowzaec2demo.streamlock.net
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.