This doesn't make sense, UPnP on ROS is creating dynamic
dst-nat rules only (convenient for UPnP clients that randomizes/or some range that cannot be controlled/ open port or local client IP is not static) which are also possible to create manually, no need to spoof anything if si
dst-nat issue. Which streaming protocol is used for video feed?
If is
RSTP then you may have issue that rtsp video urls (
rtsp://) from response (see
protocol wiki) are generated with public IP of router (which is behind CGNAT) from which camera has internet connection and browser over plugin tries to access stream from that IP on port that is not exposed (TCP/UDP 554), you will need to find out how camera is getting public IP or is it possible to override it in web admin (like P2P clients which have such option). Ofc. then RTSP ports needs to be redirected because of CGNAT if not all port connections to camera are.
If other protocol is used you will need investigate it, still I suspect in general that video streaming protocol is providing feed endpoint with public IP behind CGNAT and not sure how UPnP will resolve this issue (maybe I'm wrong).