Analyze video feed from HTTP

I would like to analyze video (object detection) coming from an esp-32 camera. The default webserver code for esp32-cam provides video feed through http. I know that jetson utils can use rtp or rtsp as video source but how can I use http as video source?
I tried micro rtsp with on esp-32 cam but latency was too high.

This is for an autonomous robot which I want to use multiple cameras. The ribbon cable of raspberry camera makes it very difficult to place on a rotating turret and usb cameras are too bulky. Using Esp-32 will really help me in terms of power and cable management.

I’m not a camera guy, so my comments are limited, but I think using a web server is problematic if latency matters. All by itself networking already has extra latency if the data sent does not match the MTU/MRU (less overhead so the total content matches MTU/MRU).

Anything less than MTU/MRU means you are waiting for a delay before the packet goes out, and anything greater implies fragmentation and reassembly work. This is hard enough to get right to start with, but networks and packet sizes can be tuned. By the time you add a web server into this you’ve pretty much lost any kind of tight control over data size and timing.

There might be some light weight web server possible which is dedicated to just the camera, but nothing stock is going to be low latency. Is the camera capable of using other protocols, or is a web server mandatory?

I am a hobbyist and my knowledge of electronics/coding is limited. With the default web-server code running on esp-32 cam, I can get video feed almost real time. I just want to use this http feed as source for object detection using jetson utils. Having a webserver would save me from hardwiring the camera to jetson nano I can not place the raspicam on a 360 degree rotating turret. So web server is not mandatory but would help me alot.

It sounds like you already have a web server on the esp32, and that what you really want is for the Jetson to consume video feed from that server. This is quite different than adding a server to the Jetson itself. To clarify though, are you wanting to replace the esp32 web server with one on the Jetson, or are you wanting to consume an external web server’s output? I’m not sure I can answer either way, but without knowing that I don’t think anyone could answer.

I just want to use the video stream provided by the ESP 32 for object detection,
As seen in attached image, http is not listed as an input stream for jetson inference. I hope this clarifies this time :)

The implementation is based on gstreamer and you would need to

  1. Work out a gstreamer pipeline that can decode HTTP source
  2. Add one more mode and the pipeline to jetson-utils

There is no existing implementation so you would need to check the source code and do customization.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.