I have a streaming server program which streams video from an Android app to a PC app.
The server is fast, but even so there is a delay which is around 1 second.
Usually this is very acceptable, but in my case it needs to be real time,
so I want this delay to be reduced to close to zero.
■ About the hard configuration:
Windows PC and Android are connected through LAN.
Android- WiFi to router; PC- wire to router.
■ Programs installed:
- On PC: 1. A streaming server app.
2. Gstreamer player
3. A user program that connects to the server, and uses the player (Gstreamer); it has a GUI and can display the streamed video in full screen.
- On Android: the streaming app. It sends mjpeg stream through LAN to the server program on PC.
■ Technology used:
- Streamed data format is movie jpeg (this is the only one that cannot be changed).
- Streaming protocol is RTSP over UDP.
■ Problem: There is a 1 - 1.5 second delay between what the Android app shows on the phone screen at time of streaming, and the same frame showed on the PC screen, at time at displaying.
This delay (latency) has to be cut to zero, or at least to a level negligible to human eye perception.
First you should inspect and understand the present code; then, you should determine the cause of the delay- the encoding/protocol, the server program code or the player.
(for sure it's not the hardware).
I can provide the code for server and PC app (C#), but I cannot give the code of Android app. So you should test only on PC, with a mjpeg streaming input from an app such as VLC instead of Android phone.
Then you should figure out the better way to improve the server code and/or the PC app code.
It can be an adjustment of the present code or it can be a totally new code;
you can come up with a solution that is already known out there, or a combination of solutions, or a completely new concept devised by yourself.
What matters is the final result.
##### Deliverables #####
The new code for the server app and PC user app modified so that streaming latency is almost zero / not noticeable.
1. It is possible that I award multiple developers, so even if other dev is already awarded you still have a chance.
2. Only streaming gurus with much experience can be awarded. Having a portfolio in developing streaming apps is a plus.