I need to send images or image descriptors from a client (smartphone) to a server (processing machine). The server tries to recognize the images/features in a video stream and sends back the IDs of the detected ones + maybe some additional data. Normally the recognition process does not last more than several seconds (considering a big number of images to be recognized). Ideally the processing server responds within milliseconds.
The images to be detected are sent in the "setup phase" (no problem if there's a big delay) and then the sampled video frames, where the recognition process is performed on, are being sent with a specific frequency, let's say 5 frames/second. (of course the frequency is variable)
What is the best communication protocol for implementing this? The code is going to be written in C/C++ but I'm more interested in how to workflow (the concept) would look like rather than code implementation.
Is HTTP sufficient for this? How about RTSP or maybe something else? Please keep in mind that the data goes from a smartphone (where the internet connection is not exceptional) to a processing machine (server, fast internet connection).
Thank you!
Edit: Thanks for your answers. Actually I was looking for a comparison between the existing communication protocols that can implement my specific need. As I said, I'm not interested in the complexity of the code that would implement the "connection". I would have liked to see some advantages/disadvantages between them, relative to my use case. On the other hand, the server performing the recognition has to be compliant with the communication protocol (+API) implemented by the application running on the smartphone, nothing more. That means I don't care how the server does it's job as long as it is able to understand client requests and return an answer that can be understood by the application making the request.
Something that I forgot to mention (my bad) is that I'm interested in ALL the communication protocols that are providing support for implementing this use-case.