I am making a web cam. There is a network problem

I want to implement web cam so that it can be accessed from an external network.
Since this is for commercial products, it is not possible to tell consumers to set up a router to do port forwarding.
For example, if you look at a web cam sold, it is connected to wifi at home, and the user can easily access the web cam from the outside through the app.
However, we can access from the internal network, but it is impossible to access without changing the settings of the router.
In this case, how do I access it from the outside network?

the way i expect

  1. In ddns, hardware automatically registers and accesses my IP.
  • Question: Do companies need to register through a web site that provides ddns service in order to connect their products to ddns? Can I register in the cloud like aws? Or can I implement ddns on my hardware?
  1. Create a streaming server so that all of my videos can be viewed through the server.
  • Problem: When implementing a streaming server, if the number of users increases, it is necessary to expand the server, but it is not recommended to use this method for cost.
  1. My hardware becomes a dns server.
  • Question: In this case, is it possible to access the domain from an external network? It doesn’t seem like my opinion.

Please let me know if there is any other way

While this is not a PlatformIO issue…

Is it not the case that whatever WiFi network a camera is connected to, it will be a private one as opposed to a public one? 192.168.x.x for example? There’s no access to the 192.168.x.x network from outside without some form of port forwarding or similar networky thing that I’m unaware of. (I have heard of NAT and Bridge, but I have no idea about those, sorry.)

I have had a quick Google on setting up a security camera and it appears that fiddling in the bowels of the router is necessary, if it is desired to get access from outside the private network.

Brief references:



Cameras or any other microcontrollers running server code can be accessed from the outside without opening any ports by running reverse tunneling service + proxy on some network computer.

For example, I have one Raspberry Pi which runs ngrok service for reverse tunneling and node.js code which is using express and http-proxy-middleware npm packages as a proxy for rewriting the URLs and redirecting them towards appropriate microcontrollers (ESP32, ESP32 CAM, …) in the local network which are running server code. For that to work all microcontroller and Raspberry Pi have static IP addresses which are hard coded in the code for configuring the http-proxy-middleware.

However, such a solution wouldn’t be suitable for a commercial device because it requires additional hardware and is not easy to set up, configure and maintain (for example ngrok could change the API and all devices using the service would stop working).

Commercial devices are using private or paid cloud services (such as AWS and Azure) which act as the middle point for communication between cameras and the clients (mobile phone applications, browsers, …). The commercial devices are never accessed from the external nework directly but are communicating with the client through the cloud computing service.

1 Like

Does that mean you have to create a streaming server via aws?
Or can the method described above be implemented in aws?

Thank you for answer.
It’s not the answer I’m looking for, but I’ll keep it in mind.

Something like this has to be created to access the cameras without software running on additional hardware in the local network.